1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 pub const DWRITE_ALPHA_MAX: u32 = 255u32;
3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
4 #[repr(transparent)]
5 pub struct DWRITE_AUTOMATIC_FONT_AXES(pub u32);
6 pub const DWRITE_AUTOMATIC_FONT_AXES_NONE: DWRITE_AUTOMATIC_FONT_AXES = DWRITE_AUTOMATIC_FONT_AXES(0u32);
7 pub const DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE: DWRITE_AUTOMATIC_FONT_AXES = DWRITE_AUTOMATIC_FONT_AXES(1u32);
8 impl ::std::convert::From<u32> for DWRITE_AUTOMATIC_FONT_AXES {
from(value: u32) -> Self9     fn from(value: u32) -> Self {
10         Self(value)
11     }
12 }
13 unsafe impl ::windows::runtime::Abi for DWRITE_AUTOMATIC_FONT_AXES {
14     type Abi = Self;
15     type DefaultType = Self;
16 }
17 impl ::std::ops::BitOr for DWRITE_AUTOMATIC_FONT_AXES {
18     type Output = Self;
bitor(self, rhs: Self) -> Self19     fn bitor(self, rhs: Self) -> Self {
20         Self(self.0 | rhs.0)
21     }
22 }
23 impl ::std::ops::BitAnd for DWRITE_AUTOMATIC_FONT_AXES {
24     type Output = Self;
bitand(self, rhs: Self) -> Self25     fn bitand(self, rhs: Self) -> Self {
26         Self(self.0 & rhs.0)
27     }
28 }
29 impl ::std::ops::BitOrAssign for DWRITE_AUTOMATIC_FONT_AXES {
bitor_assign(&mut self, rhs: Self)30     fn bitor_assign(&mut self, rhs: Self) {
31         self.0.bitor_assign(rhs.0)
32     }
33 }
34 impl ::std::ops::BitAndAssign for DWRITE_AUTOMATIC_FONT_AXES {
bitand_assign(&mut self, rhs: Self)35     fn bitand_assign(&mut self, rhs: Self) {
36         self.0.bitand_assign(rhs.0)
37     }
38 }
39 impl ::std::ops::Not for DWRITE_AUTOMATIC_FONT_AXES {
40     type Output = Self;
not(self) -> Self41     fn not(self) -> Self {
42         Self(self.0.not())
43     }
44 }
45 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
46 #[repr(transparent)]
47 pub struct DWRITE_BASELINE(pub i32);
48 pub const DWRITE_BASELINE_DEFAULT: DWRITE_BASELINE = DWRITE_BASELINE(0i32);
49 pub const DWRITE_BASELINE_ROMAN: DWRITE_BASELINE = DWRITE_BASELINE(1i32);
50 pub const DWRITE_BASELINE_CENTRAL: DWRITE_BASELINE = DWRITE_BASELINE(2i32);
51 pub const DWRITE_BASELINE_MATH: DWRITE_BASELINE = DWRITE_BASELINE(3i32);
52 pub const DWRITE_BASELINE_HANGING: DWRITE_BASELINE = DWRITE_BASELINE(4i32);
53 pub const DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM: DWRITE_BASELINE = DWRITE_BASELINE(5i32);
54 pub const DWRITE_BASELINE_IDEOGRAPHIC_TOP: DWRITE_BASELINE = DWRITE_BASELINE(6i32);
55 pub const DWRITE_BASELINE_MINIMUM: DWRITE_BASELINE = DWRITE_BASELINE(7i32);
56 pub const DWRITE_BASELINE_MAXIMUM: DWRITE_BASELINE = DWRITE_BASELINE(8i32);
57 impl ::std::convert::From<i32> for DWRITE_BASELINE {
from(value: i32) -> Self58     fn from(value: i32) -> Self {
59         Self(value)
60     }
61 }
62 unsafe impl ::windows::runtime::Abi for DWRITE_BASELINE {
63     type Abi = Self;
64     type DefaultType = Self;
65 }
66 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
67 #[repr(transparent)]
68 pub struct DWRITE_BREAK_CONDITION(pub i32);
69 pub const DWRITE_BREAK_CONDITION_NEUTRAL: DWRITE_BREAK_CONDITION = DWRITE_BREAK_CONDITION(0i32);
70 pub const DWRITE_BREAK_CONDITION_CAN_BREAK: DWRITE_BREAK_CONDITION = DWRITE_BREAK_CONDITION(1i32);
71 pub const DWRITE_BREAK_CONDITION_MAY_NOT_BREAK: DWRITE_BREAK_CONDITION = DWRITE_BREAK_CONDITION(2i32);
72 pub const DWRITE_BREAK_CONDITION_MUST_BREAK: DWRITE_BREAK_CONDITION = DWRITE_BREAK_CONDITION(3i32);
73 impl ::std::convert::From<i32> for DWRITE_BREAK_CONDITION {
from(value: i32) -> Self74     fn from(value: i32) -> Self {
75         Self(value)
76     }
77 }
78 unsafe impl ::windows::runtime::Abi for DWRITE_BREAK_CONDITION {
79     type Abi = Self;
80     type DefaultType = Self;
81 }
82 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
83 #[repr(C)]
84 pub struct DWRITE_CARET_METRICS {
85     pub slopeRise: i16,
86     pub slopeRun: i16,
87     pub offset: i16,
88 }
89 impl DWRITE_CARET_METRICS {}
90 impl ::std::default::Default for DWRITE_CARET_METRICS {
default() -> Self91     fn default() -> Self {
92         unsafe { ::std::mem::zeroed() }
93     }
94 }
95 impl ::std::fmt::Debug for DWRITE_CARET_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result96     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
97         fmt.debug_struct("DWRITE_CARET_METRICS").field("slopeRise", &self.slopeRise).field("slopeRun", &self.slopeRun).field("offset", &self.offset).finish()
98     }
99 }
100 impl ::std::cmp::PartialEq for DWRITE_CARET_METRICS {
eq(&self, other: &Self) -> bool101     fn eq(&self, other: &Self) -> bool {
102         self.slopeRise == other.slopeRise && self.slopeRun == other.slopeRun && self.offset == other.offset
103     }
104 }
105 impl ::std::cmp::Eq for DWRITE_CARET_METRICS {}
106 unsafe impl ::windows::runtime::Abi for DWRITE_CARET_METRICS {
107     type Abi = Self;
108     type DefaultType = Self;
109 }
110 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
111 #[repr(C)]
112 pub struct DWRITE_CLUSTER_METRICS {
113     pub width: f32,
114     pub length: u16,
115     pub _bitfield: u16,
116 }
117 impl DWRITE_CLUSTER_METRICS {}
118 impl ::std::default::Default for DWRITE_CLUSTER_METRICS {
default() -> Self119     fn default() -> Self {
120         unsafe { ::std::mem::zeroed() }
121     }
122 }
123 impl ::std::fmt::Debug for DWRITE_CLUSTER_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result124     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
125         fmt.debug_struct("DWRITE_CLUSTER_METRICS").field("width", &self.width).field("length", &self.length).field("_bitfield", &self._bitfield).finish()
126     }
127 }
128 impl ::std::cmp::PartialEq for DWRITE_CLUSTER_METRICS {
eq(&self, other: &Self) -> bool129     fn eq(&self, other: &Self) -> bool {
130         self.width == other.width && self.length == other.length && self._bitfield == other._bitfield
131     }
132 }
133 impl ::std::cmp::Eq for DWRITE_CLUSTER_METRICS {}
134 unsafe impl ::windows::runtime::Abi for DWRITE_CLUSTER_METRICS {
135     type Abi = Self;
136     type DefaultType = Self;
137 }
138 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
139 #[repr(C)]
140 pub struct DWRITE_COLOR_F {
141     pub r: f32,
142     pub g: f32,
143     pub b: f32,
144     pub a: f32,
145 }
146 impl DWRITE_COLOR_F {}
147 impl ::std::default::Default for DWRITE_COLOR_F {
default() -> Self148     fn default() -> Self {
149         unsafe { ::std::mem::zeroed() }
150     }
151 }
152 impl ::std::fmt::Debug for DWRITE_COLOR_F {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result153     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
154         fmt.debug_struct("DWRITE_COLOR_F").field("r", &self.r).field("g", &self.g).field("b", &self.b).field("a", &self.a).finish()
155     }
156 }
157 impl ::std::cmp::PartialEq for DWRITE_COLOR_F {
eq(&self, other: &Self) -> bool158     fn eq(&self, other: &Self) -> bool {
159         self.r == other.r && self.g == other.g && self.b == other.b && self.a == other.a
160     }
161 }
162 impl ::std::cmp::Eq for DWRITE_COLOR_F {}
163 unsafe impl ::windows::runtime::Abi for DWRITE_COLOR_F {
164     type Abi = Self;
165     type DefaultType = Self;
166 }
167 #[derive(:: std :: clone :: Clone)]
168 #[repr(C)]
169 #[cfg(feature = "Win32_Foundation")]
170 pub struct DWRITE_COLOR_GLYPH_RUN {
171     pub glyphRun: DWRITE_GLYPH_RUN,
172     pub glyphRunDescription: *mut DWRITE_GLYPH_RUN_DESCRIPTION,
173     pub baselineOriginX: f32,
174     pub baselineOriginY: f32,
175     pub runColor: DWRITE_COLOR_F,
176     pub paletteIndex: u16,
177 }
178 #[cfg(feature = "Win32_Foundation")]
179 impl DWRITE_COLOR_GLYPH_RUN {}
180 #[cfg(feature = "Win32_Foundation")]
181 impl ::std::default::Default for DWRITE_COLOR_GLYPH_RUN {
default() -> Self182     fn default() -> Self {
183         unsafe { ::std::mem::zeroed() }
184     }
185 }
186 #[cfg(feature = "Win32_Foundation")]
187 impl ::std::fmt::Debug for DWRITE_COLOR_GLYPH_RUN {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result188     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
189         fmt.debug_struct("DWRITE_COLOR_GLYPH_RUN")
190             .field("glyphRun", &self.glyphRun)
191             .field("glyphRunDescription", &self.glyphRunDescription)
192             .field("baselineOriginX", &self.baselineOriginX)
193             .field("baselineOriginY", &self.baselineOriginY)
194             .field("runColor", &self.runColor)
195             .field("paletteIndex", &self.paletteIndex)
196             .finish()
197     }
198 }
199 #[cfg(feature = "Win32_Foundation")]
200 impl ::std::cmp::PartialEq for DWRITE_COLOR_GLYPH_RUN {
eq(&self, other: &Self) -> bool201     fn eq(&self, other: &Self) -> bool {
202         self.glyphRun == other.glyphRun && self.glyphRunDescription == other.glyphRunDescription && self.baselineOriginX == other.baselineOriginX && self.baselineOriginY == other.baselineOriginY && self.runColor == other.runColor && self.paletteIndex == other.paletteIndex
203     }
204 }
205 #[cfg(feature = "Win32_Foundation")]
206 impl ::std::cmp::Eq for DWRITE_COLOR_GLYPH_RUN {}
207 #[cfg(feature = "Win32_Foundation")]
208 unsafe impl ::windows::runtime::Abi for DWRITE_COLOR_GLYPH_RUN {
209     type Abi = ::std::mem::ManuallyDrop<Self>;
210     type DefaultType = Self;
211 }
212 #[derive(:: std :: clone :: Clone)]
213 #[repr(C)]
214 #[cfg(feature = "Win32_Foundation")]
215 pub struct DWRITE_COLOR_GLYPH_RUN1 {
216     pub Base: DWRITE_COLOR_GLYPH_RUN,
217     pub glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
218     pub measuringMode: DWRITE_MEASURING_MODE,
219 }
220 #[cfg(feature = "Win32_Foundation")]
221 impl DWRITE_COLOR_GLYPH_RUN1 {}
222 #[cfg(feature = "Win32_Foundation")]
223 impl ::std::default::Default for DWRITE_COLOR_GLYPH_RUN1 {
default() -> Self224     fn default() -> Self {
225         unsafe { ::std::mem::zeroed() }
226     }
227 }
228 #[cfg(feature = "Win32_Foundation")]
229 impl ::std::fmt::Debug for DWRITE_COLOR_GLYPH_RUN1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result230     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
231         fmt.debug_struct("DWRITE_COLOR_GLYPH_RUN1").field("Base", &self.Base).field("glyphImageFormat", &self.glyphImageFormat).field("measuringMode", &self.measuringMode).finish()
232     }
233 }
234 #[cfg(feature = "Win32_Foundation")]
235 impl ::std::cmp::PartialEq for DWRITE_COLOR_GLYPH_RUN1 {
eq(&self, other: &Self) -> bool236     fn eq(&self, other: &Self) -> bool {
237         self.Base == other.Base && self.glyphImageFormat == other.glyphImageFormat && self.measuringMode == other.measuringMode
238     }
239 }
240 #[cfg(feature = "Win32_Foundation")]
241 impl ::std::cmp::Eq for DWRITE_COLOR_GLYPH_RUN1 {}
242 #[cfg(feature = "Win32_Foundation")]
243 unsafe impl ::windows::runtime::Abi for DWRITE_COLOR_GLYPH_RUN1 {
244     type Abi = ::std::mem::ManuallyDrop<Self>;
245     type DefaultType = Self;
246 }
247 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
248 #[repr(transparent)]
249 pub struct DWRITE_CONTAINER_TYPE(pub i32);
250 pub const DWRITE_CONTAINER_TYPE_UNKNOWN: DWRITE_CONTAINER_TYPE = DWRITE_CONTAINER_TYPE(0i32);
251 pub const DWRITE_CONTAINER_TYPE_WOFF: DWRITE_CONTAINER_TYPE = DWRITE_CONTAINER_TYPE(1i32);
252 pub const DWRITE_CONTAINER_TYPE_WOFF2: DWRITE_CONTAINER_TYPE = DWRITE_CONTAINER_TYPE(2i32);
253 impl ::std::convert::From<i32> for DWRITE_CONTAINER_TYPE {
from(value: i32) -> Self254     fn from(value: i32) -> Self {
255         Self(value)
256     }
257 }
258 unsafe impl ::windows::runtime::Abi for DWRITE_CONTAINER_TYPE {
259     type Abi = Self;
260     type DefaultType = Self;
261 }
262 pub const DWRITE_ERR_BASE: u32 = 20480u32;
263 pub const DWRITE_E_DOWNLOADCANCELLED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2003283954i32 as _);
264 pub const DWRITE_E_DOWNLOADFAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2003283953i32 as _);
265 pub const DWRITE_E_REMOTEFONT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2003283955i32 as _);
266 pub const DWRITE_E_TOOMANYDOWNLOADS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2003283952i32 as _);
267 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
268 #[repr(transparent)]
269 pub struct DWRITE_FACTORY_TYPE(pub i32);
270 pub const DWRITE_FACTORY_TYPE_SHARED: DWRITE_FACTORY_TYPE = DWRITE_FACTORY_TYPE(0i32);
271 pub const DWRITE_FACTORY_TYPE_ISOLATED: DWRITE_FACTORY_TYPE = DWRITE_FACTORY_TYPE(1i32);
272 impl ::std::convert::From<i32> for DWRITE_FACTORY_TYPE {
from(value: i32) -> Self273     fn from(value: i32) -> Self {
274         Self(value)
275     }
276 }
277 unsafe impl ::windows::runtime::Abi for DWRITE_FACTORY_TYPE {
278     type Abi = Self;
279     type DefaultType = Self;
280 }
281 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
282 #[repr(C)]
283 pub struct DWRITE_FILE_FRAGMENT {
284     pub fileOffset: u64,
285     pub fragmentSize: u64,
286 }
287 impl DWRITE_FILE_FRAGMENT {}
288 impl ::std::default::Default for DWRITE_FILE_FRAGMENT {
default() -> Self289     fn default() -> Self {
290         unsafe { ::std::mem::zeroed() }
291     }
292 }
293 impl ::std::fmt::Debug for DWRITE_FILE_FRAGMENT {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result294     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
295         fmt.debug_struct("DWRITE_FILE_FRAGMENT").field("fileOffset", &self.fileOffset).field("fragmentSize", &self.fragmentSize).finish()
296     }
297 }
298 impl ::std::cmp::PartialEq for DWRITE_FILE_FRAGMENT {
eq(&self, other: &Self) -> bool299     fn eq(&self, other: &Self) -> bool {
300         self.fileOffset == other.fileOffset && self.fragmentSize == other.fragmentSize
301     }
302 }
303 impl ::std::cmp::Eq for DWRITE_FILE_FRAGMENT {}
304 unsafe impl ::windows::runtime::Abi for DWRITE_FILE_FRAGMENT {
305     type Abi = Self;
306     type DefaultType = Self;
307 }
308 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
309 #[repr(transparent)]
310 pub struct DWRITE_FLOW_DIRECTION(pub i32);
311 pub const DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM: DWRITE_FLOW_DIRECTION = DWRITE_FLOW_DIRECTION(0i32);
312 pub const DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP: DWRITE_FLOW_DIRECTION = DWRITE_FLOW_DIRECTION(1i32);
313 pub const DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT: DWRITE_FLOW_DIRECTION = DWRITE_FLOW_DIRECTION(2i32);
314 pub const DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT: DWRITE_FLOW_DIRECTION = DWRITE_FLOW_DIRECTION(3i32);
315 impl ::std::convert::From<i32> for DWRITE_FLOW_DIRECTION {
from(value: i32) -> Self316     fn from(value: i32) -> Self {
317         Self(value)
318     }
319 }
320 unsafe impl ::windows::runtime::Abi for DWRITE_FLOW_DIRECTION {
321     type Abi = Self;
322     type DefaultType = Self;
323 }
324 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
325 #[repr(transparent)]
326 pub struct DWRITE_FONT_AXIS_ATTRIBUTES(pub u32);
327 pub const DWRITE_FONT_AXIS_ATTRIBUTES_NONE: DWRITE_FONT_AXIS_ATTRIBUTES = DWRITE_FONT_AXIS_ATTRIBUTES(0u32);
328 pub const DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE: DWRITE_FONT_AXIS_ATTRIBUTES = DWRITE_FONT_AXIS_ATTRIBUTES(1u32);
329 pub const DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN: DWRITE_FONT_AXIS_ATTRIBUTES = DWRITE_FONT_AXIS_ATTRIBUTES(2u32);
330 impl ::std::convert::From<u32> for DWRITE_FONT_AXIS_ATTRIBUTES {
from(value: u32) -> Self331     fn from(value: u32) -> Self {
332         Self(value)
333     }
334 }
335 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_AXIS_ATTRIBUTES {
336     type Abi = Self;
337     type DefaultType = Self;
338 }
339 impl ::std::ops::BitOr for DWRITE_FONT_AXIS_ATTRIBUTES {
340     type Output = Self;
bitor(self, rhs: Self) -> Self341     fn bitor(self, rhs: Self) -> Self {
342         Self(self.0 | rhs.0)
343     }
344 }
345 impl ::std::ops::BitAnd for DWRITE_FONT_AXIS_ATTRIBUTES {
346     type Output = Self;
bitand(self, rhs: Self) -> Self347     fn bitand(self, rhs: Self) -> Self {
348         Self(self.0 & rhs.0)
349     }
350 }
351 impl ::std::ops::BitOrAssign for DWRITE_FONT_AXIS_ATTRIBUTES {
bitor_assign(&mut self, rhs: Self)352     fn bitor_assign(&mut self, rhs: Self) {
353         self.0.bitor_assign(rhs.0)
354     }
355 }
356 impl ::std::ops::BitAndAssign for DWRITE_FONT_AXIS_ATTRIBUTES {
bitand_assign(&mut self, rhs: Self)357     fn bitand_assign(&mut self, rhs: Self) {
358         self.0.bitand_assign(rhs.0)
359     }
360 }
361 impl ::std::ops::Not for DWRITE_FONT_AXIS_ATTRIBUTES {
362     type Output = Self;
not(self) -> Self363     fn not(self) -> Self {
364         Self(self.0.not())
365     }
366 }
367 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
368 #[repr(C)]
369 pub struct DWRITE_FONT_AXIS_RANGE {
370     pub axisTag: DWRITE_FONT_AXIS_TAG,
371     pub minValue: f32,
372     pub maxValue: f32,
373 }
374 impl DWRITE_FONT_AXIS_RANGE {}
375 impl ::std::default::Default for DWRITE_FONT_AXIS_RANGE {
default() -> Self376     fn default() -> Self {
377         unsafe { ::std::mem::zeroed() }
378     }
379 }
380 impl ::std::fmt::Debug for DWRITE_FONT_AXIS_RANGE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result381     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
382         fmt.debug_struct("DWRITE_FONT_AXIS_RANGE").field("axisTag", &self.axisTag).field("minValue", &self.minValue).field("maxValue", &self.maxValue).finish()
383     }
384 }
385 impl ::std::cmp::PartialEq for DWRITE_FONT_AXIS_RANGE {
eq(&self, other: &Self) -> bool386     fn eq(&self, other: &Self) -> bool {
387         self.axisTag == other.axisTag && self.minValue == other.minValue && self.maxValue == other.maxValue
388     }
389 }
390 impl ::std::cmp::Eq for DWRITE_FONT_AXIS_RANGE {}
391 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_AXIS_RANGE {
392     type Abi = Self;
393     type DefaultType = Self;
394 }
395 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
396 #[repr(transparent)]
397 pub struct DWRITE_FONT_AXIS_TAG(pub u32);
398 pub const DWRITE_FONT_AXIS_TAG_WEIGHT: DWRITE_FONT_AXIS_TAG = DWRITE_FONT_AXIS_TAG(1952999287u32);
399 pub const DWRITE_FONT_AXIS_TAG_WIDTH: DWRITE_FONT_AXIS_TAG = DWRITE_FONT_AXIS_TAG(1752458359u32);
400 pub const DWRITE_FONT_AXIS_TAG_SLANT: DWRITE_FONT_AXIS_TAG = DWRITE_FONT_AXIS_TAG(1953393779u32);
401 pub const DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE: DWRITE_FONT_AXIS_TAG = DWRITE_FONT_AXIS_TAG(2054385775u32);
402 pub const DWRITE_FONT_AXIS_TAG_ITALIC: DWRITE_FONT_AXIS_TAG = DWRITE_FONT_AXIS_TAG(1818326121u32);
403 impl ::std::convert::From<u32> for DWRITE_FONT_AXIS_TAG {
from(value: u32) -> Self404     fn from(value: u32) -> Self {
405         Self(value)
406     }
407 }
408 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_AXIS_TAG {
409     type Abi = Self;
410     type DefaultType = Self;
411 }
412 impl ::std::ops::BitOr for DWRITE_FONT_AXIS_TAG {
413     type Output = Self;
bitor(self, rhs: Self) -> Self414     fn bitor(self, rhs: Self) -> Self {
415         Self(self.0 | rhs.0)
416     }
417 }
418 impl ::std::ops::BitAnd for DWRITE_FONT_AXIS_TAG {
419     type Output = Self;
bitand(self, rhs: Self) -> Self420     fn bitand(self, rhs: Self) -> Self {
421         Self(self.0 & rhs.0)
422     }
423 }
424 impl ::std::ops::BitOrAssign for DWRITE_FONT_AXIS_TAG {
bitor_assign(&mut self, rhs: Self)425     fn bitor_assign(&mut self, rhs: Self) {
426         self.0.bitor_assign(rhs.0)
427     }
428 }
429 impl ::std::ops::BitAndAssign for DWRITE_FONT_AXIS_TAG {
bitand_assign(&mut self, rhs: Self)430     fn bitand_assign(&mut self, rhs: Self) {
431         self.0.bitand_assign(rhs.0)
432     }
433 }
434 impl ::std::ops::Not for DWRITE_FONT_AXIS_TAG {
435     type Output = Self;
not(self) -> Self436     fn not(self) -> Self {
437         Self(self.0.not())
438     }
439 }
440 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
441 #[repr(C)]
442 pub struct DWRITE_FONT_AXIS_VALUE {
443     pub axisTag: DWRITE_FONT_AXIS_TAG,
444     pub value: f32,
445 }
446 impl DWRITE_FONT_AXIS_VALUE {}
447 impl ::std::default::Default for DWRITE_FONT_AXIS_VALUE {
default() -> Self448     fn default() -> Self {
449         unsafe { ::std::mem::zeroed() }
450     }
451 }
452 impl ::std::fmt::Debug for DWRITE_FONT_AXIS_VALUE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result453     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
454         fmt.debug_struct("DWRITE_FONT_AXIS_VALUE").field("axisTag", &self.axisTag).field("value", &self.value).finish()
455     }
456 }
457 impl ::std::cmp::PartialEq for DWRITE_FONT_AXIS_VALUE {
eq(&self, other: &Self) -> bool458     fn eq(&self, other: &Self) -> bool {
459         self.axisTag == other.axisTag && self.value == other.value
460     }
461 }
462 impl ::std::cmp::Eq for DWRITE_FONT_AXIS_VALUE {}
463 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_AXIS_VALUE {
464     type Abi = Self;
465     type DefaultType = Self;
466 }
467 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
468 #[repr(transparent)]
469 pub struct DWRITE_FONT_FACE_TYPE(pub i32);
470 pub const DWRITE_FONT_FACE_TYPE_CFF: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(0i32);
471 pub const DWRITE_FONT_FACE_TYPE_TRUETYPE: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(1i32);
472 pub const DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(2i32);
473 pub const DWRITE_FONT_FACE_TYPE_TYPE1: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(3i32);
474 pub const DWRITE_FONT_FACE_TYPE_VECTOR: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(4i32);
475 pub const DWRITE_FONT_FACE_TYPE_BITMAP: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(5i32);
476 pub const DWRITE_FONT_FACE_TYPE_UNKNOWN: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(6i32);
477 pub const DWRITE_FONT_FACE_TYPE_RAW_CFF: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(7i32);
478 pub const DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION: DWRITE_FONT_FACE_TYPE = DWRITE_FONT_FACE_TYPE(2i32);
479 impl ::std::convert::From<i32> for DWRITE_FONT_FACE_TYPE {
from(value: i32) -> Self480     fn from(value: i32) -> Self {
481         Self(value)
482     }
483 }
484 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_FACE_TYPE {
485     type Abi = Self;
486     type DefaultType = Self;
487 }
488 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
489 #[repr(transparent)]
490 pub struct DWRITE_FONT_FAMILY_MODEL(pub i32);
491 pub const DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC: DWRITE_FONT_FAMILY_MODEL = DWRITE_FONT_FAMILY_MODEL(0i32);
492 pub const DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE: DWRITE_FONT_FAMILY_MODEL = DWRITE_FONT_FAMILY_MODEL(1i32);
493 impl ::std::convert::From<i32> for DWRITE_FONT_FAMILY_MODEL {
from(value: i32) -> Self494     fn from(value: i32) -> Self {
495         Self(value)
496     }
497 }
498 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_FAMILY_MODEL {
499     type Abi = Self;
500     type DefaultType = Self;
501 }
502 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
503 #[repr(C)]
504 pub struct DWRITE_FONT_FEATURE {
505     pub nameTag: DWRITE_FONT_FEATURE_TAG,
506     pub parameter: u32,
507 }
508 impl DWRITE_FONT_FEATURE {}
509 impl ::std::default::Default for DWRITE_FONT_FEATURE {
default() -> Self510     fn default() -> Self {
511         unsafe { ::std::mem::zeroed() }
512     }
513 }
514 impl ::std::fmt::Debug for DWRITE_FONT_FEATURE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result515     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
516         fmt.debug_struct("DWRITE_FONT_FEATURE").field("nameTag", &self.nameTag).field("parameter", &self.parameter).finish()
517     }
518 }
519 impl ::std::cmp::PartialEq for DWRITE_FONT_FEATURE {
eq(&self, other: &Self) -> bool520     fn eq(&self, other: &Self) -> bool {
521         self.nameTag == other.nameTag && self.parameter == other.parameter
522     }
523 }
524 impl ::std::cmp::Eq for DWRITE_FONT_FEATURE {}
525 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_FEATURE {
526     type Abi = Self;
527     type DefaultType = Self;
528 }
529 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
530 #[repr(transparent)]
531 pub struct DWRITE_FONT_FEATURE_TAG(pub u32);
532 pub const DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1668441697u32);
533 pub const DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1668297315u32);
534 pub const DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1668493923u32);
535 pub const DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953259875u32);
536 pub const DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1702060387u32);
537 pub const DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1886217059u32);
538 pub const DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1734962275u32);
539 pub const DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1886613603u32);
540 pub const DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1752658787u32);
541 pub const DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1936880995u32);
542 pub const DWRITE_FONT_FEATURE_TAG_DEFAULT: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953261156u32);
543 pub const DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1734962276u32);
544 pub const DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953527909u32);
545 pub const DWRITE_FONT_FEATURE_TAG_FRACTIONS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1667330662u32);
546 pub const DWRITE_FONT_FEATURE_TAG_FULL_WIDTH: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1684633446u32);
547 pub const DWRITE_FONT_FEATURE_TAG_HALF_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1718378856u32);
548 pub const DWRITE_FONT_FEATURE_TAG_HALANT_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1852596584u32);
549 pub const DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953259880u32);
550 pub const DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953720680u32);
551 pub const DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1634626408u32);
552 pub const DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1734962280u32);
553 pub const DWRITE_FONT_FEATURE_TAG_HALF_WIDTH: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1684633448u32);
554 pub const DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1869246312u32);
555 pub const DWRITE_FONT_FEATURE_TAG_JIS04_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(875589738u32);
556 pub const DWRITE_FONT_FEATURE_TAG_JIS78_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(943157354u32);
557 pub const DWRITE_FONT_FEATURE_TAG_JIS83_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(859336810u32);
558 pub const DWRITE_FONT_FEATURE_TAG_JIS90_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(809070698u32);
559 pub const DWRITE_FONT_FEATURE_TAG_KERNING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1852990827u32);
560 pub const DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1634167148u32);
561 pub const DWRITE_FONT_FEATURE_TAG_LINING_FIGURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1836412524u32);
562 pub const DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1818455916u32);
563 pub const DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1802658157u32);
564 pub const DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1802659693u32);
565 pub const DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1802333037u32);
566 pub const DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953259886u32);
567 pub const DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1801677934u32);
568 pub const DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1836412527u32);
569 pub const DWRITE_FONT_FEATURE_TAG_ORDINALS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1852076655u32);
570 pub const DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953259888u32);
571 pub const DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1885430640u32);
572 pub const DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1836412528u32);
573 pub const DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1684633456u32);
574 pub const DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1684633457u32);
575 pub const DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1734962290u32);
576 pub const DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(2036495730u32);
577 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953259891u32);
578 pub const DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1718511987u32);
579 pub const DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1885564275u32);
580 pub const DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1819307379u32);
581 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(825258867u32);
582 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(842036083u32);
583 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(858813299u32);
584 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(875590515u32);
585 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(892367731u32);
586 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(909144947u32);
587 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(925922163u32);
588 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(942699379u32);
589 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(959476595u32);
590 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(808547187u32);
591 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(825324403u32);
592 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(842101619u32);
593 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(858878835u32);
594 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(875656051u32);
595 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(892433267u32);
596 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(909210483u32);
597 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(925987699u32);
598 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(942764915u32);
599 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(959542131u32);
600 pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(808612723u32);
601 pub const DWRITE_FONT_FEATURE_TAG_SUBSCRIPT: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1935832435u32);
602 pub const DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1936749939u32);
603 pub const DWRITE_FONT_FEATURE_TAG_SWASH: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1752397683u32);
604 pub const DWRITE_FONT_FEATURE_TAG_TITLING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1819568500u32);
605 pub const DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1835101812u32);
606 pub const DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1836412532u32);
607 pub const DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1684107892u32);
608 pub const DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1684633460u32);
609 pub const DWRITE_FONT_FEATURE_TAG_UNICASE: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1667853941u32);
610 pub const DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1953654134u32);
611 pub const DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(846492278u32);
612 pub const DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO: DWRITE_FONT_FEATURE_TAG = DWRITE_FONT_FEATURE_TAG(1869768058u32);
613 impl ::std::convert::From<u32> for DWRITE_FONT_FEATURE_TAG {
from(value: u32) -> Self614     fn from(value: u32) -> Self {
615         Self(value)
616     }
617 }
618 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_FEATURE_TAG {
619     type Abi = Self;
620     type DefaultType = Self;
621 }
622 impl ::std::ops::BitOr for DWRITE_FONT_FEATURE_TAG {
623     type Output = Self;
bitor(self, rhs: Self) -> Self624     fn bitor(self, rhs: Self) -> Self {
625         Self(self.0 | rhs.0)
626     }
627 }
628 impl ::std::ops::BitAnd for DWRITE_FONT_FEATURE_TAG {
629     type Output = Self;
bitand(self, rhs: Self) -> Self630     fn bitand(self, rhs: Self) -> Self {
631         Self(self.0 & rhs.0)
632     }
633 }
634 impl ::std::ops::BitOrAssign for DWRITE_FONT_FEATURE_TAG {
bitor_assign(&mut self, rhs: Self)635     fn bitor_assign(&mut self, rhs: Self) {
636         self.0.bitor_assign(rhs.0)
637     }
638 }
639 impl ::std::ops::BitAndAssign for DWRITE_FONT_FEATURE_TAG {
bitand_assign(&mut self, rhs: Self)640     fn bitand_assign(&mut self, rhs: Self) {
641         self.0.bitand_assign(rhs.0)
642     }
643 }
644 impl ::std::ops::Not for DWRITE_FONT_FEATURE_TAG {
645     type Output = Self;
not(self) -> Self646     fn not(self) -> Self {
647         Self(self.0.not())
648     }
649 }
650 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
651 #[repr(transparent)]
652 pub struct DWRITE_FONT_FILE_TYPE(pub i32);
653 pub const DWRITE_FONT_FILE_TYPE_UNKNOWN: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(0i32);
654 pub const DWRITE_FONT_FILE_TYPE_CFF: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(1i32);
655 pub const DWRITE_FONT_FILE_TYPE_TRUETYPE: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(2i32);
656 pub const DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(3i32);
657 pub const DWRITE_FONT_FILE_TYPE_TYPE1_PFM: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(4i32);
658 pub const DWRITE_FONT_FILE_TYPE_TYPE1_PFB: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(5i32);
659 pub const DWRITE_FONT_FILE_TYPE_VECTOR: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(6i32);
660 pub const DWRITE_FONT_FILE_TYPE_BITMAP: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(7i32);
661 pub const DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION: DWRITE_FONT_FILE_TYPE = DWRITE_FONT_FILE_TYPE(3i32);
662 impl ::std::convert::From<i32> for DWRITE_FONT_FILE_TYPE {
from(value: i32) -> Self663     fn from(value: i32) -> Self {
664         Self(value)
665     }
666 }
667 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_FILE_TYPE {
668     type Abi = Self;
669     type DefaultType = Self;
670 }
671 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
672 #[repr(transparent)]
673 pub struct DWRITE_FONT_LINE_GAP_USAGE(pub i32);
674 pub const DWRITE_FONT_LINE_GAP_USAGE_DEFAULT: DWRITE_FONT_LINE_GAP_USAGE = DWRITE_FONT_LINE_GAP_USAGE(0i32);
675 pub const DWRITE_FONT_LINE_GAP_USAGE_DISABLED: DWRITE_FONT_LINE_GAP_USAGE = DWRITE_FONT_LINE_GAP_USAGE(1i32);
676 pub const DWRITE_FONT_LINE_GAP_USAGE_ENABLED: DWRITE_FONT_LINE_GAP_USAGE = DWRITE_FONT_LINE_GAP_USAGE(2i32);
677 impl ::std::convert::From<i32> for DWRITE_FONT_LINE_GAP_USAGE {
from(value: i32) -> Self678     fn from(value: i32) -> Self {
679         Self(value)
680     }
681 }
682 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_LINE_GAP_USAGE {
683     type Abi = Self;
684     type DefaultType = Self;
685 }
686 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
687 #[repr(C)]
688 pub struct DWRITE_FONT_METRICS {
689     pub designUnitsPerEm: u16,
690     pub ascent: u16,
691     pub descent: u16,
692     pub lineGap: i16,
693     pub capHeight: u16,
694     pub xHeight: u16,
695     pub underlinePosition: i16,
696     pub underlineThickness: u16,
697     pub strikethroughPosition: i16,
698     pub strikethroughThickness: u16,
699 }
700 impl DWRITE_FONT_METRICS {}
701 impl ::std::default::Default for DWRITE_FONT_METRICS {
default() -> Self702     fn default() -> Self {
703         unsafe { ::std::mem::zeroed() }
704     }
705 }
706 impl ::std::fmt::Debug for DWRITE_FONT_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result707     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
708         fmt.debug_struct("DWRITE_FONT_METRICS")
709             .field("designUnitsPerEm", &self.designUnitsPerEm)
710             .field("ascent", &self.ascent)
711             .field("descent", &self.descent)
712             .field("lineGap", &self.lineGap)
713             .field("capHeight", &self.capHeight)
714             .field("xHeight", &self.xHeight)
715             .field("underlinePosition", &self.underlinePosition)
716             .field("underlineThickness", &self.underlineThickness)
717             .field("strikethroughPosition", &self.strikethroughPosition)
718             .field("strikethroughThickness", &self.strikethroughThickness)
719             .finish()
720     }
721 }
722 impl ::std::cmp::PartialEq for DWRITE_FONT_METRICS {
eq(&self, other: &Self) -> bool723     fn eq(&self, other: &Self) -> bool {
724         self.designUnitsPerEm == other.designUnitsPerEm && self.ascent == other.ascent && self.descent == other.descent && self.lineGap == other.lineGap && self.capHeight == other.capHeight && self.xHeight == other.xHeight && self.underlinePosition == other.underlinePosition && self.underlineThickness == other.underlineThickness && self.strikethroughPosition == other.strikethroughPosition && self.strikethroughThickness == other.strikethroughThickness
725     }
726 }
727 impl ::std::cmp::Eq for DWRITE_FONT_METRICS {}
728 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_METRICS {
729     type Abi = Self;
730     type DefaultType = Self;
731 }
732 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
733 #[repr(C)]
734 #[cfg(feature = "Win32_Foundation")]
735 pub struct DWRITE_FONT_METRICS1 {
736     pub __AnonymousBase_DWrite_1_L627_C38: DWRITE_FONT_METRICS,
737     pub glyphBoxLeft: i16,
738     pub glyphBoxTop: i16,
739     pub glyphBoxRight: i16,
740     pub glyphBoxBottom: i16,
741     pub subscriptPositionX: i16,
742     pub subscriptPositionY: i16,
743     pub subscriptSizeX: i16,
744     pub subscriptSizeY: i16,
745     pub superscriptPositionX: i16,
746     pub superscriptPositionY: i16,
747     pub superscriptSizeX: i16,
748     pub superscriptSizeY: i16,
749     pub hasTypographicMetrics: super::super::Foundation::BOOL,
750 }
751 #[cfg(feature = "Win32_Foundation")]
752 impl DWRITE_FONT_METRICS1 {}
753 #[cfg(feature = "Win32_Foundation")]
754 impl ::std::default::Default for DWRITE_FONT_METRICS1 {
default() -> Self755     fn default() -> Self {
756         unsafe { ::std::mem::zeroed() }
757     }
758 }
759 #[cfg(feature = "Win32_Foundation")]
760 impl ::std::fmt::Debug for DWRITE_FONT_METRICS1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result761     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
762         fmt.debug_struct("DWRITE_FONT_METRICS1")
763             .field("__AnonymousBase_DWrite_1_L627_C38", &self.__AnonymousBase_DWrite_1_L627_C38)
764             .field("glyphBoxLeft", &self.glyphBoxLeft)
765             .field("glyphBoxTop", &self.glyphBoxTop)
766             .field("glyphBoxRight", &self.glyphBoxRight)
767             .field("glyphBoxBottom", &self.glyphBoxBottom)
768             .field("subscriptPositionX", &self.subscriptPositionX)
769             .field("subscriptPositionY", &self.subscriptPositionY)
770             .field("subscriptSizeX", &self.subscriptSizeX)
771             .field("subscriptSizeY", &self.subscriptSizeY)
772             .field("superscriptPositionX", &self.superscriptPositionX)
773             .field("superscriptPositionY", &self.superscriptPositionY)
774             .field("superscriptSizeX", &self.superscriptSizeX)
775             .field("superscriptSizeY", &self.superscriptSizeY)
776             .field("hasTypographicMetrics", &self.hasTypographicMetrics)
777             .finish()
778     }
779 }
780 #[cfg(feature = "Win32_Foundation")]
781 impl ::std::cmp::PartialEq for DWRITE_FONT_METRICS1 {
eq(&self, other: &Self) -> bool782     fn eq(&self, other: &Self) -> bool {
783         self.__AnonymousBase_DWrite_1_L627_C38 == other.__AnonymousBase_DWrite_1_L627_C38
784             && self.glyphBoxLeft == other.glyphBoxLeft
785             && self.glyphBoxTop == other.glyphBoxTop
786             && self.glyphBoxRight == other.glyphBoxRight
787             && self.glyphBoxBottom == other.glyphBoxBottom
788             && self.subscriptPositionX == other.subscriptPositionX
789             && self.subscriptPositionY == other.subscriptPositionY
790             && self.subscriptSizeX == other.subscriptSizeX
791             && self.subscriptSizeY == other.subscriptSizeY
792             && self.superscriptPositionX == other.superscriptPositionX
793             && self.superscriptPositionY == other.superscriptPositionY
794             && self.superscriptSizeX == other.superscriptSizeX
795             && self.superscriptSizeY == other.superscriptSizeY
796             && self.hasTypographicMetrics == other.hasTypographicMetrics
797     }
798 }
799 #[cfg(feature = "Win32_Foundation")]
800 impl ::std::cmp::Eq for DWRITE_FONT_METRICS1 {}
801 #[cfg(feature = "Win32_Foundation")]
802 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_METRICS1 {
803     type Abi = Self;
804     type DefaultType = Self;
805 }
806 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
807 #[repr(C)]
808 #[cfg(feature = "Win32_Foundation")]
809 pub struct DWRITE_FONT_PROPERTY {
810     pub propertyId: DWRITE_FONT_PROPERTY_ID,
811     pub propertyValue: super::super::Foundation::PWSTR,
812     pub localeName: super::super::Foundation::PWSTR,
813 }
814 #[cfg(feature = "Win32_Foundation")]
815 impl DWRITE_FONT_PROPERTY {}
816 #[cfg(feature = "Win32_Foundation")]
817 impl ::std::default::Default for DWRITE_FONT_PROPERTY {
default() -> Self818     fn default() -> Self {
819         unsafe { ::std::mem::zeroed() }
820     }
821 }
822 #[cfg(feature = "Win32_Foundation")]
823 impl ::std::fmt::Debug for DWRITE_FONT_PROPERTY {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result824     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
825         fmt.debug_struct("DWRITE_FONT_PROPERTY").field("propertyId", &self.propertyId).field("propertyValue", &self.propertyValue).field("localeName", &self.localeName).finish()
826     }
827 }
828 #[cfg(feature = "Win32_Foundation")]
829 impl ::std::cmp::PartialEq for DWRITE_FONT_PROPERTY {
eq(&self, other: &Self) -> bool830     fn eq(&self, other: &Self) -> bool {
831         self.propertyId == other.propertyId && self.propertyValue == other.propertyValue && self.localeName == other.localeName
832     }
833 }
834 #[cfg(feature = "Win32_Foundation")]
835 impl ::std::cmp::Eq for DWRITE_FONT_PROPERTY {}
836 #[cfg(feature = "Win32_Foundation")]
837 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_PROPERTY {
838     type Abi = Self;
839     type DefaultType = Self;
840 }
841 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
842 #[repr(transparent)]
843 pub struct DWRITE_FONT_PROPERTY_ID(pub i32);
844 pub const DWRITE_FONT_PROPERTY_ID_NONE: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(0i32);
845 pub const DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(1i32);
846 pub const DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(2i32);
847 pub const DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(3i32);
848 pub const DWRITE_FONT_PROPERTY_ID_FULL_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(4i32);
849 pub const DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(5i32);
850 pub const DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(6i32);
851 pub const DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(7i32);
852 pub const DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(8i32);
853 pub const DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(9i32);
854 pub const DWRITE_FONT_PROPERTY_ID_WEIGHT: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(10i32);
855 pub const DWRITE_FONT_PROPERTY_ID_STRETCH: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(11i32);
856 pub const DWRITE_FONT_PROPERTY_ID_STYLE: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(12i32);
857 pub const DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(13i32);
858 pub const DWRITE_FONT_PROPERTY_ID_TOTAL: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(13i32);
859 pub const DWRITE_FONT_PROPERTY_ID_TOTAL_RS3: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(14i32);
860 pub const DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(2i32);
861 pub const DWRITE_FONT_PROPERTY_ID_FAMILY_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(1i32);
862 pub const DWRITE_FONT_PROPERTY_ID_FACE_NAME: DWRITE_FONT_PROPERTY_ID = DWRITE_FONT_PROPERTY_ID(3i32);
863 impl ::std::convert::From<i32> for DWRITE_FONT_PROPERTY_ID {
from(value: i32) -> Self864     fn from(value: i32) -> Self {
865         Self(value)
866     }
867 }
868 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_PROPERTY_ID {
869     type Abi = Self;
870     type DefaultType = Self;
871 }
872 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
873 #[repr(transparent)]
874 pub struct DWRITE_FONT_SIMULATIONS(pub u32);
875 pub const DWRITE_FONT_SIMULATIONS_NONE: DWRITE_FONT_SIMULATIONS = DWRITE_FONT_SIMULATIONS(0u32);
876 pub const DWRITE_FONT_SIMULATIONS_BOLD: DWRITE_FONT_SIMULATIONS = DWRITE_FONT_SIMULATIONS(1u32);
877 pub const DWRITE_FONT_SIMULATIONS_OBLIQUE: DWRITE_FONT_SIMULATIONS = DWRITE_FONT_SIMULATIONS(2u32);
878 impl ::std::convert::From<u32> for DWRITE_FONT_SIMULATIONS {
from(value: u32) -> Self879     fn from(value: u32) -> Self {
880         Self(value)
881     }
882 }
883 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_SIMULATIONS {
884     type Abi = Self;
885     type DefaultType = Self;
886 }
887 impl ::std::ops::BitOr for DWRITE_FONT_SIMULATIONS {
888     type Output = Self;
bitor(self, rhs: Self) -> Self889     fn bitor(self, rhs: Self) -> Self {
890         Self(self.0 | rhs.0)
891     }
892 }
893 impl ::std::ops::BitAnd for DWRITE_FONT_SIMULATIONS {
894     type Output = Self;
bitand(self, rhs: Self) -> Self895     fn bitand(self, rhs: Self) -> Self {
896         Self(self.0 & rhs.0)
897     }
898 }
899 impl ::std::ops::BitOrAssign for DWRITE_FONT_SIMULATIONS {
bitor_assign(&mut self, rhs: Self)900     fn bitor_assign(&mut self, rhs: Self) {
901         self.0.bitor_assign(rhs.0)
902     }
903 }
904 impl ::std::ops::BitAndAssign for DWRITE_FONT_SIMULATIONS {
bitand_assign(&mut self, rhs: Self)905     fn bitand_assign(&mut self, rhs: Self) {
906         self.0.bitand_assign(rhs.0)
907     }
908 }
909 impl ::std::ops::Not for DWRITE_FONT_SIMULATIONS {
910     type Output = Self;
not(self) -> Self911     fn not(self) -> Self {
912         Self(self.0.not())
913     }
914 }
915 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
916 #[repr(transparent)]
917 pub struct DWRITE_FONT_SOURCE_TYPE(pub i32);
918 pub const DWRITE_FONT_SOURCE_TYPE_UNKNOWN: DWRITE_FONT_SOURCE_TYPE = DWRITE_FONT_SOURCE_TYPE(0i32);
919 pub const DWRITE_FONT_SOURCE_TYPE_PER_MACHINE: DWRITE_FONT_SOURCE_TYPE = DWRITE_FONT_SOURCE_TYPE(1i32);
920 pub const DWRITE_FONT_SOURCE_TYPE_PER_USER: DWRITE_FONT_SOURCE_TYPE = DWRITE_FONT_SOURCE_TYPE(2i32);
921 pub const DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE: DWRITE_FONT_SOURCE_TYPE = DWRITE_FONT_SOURCE_TYPE(3i32);
922 pub const DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER: DWRITE_FONT_SOURCE_TYPE = DWRITE_FONT_SOURCE_TYPE(4i32);
923 impl ::std::convert::From<i32> for DWRITE_FONT_SOURCE_TYPE {
from(value: i32) -> Self924     fn from(value: i32) -> Self {
925         Self(value)
926     }
927 }
928 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_SOURCE_TYPE {
929     type Abi = Self;
930     type DefaultType = Self;
931 }
932 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
933 #[repr(transparent)]
934 pub struct DWRITE_FONT_STRETCH(pub i32);
935 pub const DWRITE_FONT_STRETCH_UNDEFINED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(0i32);
936 pub const DWRITE_FONT_STRETCH_ULTRA_CONDENSED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(1i32);
937 pub const DWRITE_FONT_STRETCH_EXTRA_CONDENSED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(2i32);
938 pub const DWRITE_FONT_STRETCH_CONDENSED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(3i32);
939 pub const DWRITE_FONT_STRETCH_SEMI_CONDENSED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(4i32);
940 pub const DWRITE_FONT_STRETCH_NORMAL: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(5i32);
941 pub const DWRITE_FONT_STRETCH_MEDIUM: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(5i32);
942 pub const DWRITE_FONT_STRETCH_SEMI_EXPANDED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(6i32);
943 pub const DWRITE_FONT_STRETCH_EXPANDED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(7i32);
944 pub const DWRITE_FONT_STRETCH_EXTRA_EXPANDED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(8i32);
945 pub const DWRITE_FONT_STRETCH_ULTRA_EXPANDED: DWRITE_FONT_STRETCH = DWRITE_FONT_STRETCH(9i32);
946 impl ::std::convert::From<i32> for DWRITE_FONT_STRETCH {
from(value: i32) -> Self947     fn from(value: i32) -> Self {
948         Self(value)
949     }
950 }
951 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_STRETCH {
952     type Abi = Self;
953     type DefaultType = Self;
954 }
955 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
956 #[repr(transparent)]
957 pub struct DWRITE_FONT_STYLE(pub i32);
958 pub const DWRITE_FONT_STYLE_NORMAL: DWRITE_FONT_STYLE = DWRITE_FONT_STYLE(0i32);
959 pub const DWRITE_FONT_STYLE_OBLIQUE: DWRITE_FONT_STYLE = DWRITE_FONT_STYLE(1i32);
960 pub const DWRITE_FONT_STYLE_ITALIC: DWRITE_FONT_STYLE = DWRITE_FONT_STYLE(2i32);
961 impl ::std::convert::From<i32> for DWRITE_FONT_STYLE {
from(value: i32) -> Self962     fn from(value: i32) -> Self {
963         Self(value)
964     }
965 }
966 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_STYLE {
967     type Abi = Self;
968     type DefaultType = Self;
969 }
970 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
971 #[repr(transparent)]
972 pub struct DWRITE_FONT_WEIGHT(pub i32);
973 pub const DWRITE_FONT_WEIGHT_THIN: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(100i32);
974 pub const DWRITE_FONT_WEIGHT_EXTRA_LIGHT: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(200i32);
975 pub const DWRITE_FONT_WEIGHT_ULTRA_LIGHT: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(200i32);
976 pub const DWRITE_FONT_WEIGHT_LIGHT: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(300i32);
977 pub const DWRITE_FONT_WEIGHT_SEMI_LIGHT: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(350i32);
978 pub const DWRITE_FONT_WEIGHT_NORMAL: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(400i32);
979 pub const DWRITE_FONT_WEIGHT_REGULAR: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(400i32);
980 pub const DWRITE_FONT_WEIGHT_MEDIUM: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(500i32);
981 pub const DWRITE_FONT_WEIGHT_DEMI_BOLD: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(600i32);
982 pub const DWRITE_FONT_WEIGHT_SEMI_BOLD: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(600i32);
983 pub const DWRITE_FONT_WEIGHT_BOLD: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(700i32);
984 pub const DWRITE_FONT_WEIGHT_EXTRA_BOLD: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(800i32);
985 pub const DWRITE_FONT_WEIGHT_ULTRA_BOLD: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(800i32);
986 pub const DWRITE_FONT_WEIGHT_BLACK: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(900i32);
987 pub const DWRITE_FONT_WEIGHT_HEAVY: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(900i32);
988 pub const DWRITE_FONT_WEIGHT_EXTRA_BLACK: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(950i32);
989 pub const DWRITE_FONT_WEIGHT_ULTRA_BLACK: DWRITE_FONT_WEIGHT = DWRITE_FONT_WEIGHT(950i32);
990 impl ::std::convert::From<i32> for DWRITE_FONT_WEIGHT {
from(value: i32) -> Self991     fn from(value: i32) -> Self {
992         Self(value)
993     }
994 }
995 unsafe impl ::windows::runtime::Abi for DWRITE_FONT_WEIGHT {
996     type Abi = Self;
997     type DefaultType = Self;
998 }
999 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1000 #[repr(C)]
1001 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1002 pub struct DWRITE_GLYPH_IMAGE_DATA {
1003     pub imageData: *mut ::std::ffi::c_void,
1004     pub imageDataSize: u32,
1005     pub uniqueDataId: u32,
1006     pub pixelsPerEm: u32,
1007     pub pixelSize: super::Direct2D::D2D_SIZE_U,
1008     pub horizontalLeftOrigin: super::super::Foundation::POINT,
1009     pub horizontalRightOrigin: super::super::Foundation::POINT,
1010     pub verticalTopOrigin: super::super::Foundation::POINT,
1011     pub verticalBottomOrigin: super::super::Foundation::POINT,
1012 }
1013 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1014 impl DWRITE_GLYPH_IMAGE_DATA {}
1015 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1016 impl ::std::default::Default for DWRITE_GLYPH_IMAGE_DATA {
default() -> Self1017     fn default() -> Self {
1018         unsafe { ::std::mem::zeroed() }
1019     }
1020 }
1021 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1022 impl ::std::fmt::Debug for DWRITE_GLYPH_IMAGE_DATA {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1023     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1024         fmt.debug_struct("DWRITE_GLYPH_IMAGE_DATA")
1025             .field("imageData", &self.imageData)
1026             .field("imageDataSize", &self.imageDataSize)
1027             .field("uniqueDataId", &self.uniqueDataId)
1028             .field("pixelsPerEm", &self.pixelsPerEm)
1029             .field("pixelSize", &self.pixelSize)
1030             .field("horizontalLeftOrigin", &self.horizontalLeftOrigin)
1031             .field("horizontalRightOrigin", &self.horizontalRightOrigin)
1032             .field("verticalTopOrigin", &self.verticalTopOrigin)
1033             .field("verticalBottomOrigin", &self.verticalBottomOrigin)
1034             .finish()
1035     }
1036 }
1037 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1038 impl ::std::cmp::PartialEq for DWRITE_GLYPH_IMAGE_DATA {
eq(&self, other: &Self) -> bool1039     fn eq(&self, other: &Self) -> bool {
1040         self.imageData == other.imageData && self.imageDataSize == other.imageDataSize && self.uniqueDataId == other.uniqueDataId && self.pixelsPerEm == other.pixelsPerEm && self.pixelSize == other.pixelSize && self.horizontalLeftOrigin == other.horizontalLeftOrigin && self.horizontalRightOrigin == other.horizontalRightOrigin && self.verticalTopOrigin == other.verticalTopOrigin && self.verticalBottomOrigin == other.verticalBottomOrigin
1041     }
1042 }
1043 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1044 impl ::std::cmp::Eq for DWRITE_GLYPH_IMAGE_DATA {}
1045 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
1046 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_IMAGE_DATA {
1047     type Abi = Self;
1048     type DefaultType = Self;
1049 }
1050 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1051 #[repr(transparent)]
1052 pub struct DWRITE_GLYPH_IMAGE_FORMATS(pub u32);
1053 pub const DWRITE_GLYPH_IMAGE_FORMATS_NONE: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(0u32);
1054 pub const DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(1u32);
1055 pub const DWRITE_GLYPH_IMAGE_FORMATS_CFF: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(2u32);
1056 pub const DWRITE_GLYPH_IMAGE_FORMATS_COLR: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(4u32);
1057 pub const DWRITE_GLYPH_IMAGE_FORMATS_SVG: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(8u32);
1058 pub const DWRITE_GLYPH_IMAGE_FORMATS_PNG: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(16u32);
1059 pub const DWRITE_GLYPH_IMAGE_FORMATS_JPEG: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(32u32);
1060 pub const DWRITE_GLYPH_IMAGE_FORMATS_TIFF: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(64u32);
1061 pub const DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8: DWRITE_GLYPH_IMAGE_FORMATS = DWRITE_GLYPH_IMAGE_FORMATS(128u32);
1062 impl ::std::convert::From<u32> for DWRITE_GLYPH_IMAGE_FORMATS {
from(value: u32) -> Self1063     fn from(value: u32) -> Self {
1064         Self(value)
1065     }
1066 }
1067 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_IMAGE_FORMATS {
1068     type Abi = Self;
1069     type DefaultType = Self;
1070 }
1071 impl ::std::ops::BitOr for DWRITE_GLYPH_IMAGE_FORMATS {
1072     type Output = Self;
bitor(self, rhs: Self) -> Self1073     fn bitor(self, rhs: Self) -> Self {
1074         Self(self.0 | rhs.0)
1075     }
1076 }
1077 impl ::std::ops::BitAnd for DWRITE_GLYPH_IMAGE_FORMATS {
1078     type Output = Self;
bitand(self, rhs: Self) -> Self1079     fn bitand(self, rhs: Self) -> Self {
1080         Self(self.0 & rhs.0)
1081     }
1082 }
1083 impl ::std::ops::BitOrAssign for DWRITE_GLYPH_IMAGE_FORMATS {
bitor_assign(&mut self, rhs: Self)1084     fn bitor_assign(&mut self, rhs: Self) {
1085         self.0.bitor_assign(rhs.0)
1086     }
1087 }
1088 impl ::std::ops::BitAndAssign for DWRITE_GLYPH_IMAGE_FORMATS {
bitand_assign(&mut self, rhs: Self)1089     fn bitand_assign(&mut self, rhs: Self) {
1090         self.0.bitand_assign(rhs.0)
1091     }
1092 }
1093 impl ::std::ops::Not for DWRITE_GLYPH_IMAGE_FORMATS {
1094     type Output = Self;
not(self) -> Self1095     fn not(self) -> Self {
1096         Self(self.0.not())
1097     }
1098 }
1099 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1100 #[repr(C)]
1101 pub struct DWRITE_GLYPH_METRICS {
1102     pub leftSideBearing: i32,
1103     pub advanceWidth: u32,
1104     pub rightSideBearing: i32,
1105     pub topSideBearing: i32,
1106     pub advanceHeight: u32,
1107     pub bottomSideBearing: i32,
1108     pub verticalOriginY: i32,
1109 }
1110 impl DWRITE_GLYPH_METRICS {}
1111 impl ::std::default::Default for DWRITE_GLYPH_METRICS {
default() -> Self1112     fn default() -> Self {
1113         unsafe { ::std::mem::zeroed() }
1114     }
1115 }
1116 impl ::std::fmt::Debug for DWRITE_GLYPH_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1117     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1118         fmt.debug_struct("DWRITE_GLYPH_METRICS")
1119             .field("leftSideBearing", &self.leftSideBearing)
1120             .field("advanceWidth", &self.advanceWidth)
1121             .field("rightSideBearing", &self.rightSideBearing)
1122             .field("topSideBearing", &self.topSideBearing)
1123             .field("advanceHeight", &self.advanceHeight)
1124             .field("bottomSideBearing", &self.bottomSideBearing)
1125             .field("verticalOriginY", &self.verticalOriginY)
1126             .finish()
1127     }
1128 }
1129 impl ::std::cmp::PartialEq for DWRITE_GLYPH_METRICS {
eq(&self, other: &Self) -> bool1130     fn eq(&self, other: &Self) -> bool {
1131         self.leftSideBearing == other.leftSideBearing && self.advanceWidth == other.advanceWidth && self.rightSideBearing == other.rightSideBearing && self.topSideBearing == other.topSideBearing && self.advanceHeight == other.advanceHeight && self.bottomSideBearing == other.bottomSideBearing && self.verticalOriginY == other.verticalOriginY
1132     }
1133 }
1134 impl ::std::cmp::Eq for DWRITE_GLYPH_METRICS {}
1135 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_METRICS {
1136     type Abi = Self;
1137     type DefaultType = Self;
1138 }
1139 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1140 #[repr(C)]
1141 pub struct DWRITE_GLYPH_OFFSET {
1142     pub advanceOffset: f32,
1143     pub ascenderOffset: f32,
1144 }
1145 impl DWRITE_GLYPH_OFFSET {}
1146 impl ::std::default::Default for DWRITE_GLYPH_OFFSET {
default() -> Self1147     fn default() -> Self {
1148         unsafe { ::std::mem::zeroed() }
1149     }
1150 }
1151 impl ::std::fmt::Debug for DWRITE_GLYPH_OFFSET {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1152     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1153         fmt.debug_struct("DWRITE_GLYPH_OFFSET").field("advanceOffset", &self.advanceOffset).field("ascenderOffset", &self.ascenderOffset).finish()
1154     }
1155 }
1156 impl ::std::cmp::PartialEq for DWRITE_GLYPH_OFFSET {
eq(&self, other: &Self) -> bool1157     fn eq(&self, other: &Self) -> bool {
1158         self.advanceOffset == other.advanceOffset && self.ascenderOffset == other.ascenderOffset
1159     }
1160 }
1161 impl ::std::cmp::Eq for DWRITE_GLYPH_OFFSET {}
1162 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_OFFSET {
1163     type Abi = Self;
1164     type DefaultType = Self;
1165 }
1166 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1167 #[repr(transparent)]
1168 pub struct DWRITE_GLYPH_ORIENTATION_ANGLE(pub i32);
1169 pub const DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES: DWRITE_GLYPH_ORIENTATION_ANGLE = DWRITE_GLYPH_ORIENTATION_ANGLE(0i32);
1170 pub const DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES: DWRITE_GLYPH_ORIENTATION_ANGLE = DWRITE_GLYPH_ORIENTATION_ANGLE(1i32);
1171 pub const DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES: DWRITE_GLYPH_ORIENTATION_ANGLE = DWRITE_GLYPH_ORIENTATION_ANGLE(2i32);
1172 pub const DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES: DWRITE_GLYPH_ORIENTATION_ANGLE = DWRITE_GLYPH_ORIENTATION_ANGLE(3i32);
1173 impl ::std::convert::From<i32> for DWRITE_GLYPH_ORIENTATION_ANGLE {
from(value: i32) -> Self1174     fn from(value: i32) -> Self {
1175         Self(value)
1176     }
1177 }
1178 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_ORIENTATION_ANGLE {
1179     type Abi = Self;
1180     type DefaultType = Self;
1181 }
1182 #[derive(:: std :: clone :: Clone)]
1183 #[repr(C)]
1184 #[cfg(feature = "Win32_Foundation")]
1185 pub struct DWRITE_GLYPH_RUN {
1186     pub fontFace: ::std::option::Option<IDWriteFontFace>,
1187     pub fontEmSize: f32,
1188     pub glyphCount: u32,
1189     pub glyphIndices: *mut u16,
1190     pub glyphAdvances: *mut f32,
1191     pub glyphOffsets: *mut DWRITE_GLYPH_OFFSET,
1192     pub isSideways: super::super::Foundation::BOOL,
1193     pub bidiLevel: u32,
1194 }
1195 #[cfg(feature = "Win32_Foundation")]
1196 impl DWRITE_GLYPH_RUN {}
1197 #[cfg(feature = "Win32_Foundation")]
1198 impl ::std::default::Default for DWRITE_GLYPH_RUN {
default() -> Self1199     fn default() -> Self {
1200         unsafe { ::std::mem::zeroed() }
1201     }
1202 }
1203 #[cfg(feature = "Win32_Foundation")]
1204 impl ::std::fmt::Debug for DWRITE_GLYPH_RUN {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1205     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1206         fmt.debug_struct("DWRITE_GLYPH_RUN")
1207             .field("fontFace", &self.fontFace)
1208             .field("fontEmSize", &self.fontEmSize)
1209             .field("glyphCount", &self.glyphCount)
1210             .field("glyphIndices", &self.glyphIndices)
1211             .field("glyphAdvances", &self.glyphAdvances)
1212             .field("glyphOffsets", &self.glyphOffsets)
1213             .field("isSideways", &self.isSideways)
1214             .field("bidiLevel", &self.bidiLevel)
1215             .finish()
1216     }
1217 }
1218 #[cfg(feature = "Win32_Foundation")]
1219 impl ::std::cmp::PartialEq for DWRITE_GLYPH_RUN {
eq(&self, other: &Self) -> bool1220     fn eq(&self, other: &Self) -> bool {
1221         self.fontFace == other.fontFace && self.fontEmSize == other.fontEmSize && self.glyphCount == other.glyphCount && self.glyphIndices == other.glyphIndices && self.glyphAdvances == other.glyphAdvances && self.glyphOffsets == other.glyphOffsets && self.isSideways == other.isSideways && self.bidiLevel == other.bidiLevel
1222     }
1223 }
1224 #[cfg(feature = "Win32_Foundation")]
1225 impl ::std::cmp::Eq for DWRITE_GLYPH_RUN {}
1226 #[cfg(feature = "Win32_Foundation")]
1227 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_RUN {
1228     type Abi = ::std::mem::ManuallyDrop<Self>;
1229     type DefaultType = Self;
1230 }
1231 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1232 #[repr(C)]
1233 #[cfg(feature = "Win32_Foundation")]
1234 pub struct DWRITE_GLYPH_RUN_DESCRIPTION {
1235     pub localeName: super::super::Foundation::PWSTR,
1236     pub string: super::super::Foundation::PWSTR,
1237     pub stringLength: u32,
1238     pub clusterMap: *mut u16,
1239     pub textPosition: u32,
1240 }
1241 #[cfg(feature = "Win32_Foundation")]
1242 impl DWRITE_GLYPH_RUN_DESCRIPTION {}
1243 #[cfg(feature = "Win32_Foundation")]
1244 impl ::std::default::Default for DWRITE_GLYPH_RUN_DESCRIPTION {
default() -> Self1245     fn default() -> Self {
1246         unsafe { ::std::mem::zeroed() }
1247     }
1248 }
1249 #[cfg(feature = "Win32_Foundation")]
1250 impl ::std::fmt::Debug for DWRITE_GLYPH_RUN_DESCRIPTION {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1251     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1252         fmt.debug_struct("DWRITE_GLYPH_RUN_DESCRIPTION").field("localeName", &self.localeName).field("string", &self.string).field("stringLength", &self.stringLength).field("clusterMap", &self.clusterMap).field("textPosition", &self.textPosition).finish()
1253     }
1254 }
1255 #[cfg(feature = "Win32_Foundation")]
1256 impl ::std::cmp::PartialEq for DWRITE_GLYPH_RUN_DESCRIPTION {
eq(&self, other: &Self) -> bool1257     fn eq(&self, other: &Self) -> bool {
1258         self.localeName == other.localeName && self.string == other.string && self.stringLength == other.stringLength && self.clusterMap == other.clusterMap && self.textPosition == other.textPosition
1259     }
1260 }
1261 #[cfg(feature = "Win32_Foundation")]
1262 impl ::std::cmp::Eq for DWRITE_GLYPH_RUN_DESCRIPTION {}
1263 #[cfg(feature = "Win32_Foundation")]
1264 unsafe impl ::windows::runtime::Abi for DWRITE_GLYPH_RUN_DESCRIPTION {
1265     type Abi = Self;
1266     type DefaultType = Self;
1267 }
1268 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1269 #[repr(transparent)]
1270 pub struct DWRITE_GRID_FIT_MODE(pub i32);
1271 pub const DWRITE_GRID_FIT_MODE_DEFAULT: DWRITE_GRID_FIT_MODE = DWRITE_GRID_FIT_MODE(0i32);
1272 pub const DWRITE_GRID_FIT_MODE_DISABLED: DWRITE_GRID_FIT_MODE = DWRITE_GRID_FIT_MODE(1i32);
1273 pub const DWRITE_GRID_FIT_MODE_ENABLED: DWRITE_GRID_FIT_MODE = DWRITE_GRID_FIT_MODE(2i32);
1274 impl ::std::convert::From<i32> for DWRITE_GRID_FIT_MODE {
from(value: i32) -> Self1275     fn from(value: i32) -> Self {
1276         Self(value)
1277     }
1278 }
1279 unsafe impl ::windows::runtime::Abi for DWRITE_GRID_FIT_MODE {
1280     type Abi = Self;
1281     type DefaultType = Self;
1282 }
1283 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1284 #[repr(C)]
1285 #[cfg(feature = "Win32_Foundation")]
1286 pub struct DWRITE_HIT_TEST_METRICS {
1287     pub textPosition: u32,
1288     pub length: u32,
1289     pub left: f32,
1290     pub top: f32,
1291     pub width: f32,
1292     pub height: f32,
1293     pub bidiLevel: u32,
1294     pub isText: super::super::Foundation::BOOL,
1295     pub isTrimmed: super::super::Foundation::BOOL,
1296 }
1297 #[cfg(feature = "Win32_Foundation")]
1298 impl DWRITE_HIT_TEST_METRICS {}
1299 #[cfg(feature = "Win32_Foundation")]
1300 impl ::std::default::Default for DWRITE_HIT_TEST_METRICS {
default() -> Self1301     fn default() -> Self {
1302         unsafe { ::std::mem::zeroed() }
1303     }
1304 }
1305 #[cfg(feature = "Win32_Foundation")]
1306 impl ::std::fmt::Debug for DWRITE_HIT_TEST_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1307     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1308         fmt.debug_struct("DWRITE_HIT_TEST_METRICS")
1309             .field("textPosition", &self.textPosition)
1310             .field("length", &self.length)
1311             .field("left", &self.left)
1312             .field("top", &self.top)
1313             .field("width", &self.width)
1314             .field("height", &self.height)
1315             .field("bidiLevel", &self.bidiLevel)
1316             .field("isText", &self.isText)
1317             .field("isTrimmed", &self.isTrimmed)
1318             .finish()
1319     }
1320 }
1321 #[cfg(feature = "Win32_Foundation")]
1322 impl ::std::cmp::PartialEq for DWRITE_HIT_TEST_METRICS {
eq(&self, other: &Self) -> bool1323     fn eq(&self, other: &Self) -> bool {
1324         self.textPosition == other.textPosition && self.length == other.length && self.left == other.left && self.top == other.top && self.width == other.width && self.height == other.height && self.bidiLevel == other.bidiLevel && self.isText == other.isText && self.isTrimmed == other.isTrimmed
1325     }
1326 }
1327 #[cfg(feature = "Win32_Foundation")]
1328 impl ::std::cmp::Eq for DWRITE_HIT_TEST_METRICS {}
1329 #[cfg(feature = "Win32_Foundation")]
1330 unsafe impl ::windows::runtime::Abi for DWRITE_HIT_TEST_METRICS {
1331     type Abi = Self;
1332     type DefaultType = Self;
1333 }
1334 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1335 #[repr(transparent)]
1336 pub struct DWRITE_INFORMATIONAL_STRING_ID(pub i32);
1337 pub const DWRITE_INFORMATIONAL_STRING_NONE: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(0i32);
1338 pub const DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(1i32);
1339 pub const DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(2i32);
1340 pub const DWRITE_INFORMATIONAL_STRING_TRADEMARK: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(3i32);
1341 pub const DWRITE_INFORMATIONAL_STRING_MANUFACTURER: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(4i32);
1342 pub const DWRITE_INFORMATIONAL_STRING_DESIGNER: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(5i32);
1343 pub const DWRITE_INFORMATIONAL_STRING_DESIGNER_URL: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(6i32);
1344 pub const DWRITE_INFORMATIONAL_STRING_DESCRIPTION: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(7i32);
1345 pub const DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(8i32);
1346 pub const DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(9i32);
1347 pub const DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(10i32);
1348 pub const DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(11i32);
1349 pub const DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(12i32);
1350 pub const DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(13i32);
1351 pub const DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(14i32);
1352 pub const DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(15i32);
1353 pub const DWRITE_INFORMATIONAL_STRING_FULL_NAME: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(16i32);
1354 pub const DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(17i32);
1355 pub const DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(18i32);
1356 pub const DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(19i32);
1357 pub const DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(20i32);
1358 pub const DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(21i32);
1359 pub const DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(13i32);
1360 pub const DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(14i32);
1361 pub const DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME: DWRITE_INFORMATIONAL_STRING_ID = DWRITE_INFORMATIONAL_STRING_ID(19i32);
1362 impl ::std::convert::From<i32> for DWRITE_INFORMATIONAL_STRING_ID {
from(value: i32) -> Self1363     fn from(value: i32) -> Self {
1364         Self(value)
1365     }
1366 }
1367 unsafe impl ::windows::runtime::Abi for DWRITE_INFORMATIONAL_STRING_ID {
1368     type Abi = Self;
1369     type DefaultType = Self;
1370 }
1371 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1372 #[repr(C)]
1373 #[cfg(feature = "Win32_Foundation")]
1374 pub struct DWRITE_INLINE_OBJECT_METRICS {
1375     pub width: f32,
1376     pub height: f32,
1377     pub baseline: f32,
1378     pub supportsSideways: super::super::Foundation::BOOL,
1379 }
1380 #[cfg(feature = "Win32_Foundation")]
1381 impl DWRITE_INLINE_OBJECT_METRICS {}
1382 #[cfg(feature = "Win32_Foundation")]
1383 impl ::std::default::Default for DWRITE_INLINE_OBJECT_METRICS {
default() -> Self1384     fn default() -> Self {
1385         unsafe { ::std::mem::zeroed() }
1386     }
1387 }
1388 #[cfg(feature = "Win32_Foundation")]
1389 impl ::std::fmt::Debug for DWRITE_INLINE_OBJECT_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1390     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1391         fmt.debug_struct("DWRITE_INLINE_OBJECT_METRICS").field("width", &self.width).field("height", &self.height).field("baseline", &self.baseline).field("supportsSideways", &self.supportsSideways).finish()
1392     }
1393 }
1394 #[cfg(feature = "Win32_Foundation")]
1395 impl ::std::cmp::PartialEq for DWRITE_INLINE_OBJECT_METRICS {
eq(&self, other: &Self) -> bool1396     fn eq(&self, other: &Self) -> bool {
1397         self.width == other.width && self.height == other.height && self.baseline == other.baseline && self.supportsSideways == other.supportsSideways
1398     }
1399 }
1400 #[cfg(feature = "Win32_Foundation")]
1401 impl ::std::cmp::Eq for DWRITE_INLINE_OBJECT_METRICS {}
1402 #[cfg(feature = "Win32_Foundation")]
1403 unsafe impl ::windows::runtime::Abi for DWRITE_INLINE_OBJECT_METRICS {
1404     type Abi = Self;
1405     type DefaultType = Self;
1406 }
1407 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1408 #[repr(C)]
1409 pub struct DWRITE_JUSTIFICATION_OPPORTUNITY {
1410     pub expansionMinimum: f32,
1411     pub expansionMaximum: f32,
1412     pub compressionMaximum: f32,
1413     pub _bitfield: u32,
1414 }
1415 impl DWRITE_JUSTIFICATION_OPPORTUNITY {}
1416 impl ::std::default::Default for DWRITE_JUSTIFICATION_OPPORTUNITY {
default() -> Self1417     fn default() -> Self {
1418         unsafe { ::std::mem::zeroed() }
1419     }
1420 }
1421 impl ::std::fmt::Debug for DWRITE_JUSTIFICATION_OPPORTUNITY {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1422     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1423         fmt.debug_struct("DWRITE_JUSTIFICATION_OPPORTUNITY").field("expansionMinimum", &self.expansionMinimum).field("expansionMaximum", &self.expansionMaximum).field("compressionMaximum", &self.compressionMaximum).field("_bitfield", &self._bitfield).finish()
1424     }
1425 }
1426 impl ::std::cmp::PartialEq for DWRITE_JUSTIFICATION_OPPORTUNITY {
eq(&self, other: &Self) -> bool1427     fn eq(&self, other: &Self) -> bool {
1428         self.expansionMinimum == other.expansionMinimum && self.expansionMaximum == other.expansionMaximum && self.compressionMaximum == other.compressionMaximum && self._bitfield == other._bitfield
1429     }
1430 }
1431 impl ::std::cmp::Eq for DWRITE_JUSTIFICATION_OPPORTUNITY {}
1432 unsafe impl ::windows::runtime::Abi for DWRITE_JUSTIFICATION_OPPORTUNITY {
1433     type Abi = Self;
1434     type DefaultType = Self;
1435 }
1436 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1437 #[repr(C)]
1438 pub struct DWRITE_LINE_BREAKPOINT {
1439     pub _bitfield: u8,
1440 }
1441 impl DWRITE_LINE_BREAKPOINT {}
1442 impl ::std::default::Default for DWRITE_LINE_BREAKPOINT {
default() -> Self1443     fn default() -> Self {
1444         unsafe { ::std::mem::zeroed() }
1445     }
1446 }
1447 impl ::std::fmt::Debug for DWRITE_LINE_BREAKPOINT {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1448     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1449         fmt.debug_struct("DWRITE_LINE_BREAKPOINT").field("_bitfield", &self._bitfield).finish()
1450     }
1451 }
1452 impl ::std::cmp::PartialEq for DWRITE_LINE_BREAKPOINT {
eq(&self, other: &Self) -> bool1453     fn eq(&self, other: &Self) -> bool {
1454         self._bitfield == other._bitfield
1455     }
1456 }
1457 impl ::std::cmp::Eq for DWRITE_LINE_BREAKPOINT {}
1458 unsafe impl ::windows::runtime::Abi for DWRITE_LINE_BREAKPOINT {
1459     type Abi = Self;
1460     type DefaultType = Self;
1461 }
1462 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1463 #[repr(C)]
1464 #[cfg(feature = "Win32_Foundation")]
1465 pub struct DWRITE_LINE_METRICS {
1466     pub length: u32,
1467     pub trailingWhitespaceLength: u32,
1468     pub newlineLength: u32,
1469     pub height: f32,
1470     pub baseline: f32,
1471     pub isTrimmed: super::super::Foundation::BOOL,
1472 }
1473 #[cfg(feature = "Win32_Foundation")]
1474 impl DWRITE_LINE_METRICS {}
1475 #[cfg(feature = "Win32_Foundation")]
1476 impl ::std::default::Default for DWRITE_LINE_METRICS {
default() -> Self1477     fn default() -> Self {
1478         unsafe { ::std::mem::zeroed() }
1479     }
1480 }
1481 #[cfg(feature = "Win32_Foundation")]
1482 impl ::std::fmt::Debug for DWRITE_LINE_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1483     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1484         fmt.debug_struct("DWRITE_LINE_METRICS").field("length", &self.length).field("trailingWhitespaceLength", &self.trailingWhitespaceLength).field("newlineLength", &self.newlineLength).field("height", &self.height).field("baseline", &self.baseline).field("isTrimmed", &self.isTrimmed).finish()
1485     }
1486 }
1487 #[cfg(feature = "Win32_Foundation")]
1488 impl ::std::cmp::PartialEq for DWRITE_LINE_METRICS {
eq(&self, other: &Self) -> bool1489     fn eq(&self, other: &Self) -> bool {
1490         self.length == other.length && self.trailingWhitespaceLength == other.trailingWhitespaceLength && self.newlineLength == other.newlineLength && self.height == other.height && self.baseline == other.baseline && self.isTrimmed == other.isTrimmed
1491     }
1492 }
1493 #[cfg(feature = "Win32_Foundation")]
1494 impl ::std::cmp::Eq for DWRITE_LINE_METRICS {}
1495 #[cfg(feature = "Win32_Foundation")]
1496 unsafe impl ::windows::runtime::Abi for DWRITE_LINE_METRICS {
1497     type Abi = Self;
1498     type DefaultType = Self;
1499 }
1500 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1501 #[repr(C)]
1502 #[cfg(feature = "Win32_Foundation")]
1503 pub struct DWRITE_LINE_METRICS1 {
1504     pub Base: DWRITE_LINE_METRICS,
1505     pub leadingBefore: f32,
1506     pub leadingAfter: f32,
1507 }
1508 #[cfg(feature = "Win32_Foundation")]
1509 impl DWRITE_LINE_METRICS1 {}
1510 #[cfg(feature = "Win32_Foundation")]
1511 impl ::std::default::Default for DWRITE_LINE_METRICS1 {
default() -> Self1512     fn default() -> Self {
1513         unsafe { ::std::mem::zeroed() }
1514     }
1515 }
1516 #[cfg(feature = "Win32_Foundation")]
1517 impl ::std::fmt::Debug for DWRITE_LINE_METRICS1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1518     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1519         fmt.debug_struct("DWRITE_LINE_METRICS1").field("Base", &self.Base).field("leadingBefore", &self.leadingBefore).field("leadingAfter", &self.leadingAfter).finish()
1520     }
1521 }
1522 #[cfg(feature = "Win32_Foundation")]
1523 impl ::std::cmp::PartialEq for DWRITE_LINE_METRICS1 {
eq(&self, other: &Self) -> bool1524     fn eq(&self, other: &Self) -> bool {
1525         self.Base == other.Base && self.leadingBefore == other.leadingBefore && self.leadingAfter == other.leadingAfter
1526     }
1527 }
1528 #[cfg(feature = "Win32_Foundation")]
1529 impl ::std::cmp::Eq for DWRITE_LINE_METRICS1 {}
1530 #[cfg(feature = "Win32_Foundation")]
1531 unsafe impl ::windows::runtime::Abi for DWRITE_LINE_METRICS1 {
1532     type Abi = Self;
1533     type DefaultType = Self;
1534 }
1535 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1536 #[repr(C)]
1537 pub struct DWRITE_LINE_SPACING {
1538     pub method: DWRITE_LINE_SPACING_METHOD,
1539     pub height: f32,
1540     pub baseline: f32,
1541     pub leadingBefore: f32,
1542     pub fontLineGapUsage: DWRITE_FONT_LINE_GAP_USAGE,
1543 }
1544 impl DWRITE_LINE_SPACING {}
1545 impl ::std::default::Default for DWRITE_LINE_SPACING {
default() -> Self1546     fn default() -> Self {
1547         unsafe { ::std::mem::zeroed() }
1548     }
1549 }
1550 impl ::std::fmt::Debug for DWRITE_LINE_SPACING {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1551     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1552         fmt.debug_struct("DWRITE_LINE_SPACING").field("method", &self.method).field("height", &self.height).field("baseline", &self.baseline).field("leadingBefore", &self.leadingBefore).field("fontLineGapUsage", &self.fontLineGapUsage).finish()
1553     }
1554 }
1555 impl ::std::cmp::PartialEq for DWRITE_LINE_SPACING {
eq(&self, other: &Self) -> bool1556     fn eq(&self, other: &Self) -> bool {
1557         self.method == other.method && self.height == other.height && self.baseline == other.baseline && self.leadingBefore == other.leadingBefore && self.fontLineGapUsage == other.fontLineGapUsage
1558     }
1559 }
1560 impl ::std::cmp::Eq for DWRITE_LINE_SPACING {}
1561 unsafe impl ::windows::runtime::Abi for DWRITE_LINE_SPACING {
1562     type Abi = Self;
1563     type DefaultType = Self;
1564 }
1565 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1566 #[repr(transparent)]
1567 pub struct DWRITE_LINE_SPACING_METHOD(pub i32);
1568 pub const DWRITE_LINE_SPACING_METHOD_DEFAULT: DWRITE_LINE_SPACING_METHOD = DWRITE_LINE_SPACING_METHOD(0i32);
1569 pub const DWRITE_LINE_SPACING_METHOD_UNIFORM: DWRITE_LINE_SPACING_METHOD = DWRITE_LINE_SPACING_METHOD(1i32);
1570 pub const DWRITE_LINE_SPACING_METHOD_PROPORTIONAL: DWRITE_LINE_SPACING_METHOD = DWRITE_LINE_SPACING_METHOD(2i32);
1571 impl ::std::convert::From<i32> for DWRITE_LINE_SPACING_METHOD {
from(value: i32) -> Self1572     fn from(value: i32) -> Self {
1573         Self(value)
1574     }
1575 }
1576 unsafe impl ::windows::runtime::Abi for DWRITE_LINE_SPACING_METHOD {
1577     type Abi = Self;
1578     type DefaultType = Self;
1579 }
1580 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1581 #[repr(transparent)]
1582 pub struct DWRITE_LOCALITY(pub i32);
1583 pub const DWRITE_LOCALITY_REMOTE: DWRITE_LOCALITY = DWRITE_LOCALITY(0i32);
1584 pub const DWRITE_LOCALITY_PARTIAL: DWRITE_LOCALITY = DWRITE_LOCALITY(1i32);
1585 pub const DWRITE_LOCALITY_LOCAL: DWRITE_LOCALITY = DWRITE_LOCALITY(2i32);
1586 impl ::std::convert::From<i32> for DWRITE_LOCALITY {
from(value: i32) -> Self1587     fn from(value: i32) -> Self {
1588         Self(value)
1589     }
1590 }
1591 unsafe impl ::windows::runtime::Abi for DWRITE_LOCALITY {
1592     type Abi = Self;
1593     type DefaultType = Self;
1594 }
1595 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1596 #[repr(C)]
1597 pub struct DWRITE_MATRIX {
1598     pub m11: f32,
1599     pub m12: f32,
1600     pub m21: f32,
1601     pub m22: f32,
1602     pub dx: f32,
1603     pub dy: f32,
1604 }
1605 impl DWRITE_MATRIX {}
1606 impl ::std::default::Default for DWRITE_MATRIX {
default() -> Self1607     fn default() -> Self {
1608         unsafe { ::std::mem::zeroed() }
1609     }
1610 }
1611 impl ::std::fmt::Debug for DWRITE_MATRIX {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1612     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1613         fmt.debug_struct("DWRITE_MATRIX").field("m11", &self.m11).field("m12", &self.m12).field("m21", &self.m21).field("m22", &self.m22).field("dx", &self.dx).field("dy", &self.dy).finish()
1614     }
1615 }
1616 impl ::std::cmp::PartialEq for DWRITE_MATRIX {
eq(&self, other: &Self) -> bool1617     fn eq(&self, other: &Self) -> bool {
1618         self.m11 == other.m11 && self.m12 == other.m12 && self.m21 == other.m21 && self.m22 == other.m22 && self.dx == other.dx && self.dy == other.dy
1619     }
1620 }
1621 impl ::std::cmp::Eq for DWRITE_MATRIX {}
1622 unsafe impl ::windows::runtime::Abi for DWRITE_MATRIX {
1623     type Abi = Self;
1624     type DefaultType = Self;
1625 }
1626 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1627 #[repr(transparent)]
1628 pub struct DWRITE_MEASURING_MODE(pub i32);
1629 pub const DWRITE_MEASURING_MODE_NATURAL: DWRITE_MEASURING_MODE = DWRITE_MEASURING_MODE(0i32);
1630 pub const DWRITE_MEASURING_MODE_GDI_CLASSIC: DWRITE_MEASURING_MODE = DWRITE_MEASURING_MODE(1i32);
1631 pub const DWRITE_MEASURING_MODE_GDI_NATURAL: DWRITE_MEASURING_MODE = DWRITE_MEASURING_MODE(2i32);
1632 impl ::std::convert::From<i32> for DWRITE_MEASURING_MODE {
from(value: i32) -> Self1633     fn from(value: i32) -> Self {
1634         Self(value)
1635     }
1636 }
1637 unsafe impl ::windows::runtime::Abi for DWRITE_MEASURING_MODE {
1638     type Abi = Self;
1639     type DefaultType = Self;
1640 }
1641 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1642 #[repr(transparent)]
1643 pub struct DWRITE_NUMBER_SUBSTITUTION_METHOD(pub i32);
1644 pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE: DWRITE_NUMBER_SUBSTITUTION_METHOD = DWRITE_NUMBER_SUBSTITUTION_METHOD(0i32);
1645 pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL: DWRITE_NUMBER_SUBSTITUTION_METHOD = DWRITE_NUMBER_SUBSTITUTION_METHOD(1i32);
1646 pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE: DWRITE_NUMBER_SUBSTITUTION_METHOD = DWRITE_NUMBER_SUBSTITUTION_METHOD(2i32);
1647 pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL: DWRITE_NUMBER_SUBSTITUTION_METHOD = DWRITE_NUMBER_SUBSTITUTION_METHOD(3i32);
1648 pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL: DWRITE_NUMBER_SUBSTITUTION_METHOD = DWRITE_NUMBER_SUBSTITUTION_METHOD(4i32);
1649 impl ::std::convert::From<i32> for DWRITE_NUMBER_SUBSTITUTION_METHOD {
from(value: i32) -> Self1650     fn from(value: i32) -> Self {
1651         Self(value)
1652     }
1653 }
1654 unsafe impl ::windows::runtime::Abi for DWRITE_NUMBER_SUBSTITUTION_METHOD {
1655     type Abi = Self;
1656     type DefaultType = Self;
1657 }
1658 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1659 #[repr(transparent)]
1660 pub struct DWRITE_OPTICAL_ALIGNMENT(pub i32);
1661 pub const DWRITE_OPTICAL_ALIGNMENT_NONE: DWRITE_OPTICAL_ALIGNMENT = DWRITE_OPTICAL_ALIGNMENT(0i32);
1662 pub const DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS: DWRITE_OPTICAL_ALIGNMENT = DWRITE_OPTICAL_ALIGNMENT(1i32);
1663 impl ::std::convert::From<i32> for DWRITE_OPTICAL_ALIGNMENT {
from(value: i32) -> Self1664     fn from(value: i32) -> Self {
1665         Self(value)
1666     }
1667 }
1668 unsafe impl ::windows::runtime::Abi for DWRITE_OPTICAL_ALIGNMENT {
1669     type Abi = Self;
1670     type DefaultType = Self;
1671 }
1672 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1673 #[repr(transparent)]
1674 pub struct DWRITE_OUTLINE_THRESHOLD(pub i32);
1675 pub const DWRITE_OUTLINE_THRESHOLD_ANTIALIASED: DWRITE_OUTLINE_THRESHOLD = DWRITE_OUTLINE_THRESHOLD(0i32);
1676 pub const DWRITE_OUTLINE_THRESHOLD_ALIASED: DWRITE_OUTLINE_THRESHOLD = DWRITE_OUTLINE_THRESHOLD(1i32);
1677 impl ::std::convert::From<i32> for DWRITE_OUTLINE_THRESHOLD {
from(value: i32) -> Self1678     fn from(value: i32) -> Self {
1679         Self(value)
1680     }
1681 }
1682 unsafe impl ::windows::runtime::Abi for DWRITE_OUTLINE_THRESHOLD {
1683     type Abi = Self;
1684     type DefaultType = Self;
1685 }
1686 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1687 #[repr(C)]
1688 pub struct DWRITE_OVERHANG_METRICS {
1689     pub left: f32,
1690     pub top: f32,
1691     pub right: f32,
1692     pub bottom: f32,
1693 }
1694 impl DWRITE_OVERHANG_METRICS {}
1695 impl ::std::default::Default for DWRITE_OVERHANG_METRICS {
default() -> Self1696     fn default() -> Self {
1697         unsafe { ::std::mem::zeroed() }
1698     }
1699 }
1700 impl ::std::fmt::Debug for DWRITE_OVERHANG_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1701     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1702         fmt.debug_struct("DWRITE_OVERHANG_METRICS").field("left", &self.left).field("top", &self.top).field("right", &self.right).field("bottom", &self.bottom).finish()
1703     }
1704 }
1705 impl ::std::cmp::PartialEq for DWRITE_OVERHANG_METRICS {
eq(&self, other: &Self) -> bool1706     fn eq(&self, other: &Self) -> bool {
1707         self.left == other.left && self.top == other.top && self.right == other.right && self.bottom == other.bottom
1708     }
1709 }
1710 impl ::std::cmp::Eq for DWRITE_OVERHANG_METRICS {}
1711 unsafe impl ::windows::runtime::Abi for DWRITE_OVERHANG_METRICS {
1712     type Abi = Self;
1713     type DefaultType = Self;
1714 }
1715 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1716 #[repr(C)]
1717 pub union DWRITE_PANOSE {
1718     pub values: [u8; 10],
1719     pub familyKind: u8,
1720     pub text: DWRITE_PANOSE_3,
1721     pub script: DWRITE_PANOSE_1,
1722     pub decorative: DWRITE_PANOSE_0,
1723     pub symbol: DWRITE_PANOSE_2,
1724 }
1725 impl DWRITE_PANOSE {}
1726 impl ::std::default::Default for DWRITE_PANOSE {
default() -> Self1727     fn default() -> Self {
1728         unsafe { ::std::mem::zeroed() }
1729     }
1730 }
1731 impl ::std::cmp::PartialEq for DWRITE_PANOSE {
eq(&self, _other: &Self) -> bool1732     fn eq(&self, _other: &Self) -> bool {
1733         unimplemented!()
1734     }
1735 }
1736 impl ::std::cmp::Eq for DWRITE_PANOSE {}
1737 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE {
1738     type Abi = Self;
1739     type DefaultType = Self;
1740 }
1741 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1742 #[repr(C)]
1743 pub struct DWRITE_PANOSE_0 {
1744     pub familyKind: u8,
1745     pub decorativeClass: u8,
1746     pub weight: u8,
1747     pub aspect: u8,
1748     pub contrast: u8,
1749     pub serifVariant: u8,
1750     pub fill: u8,
1751     pub lining: u8,
1752     pub decorativeTopology: u8,
1753     pub characterRange: u8,
1754 }
1755 impl DWRITE_PANOSE_0 {}
1756 impl ::std::default::Default for DWRITE_PANOSE_0 {
default() -> Self1757     fn default() -> Self {
1758         unsafe { ::std::mem::zeroed() }
1759     }
1760 }
1761 impl ::std::fmt::Debug for DWRITE_PANOSE_0 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1762     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1763         fmt.debug_struct("_decorative_e__Struct")
1764             .field("familyKind", &self.familyKind)
1765             .field("decorativeClass", &self.decorativeClass)
1766             .field("weight", &self.weight)
1767             .field("aspect", &self.aspect)
1768             .field("contrast", &self.contrast)
1769             .field("serifVariant", &self.serifVariant)
1770             .field("fill", &self.fill)
1771             .field("lining", &self.lining)
1772             .field("decorativeTopology", &self.decorativeTopology)
1773             .field("characterRange", &self.characterRange)
1774             .finish()
1775     }
1776 }
1777 impl ::std::cmp::PartialEq for DWRITE_PANOSE_0 {
eq(&self, other: &Self) -> bool1778     fn eq(&self, other: &Self) -> bool {
1779         self.familyKind == other.familyKind && self.decorativeClass == other.decorativeClass && self.weight == other.weight && self.aspect == other.aspect && self.contrast == other.contrast && self.serifVariant == other.serifVariant && self.fill == other.fill && self.lining == other.lining && self.decorativeTopology == other.decorativeTopology && self.characterRange == other.characterRange
1780     }
1781 }
1782 impl ::std::cmp::Eq for DWRITE_PANOSE_0 {}
1783 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_0 {
1784     type Abi = Self;
1785     type DefaultType = Self;
1786 }
1787 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1788 #[repr(C)]
1789 pub struct DWRITE_PANOSE_1 {
1790     pub familyKind: u8,
1791     pub toolKind: u8,
1792     pub weight: u8,
1793     pub spacing: u8,
1794     pub aspectRatio: u8,
1795     pub contrast: u8,
1796     pub scriptTopology: u8,
1797     pub scriptForm: u8,
1798     pub finials: u8,
1799     pub xAscent: u8,
1800 }
1801 impl DWRITE_PANOSE_1 {}
1802 impl ::std::default::Default for DWRITE_PANOSE_1 {
default() -> Self1803     fn default() -> Self {
1804         unsafe { ::std::mem::zeroed() }
1805     }
1806 }
1807 impl ::std::fmt::Debug for DWRITE_PANOSE_1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1808     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1809         fmt.debug_struct("_script_e__Struct")
1810             .field("familyKind", &self.familyKind)
1811             .field("toolKind", &self.toolKind)
1812             .field("weight", &self.weight)
1813             .field("spacing", &self.spacing)
1814             .field("aspectRatio", &self.aspectRatio)
1815             .field("contrast", &self.contrast)
1816             .field("scriptTopology", &self.scriptTopology)
1817             .field("scriptForm", &self.scriptForm)
1818             .field("finials", &self.finials)
1819             .field("xAscent", &self.xAscent)
1820             .finish()
1821     }
1822 }
1823 impl ::std::cmp::PartialEq for DWRITE_PANOSE_1 {
eq(&self, other: &Self) -> bool1824     fn eq(&self, other: &Self) -> bool {
1825         self.familyKind == other.familyKind && self.toolKind == other.toolKind && self.weight == other.weight && self.spacing == other.spacing && self.aspectRatio == other.aspectRatio && self.contrast == other.contrast && self.scriptTopology == other.scriptTopology && self.scriptForm == other.scriptForm && self.finials == other.finials && self.xAscent == other.xAscent
1826     }
1827 }
1828 impl ::std::cmp::Eq for DWRITE_PANOSE_1 {}
1829 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_1 {
1830     type Abi = Self;
1831     type DefaultType = Self;
1832 }
1833 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1834 #[repr(C)]
1835 pub struct DWRITE_PANOSE_2 {
1836     pub familyKind: u8,
1837     pub symbolKind: u8,
1838     pub weight: u8,
1839     pub spacing: u8,
1840     pub aspectRatioAndContrast: u8,
1841     pub aspectRatio94: u8,
1842     pub aspectRatio119: u8,
1843     pub aspectRatio157: u8,
1844     pub aspectRatio163: u8,
1845     pub aspectRatio211: u8,
1846 }
1847 impl DWRITE_PANOSE_2 {}
1848 impl ::std::default::Default for DWRITE_PANOSE_2 {
default() -> Self1849     fn default() -> Self {
1850         unsafe { ::std::mem::zeroed() }
1851     }
1852 }
1853 impl ::std::fmt::Debug for DWRITE_PANOSE_2 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1854     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1855         fmt.debug_struct("_symbol_e__Struct")
1856             .field("familyKind", &self.familyKind)
1857             .field("symbolKind", &self.symbolKind)
1858             .field("weight", &self.weight)
1859             .field("spacing", &self.spacing)
1860             .field("aspectRatioAndContrast", &self.aspectRatioAndContrast)
1861             .field("aspectRatio94", &self.aspectRatio94)
1862             .field("aspectRatio119", &self.aspectRatio119)
1863             .field("aspectRatio157", &self.aspectRatio157)
1864             .field("aspectRatio163", &self.aspectRatio163)
1865             .field("aspectRatio211", &self.aspectRatio211)
1866             .finish()
1867     }
1868 }
1869 impl ::std::cmp::PartialEq for DWRITE_PANOSE_2 {
eq(&self, other: &Self) -> bool1870     fn eq(&self, other: &Self) -> bool {
1871         self.familyKind == other.familyKind && self.symbolKind == other.symbolKind && self.weight == other.weight && self.spacing == other.spacing && self.aspectRatioAndContrast == other.aspectRatioAndContrast && self.aspectRatio94 == other.aspectRatio94 && self.aspectRatio119 == other.aspectRatio119 && self.aspectRatio157 == other.aspectRatio157 && self.aspectRatio163 == other.aspectRatio163 && self.aspectRatio211 == other.aspectRatio211
1872     }
1873 }
1874 impl ::std::cmp::Eq for DWRITE_PANOSE_2 {}
1875 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_2 {
1876     type Abi = Self;
1877     type DefaultType = Self;
1878 }
1879 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
1880 #[repr(C)]
1881 pub struct DWRITE_PANOSE_3 {
1882     pub familyKind: u8,
1883     pub serifStyle: u8,
1884     pub weight: u8,
1885     pub proportion: u8,
1886     pub contrast: u8,
1887     pub strokeVariation: u8,
1888     pub armStyle: u8,
1889     pub letterform: u8,
1890     pub midline: u8,
1891     pub xHeight: u8,
1892 }
1893 impl DWRITE_PANOSE_3 {}
1894 impl ::std::default::Default for DWRITE_PANOSE_3 {
default() -> Self1895     fn default() -> Self {
1896         unsafe { ::std::mem::zeroed() }
1897     }
1898 }
1899 impl ::std::fmt::Debug for DWRITE_PANOSE_3 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result1900     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1901         fmt.debug_struct("_text_e__Struct")
1902             .field("familyKind", &self.familyKind)
1903             .field("serifStyle", &self.serifStyle)
1904             .field("weight", &self.weight)
1905             .field("proportion", &self.proportion)
1906             .field("contrast", &self.contrast)
1907             .field("strokeVariation", &self.strokeVariation)
1908             .field("armStyle", &self.armStyle)
1909             .field("letterform", &self.letterform)
1910             .field("midline", &self.midline)
1911             .field("xHeight", &self.xHeight)
1912             .finish()
1913     }
1914 }
1915 impl ::std::cmp::PartialEq for DWRITE_PANOSE_3 {
eq(&self, other: &Self) -> bool1916     fn eq(&self, other: &Self) -> bool {
1917         self.familyKind == other.familyKind && self.serifStyle == other.serifStyle && self.weight == other.weight && self.proportion == other.proportion && self.contrast == other.contrast && self.strokeVariation == other.strokeVariation && self.armStyle == other.armStyle && self.letterform == other.letterform && self.midline == other.midline && self.xHeight == other.xHeight
1918     }
1919 }
1920 impl ::std::cmp::Eq for DWRITE_PANOSE_3 {}
1921 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_3 {
1922     type Abi = Self;
1923     type DefaultType = Self;
1924 }
1925 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1926 #[repr(transparent)]
1927 pub struct DWRITE_PANOSE_ARM_STYLE(pub i32);
1928 pub const DWRITE_PANOSE_ARM_STYLE_ANY: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(0i32);
1929 pub const DWRITE_PANOSE_ARM_STYLE_NO_FIT: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(1i32);
1930 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(2i32);
1931 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(3i32);
1932 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(4i32);
1933 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(5i32);
1934 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(6i32);
1935 pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(7i32);
1936 pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(8i32);
1937 pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(9i32);
1938 pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(10i32);
1939 pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(11i32);
1940 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(2i32);
1941 pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(4i32);
1942 pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(7i32);
1943 pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(8i32);
1944 pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(9i32);
1945 pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(10i32);
1946 pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF: DWRITE_PANOSE_ARM_STYLE = DWRITE_PANOSE_ARM_STYLE(11i32);
1947 impl ::std::convert::From<i32> for DWRITE_PANOSE_ARM_STYLE {
from(value: i32) -> Self1948     fn from(value: i32) -> Self {
1949         Self(value)
1950     }
1951 }
1952 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_ARM_STYLE {
1953     type Abi = Self;
1954     type DefaultType = Self;
1955 }
1956 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1957 #[repr(transparent)]
1958 pub struct DWRITE_PANOSE_ASPECT(pub i32);
1959 pub const DWRITE_PANOSE_ASPECT_ANY: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(0i32);
1960 pub const DWRITE_PANOSE_ASPECT_NO_FIT: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(1i32);
1961 pub const DWRITE_PANOSE_ASPECT_SUPER_CONDENSED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(2i32);
1962 pub const DWRITE_PANOSE_ASPECT_VERY_CONDENSED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(3i32);
1963 pub const DWRITE_PANOSE_ASPECT_CONDENSED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(4i32);
1964 pub const DWRITE_PANOSE_ASPECT_NORMAL: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(5i32);
1965 pub const DWRITE_PANOSE_ASPECT_EXTENDED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(6i32);
1966 pub const DWRITE_PANOSE_ASPECT_VERY_EXTENDED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(7i32);
1967 pub const DWRITE_PANOSE_ASPECT_SUPER_EXTENDED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(8i32);
1968 pub const DWRITE_PANOSE_ASPECT_MONOSPACED: DWRITE_PANOSE_ASPECT = DWRITE_PANOSE_ASPECT(9i32);
1969 impl ::std::convert::From<i32> for DWRITE_PANOSE_ASPECT {
from(value: i32) -> Self1970     fn from(value: i32) -> Self {
1971         Self(value)
1972     }
1973 }
1974 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_ASPECT {
1975     type Abi = Self;
1976     type DefaultType = Self;
1977 }
1978 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1979 #[repr(transparent)]
1980 pub struct DWRITE_PANOSE_ASPECT_RATIO(pub i32);
1981 pub const DWRITE_PANOSE_ASPECT_RATIO_ANY: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(0i32);
1982 pub const DWRITE_PANOSE_ASPECT_RATIO_NO_FIT: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(1i32);
1983 pub const DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(2i32);
1984 pub const DWRITE_PANOSE_ASPECT_RATIO_CONDENSED: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(3i32);
1985 pub const DWRITE_PANOSE_ASPECT_RATIO_NORMAL: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(4i32);
1986 pub const DWRITE_PANOSE_ASPECT_RATIO_EXPANDED: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(5i32);
1987 pub const DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED: DWRITE_PANOSE_ASPECT_RATIO = DWRITE_PANOSE_ASPECT_RATIO(6i32);
1988 impl ::std::convert::From<i32> for DWRITE_PANOSE_ASPECT_RATIO {
from(value: i32) -> Self1989     fn from(value: i32) -> Self {
1990         Self(value)
1991     }
1992 }
1993 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_ASPECT_RATIO {
1994     type Abi = Self;
1995     type DefaultType = Self;
1996 }
1997 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1998 #[repr(transparent)]
1999 pub struct DWRITE_PANOSE_CHARACTER_RANGES(pub i32);
2000 pub const DWRITE_PANOSE_CHARACTER_RANGES_ANY: DWRITE_PANOSE_CHARACTER_RANGES = DWRITE_PANOSE_CHARACTER_RANGES(0i32);
2001 pub const DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT: DWRITE_PANOSE_CHARACTER_RANGES = DWRITE_PANOSE_CHARACTER_RANGES(1i32);
2002 pub const DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION: DWRITE_PANOSE_CHARACTER_RANGES = DWRITE_PANOSE_CHARACTER_RANGES(2i32);
2003 pub const DWRITE_PANOSE_CHARACTER_RANGES_LITERALS: DWRITE_PANOSE_CHARACTER_RANGES = DWRITE_PANOSE_CHARACTER_RANGES(3i32);
2004 pub const DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE: DWRITE_PANOSE_CHARACTER_RANGES = DWRITE_PANOSE_CHARACTER_RANGES(4i32);
2005 pub const DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS: DWRITE_PANOSE_CHARACTER_RANGES = DWRITE_PANOSE_CHARACTER_RANGES(5i32);
2006 impl ::std::convert::From<i32> for DWRITE_PANOSE_CHARACTER_RANGES {
from(value: i32) -> Self2007     fn from(value: i32) -> Self {
2008         Self(value)
2009     }
2010 }
2011 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_CHARACTER_RANGES {
2012     type Abi = Self;
2013     type DefaultType = Self;
2014 }
2015 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2016 #[repr(transparent)]
2017 pub struct DWRITE_PANOSE_CONTRAST(pub i32);
2018 pub const DWRITE_PANOSE_CONTRAST_ANY: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(0i32);
2019 pub const DWRITE_PANOSE_CONTRAST_NO_FIT: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(1i32);
2020 pub const DWRITE_PANOSE_CONTRAST_NONE: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(2i32);
2021 pub const DWRITE_PANOSE_CONTRAST_VERY_LOW: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(3i32);
2022 pub const DWRITE_PANOSE_CONTRAST_LOW: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(4i32);
2023 pub const DWRITE_PANOSE_CONTRAST_MEDIUM_LOW: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(5i32);
2024 pub const DWRITE_PANOSE_CONTRAST_MEDIUM: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(6i32);
2025 pub const DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(7i32);
2026 pub const DWRITE_PANOSE_CONTRAST_HIGH: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(8i32);
2027 pub const DWRITE_PANOSE_CONTRAST_VERY_HIGH: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(9i32);
2028 pub const DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(10i32);
2029 pub const DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(11i32);
2030 pub const DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(12i32);
2031 pub const DWRITE_PANOSE_CONTRAST_BROKEN: DWRITE_PANOSE_CONTRAST = DWRITE_PANOSE_CONTRAST(13i32);
2032 impl ::std::convert::From<i32> for DWRITE_PANOSE_CONTRAST {
from(value: i32) -> Self2033     fn from(value: i32) -> Self {
2034         Self(value)
2035     }
2036 }
2037 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_CONTRAST {
2038     type Abi = Self;
2039     type DefaultType = Self;
2040 }
2041 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2042 #[repr(transparent)]
2043 pub struct DWRITE_PANOSE_DECORATIVE_CLASS(pub i32);
2044 pub const DWRITE_PANOSE_DECORATIVE_CLASS_ANY: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(0i32);
2045 pub const DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(1i32);
2046 pub const DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(2i32);
2047 pub const DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(3i32);
2048 pub const DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(4i32);
2049 pub const DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(5i32);
2050 pub const DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(6i32);
2051 pub const DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(7i32);
2052 pub const DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(8i32);
2053 pub const DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(9i32);
2054 pub const DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(10i32);
2055 pub const DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(11i32);
2056 pub const DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE: DWRITE_PANOSE_DECORATIVE_CLASS = DWRITE_PANOSE_DECORATIVE_CLASS(12i32);
2057 impl ::std::convert::From<i32> for DWRITE_PANOSE_DECORATIVE_CLASS {
from(value: i32) -> Self2058     fn from(value: i32) -> Self {
2059         Self(value)
2060     }
2061 }
2062 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_DECORATIVE_CLASS {
2063     type Abi = Self;
2064     type DefaultType = Self;
2065 }
2066 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2067 #[repr(transparent)]
2068 pub struct DWRITE_PANOSE_DECORATIVE_TOPOLOGY(pub i32);
2069 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(0i32);
2070 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(1i32);
2071 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(2i32);
2072 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(3i32);
2073 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(4i32);
2074 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(5i32);
2075 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(6i32);
2076 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(7i32);
2077 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(8i32);
2078 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(9i32);
2079 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(10i32);
2080 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(11i32);
2081 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(12i32);
2082 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(13i32);
2083 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(14i32);
2084 pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE: DWRITE_PANOSE_DECORATIVE_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY(15i32);
2085 impl ::std::convert::From<i32> for DWRITE_PANOSE_DECORATIVE_TOPOLOGY {
from(value: i32) -> Self2086     fn from(value: i32) -> Self {
2087         Self(value)
2088     }
2089 }
2090 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_DECORATIVE_TOPOLOGY {
2091     type Abi = Self;
2092     type DefaultType = Self;
2093 }
2094 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2095 #[repr(transparent)]
2096 pub struct DWRITE_PANOSE_FAMILY(pub i32);
2097 pub const DWRITE_PANOSE_FAMILY_ANY: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(0i32);
2098 pub const DWRITE_PANOSE_FAMILY_NO_FIT: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(1i32);
2099 pub const DWRITE_PANOSE_FAMILY_TEXT_DISPLAY: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(2i32);
2100 pub const DWRITE_PANOSE_FAMILY_SCRIPT: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(3i32);
2101 pub const DWRITE_PANOSE_FAMILY_DECORATIVE: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(4i32);
2102 pub const DWRITE_PANOSE_FAMILY_SYMBOL: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(5i32);
2103 pub const DWRITE_PANOSE_FAMILY_PICTORIAL: DWRITE_PANOSE_FAMILY = DWRITE_PANOSE_FAMILY(5i32);
2104 impl ::std::convert::From<i32> for DWRITE_PANOSE_FAMILY {
from(value: i32) -> Self2105     fn from(value: i32) -> Self {
2106         Self(value)
2107     }
2108 }
2109 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_FAMILY {
2110     type Abi = Self;
2111     type DefaultType = Self;
2112 }
2113 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2114 #[repr(transparent)]
2115 pub struct DWRITE_PANOSE_FILL(pub i32);
2116 pub const DWRITE_PANOSE_FILL_ANY: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(0i32);
2117 pub const DWRITE_PANOSE_FILL_NO_FIT: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(1i32);
2118 pub const DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(2i32);
2119 pub const DWRITE_PANOSE_FILL_NO_FILL: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(3i32);
2120 pub const DWRITE_PANOSE_FILL_PATTERNED_FILL: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(4i32);
2121 pub const DWRITE_PANOSE_FILL_COMPLEX_FILL: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(5i32);
2122 pub const DWRITE_PANOSE_FILL_SHAPED_FILL: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(6i32);
2123 pub const DWRITE_PANOSE_FILL_DRAWN_DISTRESSED: DWRITE_PANOSE_FILL = DWRITE_PANOSE_FILL(7i32);
2124 impl ::std::convert::From<i32> for DWRITE_PANOSE_FILL {
from(value: i32) -> Self2125     fn from(value: i32) -> Self {
2126         Self(value)
2127     }
2128 }
2129 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_FILL {
2130     type Abi = Self;
2131     type DefaultType = Self;
2132 }
2133 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2134 #[repr(transparent)]
2135 pub struct DWRITE_PANOSE_FINIALS(pub i32);
2136 pub const DWRITE_PANOSE_FINIALS_ANY: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(0i32);
2137 pub const DWRITE_PANOSE_FINIALS_NO_FIT: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(1i32);
2138 pub const DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(2i32);
2139 pub const DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(3i32);
2140 pub const DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(4i32);
2141 pub const DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(5i32);
2142 pub const DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(6i32);
2143 pub const DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(7i32);
2144 pub const DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(8i32);
2145 pub const DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(9i32);
2146 pub const DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(10i32);
2147 pub const DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(11i32);
2148 pub const DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(12i32);
2149 pub const DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS: DWRITE_PANOSE_FINIALS = DWRITE_PANOSE_FINIALS(13i32);
2150 impl ::std::convert::From<i32> for DWRITE_PANOSE_FINIALS {
from(value: i32) -> Self2151     fn from(value: i32) -> Self {
2152         Self(value)
2153     }
2154 }
2155 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_FINIALS {
2156     type Abi = Self;
2157     type DefaultType = Self;
2158 }
2159 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2160 #[repr(transparent)]
2161 pub struct DWRITE_PANOSE_LETTERFORM(pub i32);
2162 pub const DWRITE_PANOSE_LETTERFORM_ANY: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(0i32);
2163 pub const DWRITE_PANOSE_LETTERFORM_NO_FIT: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(1i32);
2164 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(2i32);
2165 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(3i32);
2166 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(4i32);
2167 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(5i32);
2168 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(6i32);
2169 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(7i32);
2170 pub const DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(8i32);
2171 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(9i32);
2172 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(10i32);
2173 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(11i32);
2174 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(12i32);
2175 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(13i32);
2176 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(14i32);
2177 pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE: DWRITE_PANOSE_LETTERFORM = DWRITE_PANOSE_LETTERFORM(15i32);
2178 impl ::std::convert::From<i32> for DWRITE_PANOSE_LETTERFORM {
from(value: i32) -> Self2179     fn from(value: i32) -> Self {
2180         Self(value)
2181     }
2182 }
2183 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_LETTERFORM {
2184     type Abi = Self;
2185     type DefaultType = Self;
2186 }
2187 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2188 #[repr(transparent)]
2189 pub struct DWRITE_PANOSE_LINING(pub i32);
2190 pub const DWRITE_PANOSE_LINING_ANY: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(0i32);
2191 pub const DWRITE_PANOSE_LINING_NO_FIT: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(1i32);
2192 pub const DWRITE_PANOSE_LINING_NONE: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(2i32);
2193 pub const DWRITE_PANOSE_LINING_INLINE: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(3i32);
2194 pub const DWRITE_PANOSE_LINING_OUTLINE: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(4i32);
2195 pub const DWRITE_PANOSE_LINING_ENGRAVED: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(5i32);
2196 pub const DWRITE_PANOSE_LINING_SHADOW: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(6i32);
2197 pub const DWRITE_PANOSE_LINING_RELIEF: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(7i32);
2198 pub const DWRITE_PANOSE_LINING_BACKDROP: DWRITE_PANOSE_LINING = DWRITE_PANOSE_LINING(8i32);
2199 impl ::std::convert::From<i32> for DWRITE_PANOSE_LINING {
from(value: i32) -> Self2200     fn from(value: i32) -> Self {
2201         Self(value)
2202     }
2203 }
2204 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_LINING {
2205     type Abi = Self;
2206     type DefaultType = Self;
2207 }
2208 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2209 #[repr(transparent)]
2210 pub struct DWRITE_PANOSE_MIDLINE(pub i32);
2211 pub const DWRITE_PANOSE_MIDLINE_ANY: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(0i32);
2212 pub const DWRITE_PANOSE_MIDLINE_NO_FIT: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(1i32);
2213 pub const DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(2i32);
2214 pub const DWRITE_PANOSE_MIDLINE_STANDARD_POINTED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(3i32);
2215 pub const DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(4i32);
2216 pub const DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(5i32);
2217 pub const DWRITE_PANOSE_MIDLINE_HIGH_POINTED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(6i32);
2218 pub const DWRITE_PANOSE_MIDLINE_HIGH_SERIFED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(7i32);
2219 pub const DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(8i32);
2220 pub const DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(9i32);
2221 pub const DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(10i32);
2222 pub const DWRITE_PANOSE_MIDLINE_LOW_TRIMMED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(11i32);
2223 pub const DWRITE_PANOSE_MIDLINE_LOW_POINTED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(12i32);
2224 pub const DWRITE_PANOSE_MIDLINE_LOW_SERIFED: DWRITE_PANOSE_MIDLINE = DWRITE_PANOSE_MIDLINE(13i32);
2225 impl ::std::convert::From<i32> for DWRITE_PANOSE_MIDLINE {
from(value: i32) -> Self2226     fn from(value: i32) -> Self {
2227         Self(value)
2228     }
2229 }
2230 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_MIDLINE {
2231     type Abi = Self;
2232     type DefaultType = Self;
2233 }
2234 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2235 #[repr(transparent)]
2236 pub struct DWRITE_PANOSE_PROPORTION(pub i32);
2237 pub const DWRITE_PANOSE_PROPORTION_ANY: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(0i32);
2238 pub const DWRITE_PANOSE_PROPORTION_NO_FIT: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(1i32);
2239 pub const DWRITE_PANOSE_PROPORTION_OLD_STYLE: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(2i32);
2240 pub const DWRITE_PANOSE_PROPORTION_MODERN: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(3i32);
2241 pub const DWRITE_PANOSE_PROPORTION_EVEN_WIDTH: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(4i32);
2242 pub const DWRITE_PANOSE_PROPORTION_EXPANDED: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(5i32);
2243 pub const DWRITE_PANOSE_PROPORTION_CONDENSED: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(6i32);
2244 pub const DWRITE_PANOSE_PROPORTION_VERY_EXPANDED: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(7i32);
2245 pub const DWRITE_PANOSE_PROPORTION_VERY_CONDENSED: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(8i32);
2246 pub const DWRITE_PANOSE_PROPORTION_MONOSPACED: DWRITE_PANOSE_PROPORTION = DWRITE_PANOSE_PROPORTION(9i32);
2247 impl ::std::convert::From<i32> for DWRITE_PANOSE_PROPORTION {
from(value: i32) -> Self2248     fn from(value: i32) -> Self {
2249         Self(value)
2250     }
2251 }
2252 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_PROPORTION {
2253     type Abi = Self;
2254     type DefaultType = Self;
2255 }
2256 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2257 #[repr(transparent)]
2258 pub struct DWRITE_PANOSE_SCRIPT_FORM(pub i32);
2259 pub const DWRITE_PANOSE_SCRIPT_FORM_ANY: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(0i32);
2260 pub const DWRITE_PANOSE_SCRIPT_FORM_NO_FIT: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(1i32);
2261 pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(2i32);
2262 pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(3i32);
2263 pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(4i32);
2264 pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(5i32);
2265 pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(6i32);
2266 pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(7i32);
2267 pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(8i32);
2268 pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(9i32);
2269 pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(10i32);
2270 pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(11i32);
2271 pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(12i32);
2272 pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING: DWRITE_PANOSE_SCRIPT_FORM = DWRITE_PANOSE_SCRIPT_FORM(13i32);
2273 impl ::std::convert::From<i32> for DWRITE_PANOSE_SCRIPT_FORM {
from(value: i32) -> Self2274     fn from(value: i32) -> Self {
2275         Self(value)
2276     }
2277 }
2278 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_SCRIPT_FORM {
2279     type Abi = Self;
2280     type DefaultType = Self;
2281 }
2282 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2283 #[repr(transparent)]
2284 pub struct DWRITE_PANOSE_SCRIPT_TOPOLOGY(pub i32);
2285 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(0i32);
2286 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(1i32);
2287 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(2i32);
2288 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(3i32);
2289 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(4i32);
2290 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(5i32);
2291 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(6i32);
2292 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(7i32);
2293 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(8i32);
2294 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(9i32);
2295 pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED: DWRITE_PANOSE_SCRIPT_TOPOLOGY = DWRITE_PANOSE_SCRIPT_TOPOLOGY(10i32);
2296 impl ::std::convert::From<i32> for DWRITE_PANOSE_SCRIPT_TOPOLOGY {
from(value: i32) -> Self2297     fn from(value: i32) -> Self {
2298         Self(value)
2299     }
2300 }
2301 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_SCRIPT_TOPOLOGY {
2302     type Abi = Self;
2303     type DefaultType = Self;
2304 }
2305 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2306 #[repr(transparent)]
2307 pub struct DWRITE_PANOSE_SERIF_STYLE(pub i32);
2308 pub const DWRITE_PANOSE_SERIF_STYLE_ANY: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(0i32);
2309 pub const DWRITE_PANOSE_SERIF_STYLE_NO_FIT: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(1i32);
2310 pub const DWRITE_PANOSE_SERIF_STYLE_COVE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(2i32);
2311 pub const DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(3i32);
2312 pub const DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(4i32);
2313 pub const DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(5i32);
2314 pub const DWRITE_PANOSE_SERIF_STYLE_SQUARE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(6i32);
2315 pub const DWRITE_PANOSE_SERIF_STYLE_THIN: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(7i32);
2316 pub const DWRITE_PANOSE_SERIF_STYLE_OVAL: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(8i32);
2317 pub const DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(9i32);
2318 pub const DWRITE_PANOSE_SERIF_STYLE_TRIANGLE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(10i32);
2319 pub const DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(11i32);
2320 pub const DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(12i32);
2321 pub const DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(13i32);
2322 pub const DWRITE_PANOSE_SERIF_STYLE_FLARED: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(14i32);
2323 pub const DWRITE_PANOSE_SERIF_STYLE_ROUNDED: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(15i32);
2324 pub const DWRITE_PANOSE_SERIF_STYLE_SCRIPT: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(16i32);
2325 pub const DWRITE_PANOSE_SERIF_STYLE_PERP_SANS: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(13i32);
2326 pub const DWRITE_PANOSE_SERIF_STYLE_BONE: DWRITE_PANOSE_SERIF_STYLE = DWRITE_PANOSE_SERIF_STYLE(8i32);
2327 impl ::std::convert::From<i32> for DWRITE_PANOSE_SERIF_STYLE {
from(value: i32) -> Self2328     fn from(value: i32) -> Self {
2329         Self(value)
2330     }
2331 }
2332 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_SERIF_STYLE {
2333     type Abi = Self;
2334     type DefaultType = Self;
2335 }
2336 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2337 #[repr(transparent)]
2338 pub struct DWRITE_PANOSE_SPACING(pub i32);
2339 pub const DWRITE_PANOSE_SPACING_ANY: DWRITE_PANOSE_SPACING = DWRITE_PANOSE_SPACING(0i32);
2340 pub const DWRITE_PANOSE_SPACING_NO_FIT: DWRITE_PANOSE_SPACING = DWRITE_PANOSE_SPACING(1i32);
2341 pub const DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED: DWRITE_PANOSE_SPACING = DWRITE_PANOSE_SPACING(2i32);
2342 pub const DWRITE_PANOSE_SPACING_MONOSPACED: DWRITE_PANOSE_SPACING = DWRITE_PANOSE_SPACING(3i32);
2343 impl ::std::convert::From<i32> for DWRITE_PANOSE_SPACING {
from(value: i32) -> Self2344     fn from(value: i32) -> Self {
2345         Self(value)
2346     }
2347 }
2348 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_SPACING {
2349     type Abi = Self;
2350     type DefaultType = Self;
2351 }
2352 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2353 #[repr(transparent)]
2354 pub struct DWRITE_PANOSE_STROKE_VARIATION(pub i32);
2355 pub const DWRITE_PANOSE_STROKE_VARIATION_ANY: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(0i32);
2356 pub const DWRITE_PANOSE_STROKE_VARIATION_NO_FIT: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(1i32);
2357 pub const DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(2i32);
2358 pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(3i32);
2359 pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(4i32);
2360 pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(5i32);
2361 pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(6i32);
2362 pub const DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(7i32);
2363 pub const DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(8i32);
2364 pub const DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(9i32);
2365 pub const DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL: DWRITE_PANOSE_STROKE_VARIATION = DWRITE_PANOSE_STROKE_VARIATION(10i32);
2366 impl ::std::convert::From<i32> for DWRITE_PANOSE_STROKE_VARIATION {
from(value: i32) -> Self2367     fn from(value: i32) -> Self {
2368         Self(value)
2369     }
2370 }
2371 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_STROKE_VARIATION {
2372     type Abi = Self;
2373     type DefaultType = Self;
2374 }
2375 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2376 #[repr(transparent)]
2377 pub struct DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(pub i32);
2378 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(0i32);
2379 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(1i32);
2380 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(2i32);
2381 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(3i32);
2382 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(4i32);
2383 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(5i32);
2384 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(6i32);
2385 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(7i32);
2386 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(8i32);
2387 pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW: DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO(9i32);
2388 impl ::std::convert::From<i32> for DWRITE_PANOSE_SYMBOL_ASPECT_RATIO {
from(value: i32) -> Self2389     fn from(value: i32) -> Self {
2390         Self(value)
2391     }
2392 }
2393 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_SYMBOL_ASPECT_RATIO {
2394     type Abi = Self;
2395     type DefaultType = Self;
2396 }
2397 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2398 #[repr(transparent)]
2399 pub struct DWRITE_PANOSE_SYMBOL_KIND(pub i32);
2400 pub const DWRITE_PANOSE_SYMBOL_KIND_ANY: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(0i32);
2401 pub const DWRITE_PANOSE_SYMBOL_KIND_NO_FIT: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(1i32);
2402 pub const DWRITE_PANOSE_SYMBOL_KIND_MONTAGES: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(2i32);
2403 pub const DWRITE_PANOSE_SYMBOL_KIND_PICTURES: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(3i32);
2404 pub const DWRITE_PANOSE_SYMBOL_KIND_SHAPES: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(4i32);
2405 pub const DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(5i32);
2406 pub const DWRITE_PANOSE_SYMBOL_KIND_MUSIC: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(6i32);
2407 pub const DWRITE_PANOSE_SYMBOL_KIND_EXPERT: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(7i32);
2408 pub const DWRITE_PANOSE_SYMBOL_KIND_PATTERNS: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(8i32);
2409 pub const DWRITE_PANOSE_SYMBOL_KIND_BOARDERS: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(9i32);
2410 pub const DWRITE_PANOSE_SYMBOL_KIND_ICONS: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(10i32);
2411 pub const DWRITE_PANOSE_SYMBOL_KIND_LOGOS: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(11i32);
2412 pub const DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC: DWRITE_PANOSE_SYMBOL_KIND = DWRITE_PANOSE_SYMBOL_KIND(12i32);
2413 impl ::std::convert::From<i32> for DWRITE_PANOSE_SYMBOL_KIND {
from(value: i32) -> Self2414     fn from(value: i32) -> Self {
2415         Self(value)
2416     }
2417 }
2418 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_SYMBOL_KIND {
2419     type Abi = Self;
2420     type DefaultType = Self;
2421 }
2422 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2423 #[repr(transparent)]
2424 pub struct DWRITE_PANOSE_TOOL_KIND(pub i32);
2425 pub const DWRITE_PANOSE_TOOL_KIND_ANY: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(0i32);
2426 pub const DWRITE_PANOSE_TOOL_KIND_NO_FIT: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(1i32);
2427 pub const DWRITE_PANOSE_TOOL_KIND_FLAT_NIB: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(2i32);
2428 pub const DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(3i32);
2429 pub const DWRITE_PANOSE_TOOL_KIND_ENGRAVED: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(4i32);
2430 pub const DWRITE_PANOSE_TOOL_KIND_BALL: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(5i32);
2431 pub const DWRITE_PANOSE_TOOL_KIND_BRUSH: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(6i32);
2432 pub const DWRITE_PANOSE_TOOL_KIND_ROUGH: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(7i32);
2433 pub const DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(8i32);
2434 pub const DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH: DWRITE_PANOSE_TOOL_KIND = DWRITE_PANOSE_TOOL_KIND(9i32);
2435 impl ::std::convert::From<i32> for DWRITE_PANOSE_TOOL_KIND {
from(value: i32) -> Self2436     fn from(value: i32) -> Self {
2437         Self(value)
2438     }
2439 }
2440 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_TOOL_KIND {
2441     type Abi = Self;
2442     type DefaultType = Self;
2443 }
2444 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2445 #[repr(transparent)]
2446 pub struct DWRITE_PANOSE_WEIGHT(pub i32);
2447 pub const DWRITE_PANOSE_WEIGHT_ANY: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(0i32);
2448 pub const DWRITE_PANOSE_WEIGHT_NO_FIT: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(1i32);
2449 pub const DWRITE_PANOSE_WEIGHT_VERY_LIGHT: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(2i32);
2450 pub const DWRITE_PANOSE_WEIGHT_LIGHT: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(3i32);
2451 pub const DWRITE_PANOSE_WEIGHT_THIN: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(4i32);
2452 pub const DWRITE_PANOSE_WEIGHT_BOOK: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(5i32);
2453 pub const DWRITE_PANOSE_WEIGHT_MEDIUM: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(6i32);
2454 pub const DWRITE_PANOSE_WEIGHT_DEMI: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(7i32);
2455 pub const DWRITE_PANOSE_WEIGHT_BOLD: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(8i32);
2456 pub const DWRITE_PANOSE_WEIGHT_HEAVY: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(9i32);
2457 pub const DWRITE_PANOSE_WEIGHT_BLACK: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(10i32);
2458 pub const DWRITE_PANOSE_WEIGHT_EXTRA_BLACK: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(11i32);
2459 pub const DWRITE_PANOSE_WEIGHT_NORD: DWRITE_PANOSE_WEIGHT = DWRITE_PANOSE_WEIGHT(11i32);
2460 impl ::std::convert::From<i32> for DWRITE_PANOSE_WEIGHT {
from(value: i32) -> Self2461     fn from(value: i32) -> Self {
2462         Self(value)
2463     }
2464 }
2465 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_WEIGHT {
2466     type Abi = Self;
2467     type DefaultType = Self;
2468 }
2469 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2470 #[repr(transparent)]
2471 pub struct DWRITE_PANOSE_XASCENT(pub i32);
2472 pub const DWRITE_PANOSE_XASCENT_ANY: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(0i32);
2473 pub const DWRITE_PANOSE_XASCENT_NO_FIT: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(1i32);
2474 pub const DWRITE_PANOSE_XASCENT_VERY_LOW: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(2i32);
2475 pub const DWRITE_PANOSE_XASCENT_LOW: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(3i32);
2476 pub const DWRITE_PANOSE_XASCENT_MEDIUM: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(4i32);
2477 pub const DWRITE_PANOSE_XASCENT_HIGH: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(5i32);
2478 pub const DWRITE_PANOSE_XASCENT_VERY_HIGH: DWRITE_PANOSE_XASCENT = DWRITE_PANOSE_XASCENT(6i32);
2479 impl ::std::convert::From<i32> for DWRITE_PANOSE_XASCENT {
from(value: i32) -> Self2480     fn from(value: i32) -> Self {
2481         Self(value)
2482     }
2483 }
2484 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_XASCENT {
2485     type Abi = Self;
2486     type DefaultType = Self;
2487 }
2488 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2489 #[repr(transparent)]
2490 pub struct DWRITE_PANOSE_XHEIGHT(pub i32);
2491 pub const DWRITE_PANOSE_XHEIGHT_ANY: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(0i32);
2492 pub const DWRITE_PANOSE_XHEIGHT_NO_FIT: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(1i32);
2493 pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(2i32);
2494 pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(3i32);
2495 pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(4i32);
2496 pub const DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(5i32);
2497 pub const DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(6i32);
2498 pub const DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(7i32);
2499 pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_STD: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(3i32);
2500 pub const DWRITE_PANOSE_XHEIGHT_DUCKING_STD: DWRITE_PANOSE_XHEIGHT = DWRITE_PANOSE_XHEIGHT(6i32);
2501 impl ::std::convert::From<i32> for DWRITE_PANOSE_XHEIGHT {
from(value: i32) -> Self2502     fn from(value: i32) -> Self {
2503         Self(value)
2504     }
2505 }
2506 unsafe impl ::windows::runtime::Abi for DWRITE_PANOSE_XHEIGHT {
2507     type Abi = Self;
2508     type DefaultType = Self;
2509 }
2510 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2511 #[repr(transparent)]
2512 pub struct DWRITE_PARAGRAPH_ALIGNMENT(pub i32);
2513 pub const DWRITE_PARAGRAPH_ALIGNMENT_NEAR: DWRITE_PARAGRAPH_ALIGNMENT = DWRITE_PARAGRAPH_ALIGNMENT(0i32);
2514 pub const DWRITE_PARAGRAPH_ALIGNMENT_FAR: DWRITE_PARAGRAPH_ALIGNMENT = DWRITE_PARAGRAPH_ALIGNMENT(1i32);
2515 pub const DWRITE_PARAGRAPH_ALIGNMENT_CENTER: DWRITE_PARAGRAPH_ALIGNMENT = DWRITE_PARAGRAPH_ALIGNMENT(2i32);
2516 impl ::std::convert::From<i32> for DWRITE_PARAGRAPH_ALIGNMENT {
from(value: i32) -> Self2517     fn from(value: i32) -> Self {
2518         Self(value)
2519     }
2520 }
2521 unsafe impl ::windows::runtime::Abi for DWRITE_PARAGRAPH_ALIGNMENT {
2522     type Abi = Self;
2523     type DefaultType = Self;
2524 }
2525 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2526 #[repr(transparent)]
2527 pub struct DWRITE_PIXEL_GEOMETRY(pub i32);
2528 pub const DWRITE_PIXEL_GEOMETRY_FLAT: DWRITE_PIXEL_GEOMETRY = DWRITE_PIXEL_GEOMETRY(0i32);
2529 pub const DWRITE_PIXEL_GEOMETRY_RGB: DWRITE_PIXEL_GEOMETRY = DWRITE_PIXEL_GEOMETRY(1i32);
2530 pub const DWRITE_PIXEL_GEOMETRY_BGR: DWRITE_PIXEL_GEOMETRY = DWRITE_PIXEL_GEOMETRY(2i32);
2531 impl ::std::convert::From<i32> for DWRITE_PIXEL_GEOMETRY {
from(value: i32) -> Self2532     fn from(value: i32) -> Self {
2533         Self(value)
2534     }
2535 }
2536 unsafe impl ::windows::runtime::Abi for DWRITE_PIXEL_GEOMETRY {
2537     type Abi = Self;
2538     type DefaultType = Self;
2539 }
2540 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2541 #[repr(transparent)]
2542 pub struct DWRITE_READING_DIRECTION(pub i32);
2543 pub const DWRITE_READING_DIRECTION_LEFT_TO_RIGHT: DWRITE_READING_DIRECTION = DWRITE_READING_DIRECTION(0i32);
2544 pub const DWRITE_READING_DIRECTION_RIGHT_TO_LEFT: DWRITE_READING_DIRECTION = DWRITE_READING_DIRECTION(1i32);
2545 pub const DWRITE_READING_DIRECTION_TOP_TO_BOTTOM: DWRITE_READING_DIRECTION = DWRITE_READING_DIRECTION(2i32);
2546 pub const DWRITE_READING_DIRECTION_BOTTOM_TO_TOP: DWRITE_READING_DIRECTION = DWRITE_READING_DIRECTION(3i32);
2547 impl ::std::convert::From<i32> for DWRITE_READING_DIRECTION {
from(value: i32) -> Self2548     fn from(value: i32) -> Self {
2549         Self(value)
2550     }
2551 }
2552 unsafe impl ::windows::runtime::Abi for DWRITE_READING_DIRECTION {
2553     type Abi = Self;
2554     type DefaultType = Self;
2555 }
2556 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2557 #[repr(transparent)]
2558 pub struct DWRITE_RENDERING_MODE(pub i32);
2559 pub const DWRITE_RENDERING_MODE_DEFAULT: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(0i32);
2560 pub const DWRITE_RENDERING_MODE_ALIASED: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(1i32);
2561 pub const DWRITE_RENDERING_MODE_GDI_CLASSIC: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(2i32);
2562 pub const DWRITE_RENDERING_MODE_GDI_NATURAL: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(3i32);
2563 pub const DWRITE_RENDERING_MODE_NATURAL: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(4i32);
2564 pub const DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(5i32);
2565 pub const DWRITE_RENDERING_MODE_OUTLINE: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(6i32);
2566 pub const DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(2i32);
2567 pub const DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(3i32);
2568 pub const DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(4i32);
2569 pub const DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC: DWRITE_RENDERING_MODE = DWRITE_RENDERING_MODE(5i32);
2570 impl ::std::convert::From<i32> for DWRITE_RENDERING_MODE {
from(value: i32) -> Self2571     fn from(value: i32) -> Self {
2572         Self(value)
2573     }
2574 }
2575 unsafe impl ::windows::runtime::Abi for DWRITE_RENDERING_MODE {
2576     type Abi = Self;
2577     type DefaultType = Self;
2578 }
2579 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2580 #[repr(transparent)]
2581 pub struct DWRITE_RENDERING_MODE1(pub i32);
2582 pub const DWRITE_RENDERING_MODE1_DEFAULT: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(0i32);
2583 pub const DWRITE_RENDERING_MODE1_ALIASED: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(1i32);
2584 pub const DWRITE_RENDERING_MODE1_GDI_CLASSIC: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(2i32);
2585 pub const DWRITE_RENDERING_MODE1_GDI_NATURAL: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(3i32);
2586 pub const DWRITE_RENDERING_MODE1_NATURAL: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(4i32);
2587 pub const DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(5i32);
2588 pub const DWRITE_RENDERING_MODE1_OUTLINE: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(6i32);
2589 pub const DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED: DWRITE_RENDERING_MODE1 = DWRITE_RENDERING_MODE1(7i32);
2590 impl ::std::convert::From<i32> for DWRITE_RENDERING_MODE1 {
from(value: i32) -> Self2591     fn from(value: i32) -> Self {
2592         Self(value)
2593     }
2594 }
2595 unsafe impl ::windows::runtime::Abi for DWRITE_RENDERING_MODE1 {
2596     type Abi = Self;
2597     type DefaultType = Self;
2598 }
2599 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2600 #[repr(C)]
2601 pub struct DWRITE_SCRIPT_ANALYSIS {
2602     pub script: u16,
2603     pub shapes: DWRITE_SCRIPT_SHAPES,
2604 }
2605 impl DWRITE_SCRIPT_ANALYSIS {}
2606 impl ::std::default::Default for DWRITE_SCRIPT_ANALYSIS {
default() -> Self2607     fn default() -> Self {
2608         unsafe { ::std::mem::zeroed() }
2609     }
2610 }
2611 impl ::std::fmt::Debug for DWRITE_SCRIPT_ANALYSIS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2612     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2613         fmt.debug_struct("DWRITE_SCRIPT_ANALYSIS").field("script", &self.script).field("shapes", &self.shapes).finish()
2614     }
2615 }
2616 impl ::std::cmp::PartialEq for DWRITE_SCRIPT_ANALYSIS {
eq(&self, other: &Self) -> bool2617     fn eq(&self, other: &Self) -> bool {
2618         self.script == other.script && self.shapes == other.shapes
2619     }
2620 }
2621 impl ::std::cmp::Eq for DWRITE_SCRIPT_ANALYSIS {}
2622 unsafe impl ::windows::runtime::Abi for DWRITE_SCRIPT_ANALYSIS {
2623     type Abi = Self;
2624     type DefaultType = Self;
2625 }
2626 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2627 #[repr(C)]
2628 pub struct DWRITE_SCRIPT_PROPERTIES {
2629     pub isoScriptCode: u32,
2630     pub isoScriptNumber: u32,
2631     pub clusterLookahead: u32,
2632     pub justificationCharacter: u32,
2633     pub _bitfield: u32,
2634 }
2635 impl DWRITE_SCRIPT_PROPERTIES {}
2636 impl ::std::default::Default for DWRITE_SCRIPT_PROPERTIES {
default() -> Self2637     fn default() -> Self {
2638         unsafe { ::std::mem::zeroed() }
2639     }
2640 }
2641 impl ::std::fmt::Debug for DWRITE_SCRIPT_PROPERTIES {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2642     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2643         fmt.debug_struct("DWRITE_SCRIPT_PROPERTIES").field("isoScriptCode", &self.isoScriptCode).field("isoScriptNumber", &self.isoScriptNumber).field("clusterLookahead", &self.clusterLookahead).field("justificationCharacter", &self.justificationCharacter).field("_bitfield", &self._bitfield).finish()
2644     }
2645 }
2646 impl ::std::cmp::PartialEq for DWRITE_SCRIPT_PROPERTIES {
eq(&self, other: &Self) -> bool2647     fn eq(&self, other: &Self) -> bool {
2648         self.isoScriptCode == other.isoScriptCode && self.isoScriptNumber == other.isoScriptNumber && self.clusterLookahead == other.clusterLookahead && self.justificationCharacter == other.justificationCharacter && self._bitfield == other._bitfield
2649     }
2650 }
2651 impl ::std::cmp::Eq for DWRITE_SCRIPT_PROPERTIES {}
2652 unsafe impl ::windows::runtime::Abi for DWRITE_SCRIPT_PROPERTIES {
2653     type Abi = Self;
2654     type DefaultType = Self;
2655 }
2656 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2657 #[repr(transparent)]
2658 pub struct DWRITE_SCRIPT_SHAPES(pub u32);
2659 pub const DWRITE_SCRIPT_SHAPES_DEFAULT: DWRITE_SCRIPT_SHAPES = DWRITE_SCRIPT_SHAPES(0u32);
2660 pub const DWRITE_SCRIPT_SHAPES_NO_VISUAL: DWRITE_SCRIPT_SHAPES = DWRITE_SCRIPT_SHAPES(1u32);
2661 impl ::std::convert::From<u32> for DWRITE_SCRIPT_SHAPES {
from(value: u32) -> Self2662     fn from(value: u32) -> Self {
2663         Self(value)
2664     }
2665 }
2666 unsafe impl ::windows::runtime::Abi for DWRITE_SCRIPT_SHAPES {
2667     type Abi = Self;
2668     type DefaultType = Self;
2669 }
2670 impl ::std::ops::BitOr for DWRITE_SCRIPT_SHAPES {
2671     type Output = Self;
bitor(self, rhs: Self) -> Self2672     fn bitor(self, rhs: Self) -> Self {
2673         Self(self.0 | rhs.0)
2674     }
2675 }
2676 impl ::std::ops::BitAnd for DWRITE_SCRIPT_SHAPES {
2677     type Output = Self;
bitand(self, rhs: Self) -> Self2678     fn bitand(self, rhs: Self) -> Self {
2679         Self(self.0 & rhs.0)
2680     }
2681 }
2682 impl ::std::ops::BitOrAssign for DWRITE_SCRIPT_SHAPES {
bitor_assign(&mut self, rhs: Self)2683     fn bitor_assign(&mut self, rhs: Self) {
2684         self.0.bitor_assign(rhs.0)
2685     }
2686 }
2687 impl ::std::ops::BitAndAssign for DWRITE_SCRIPT_SHAPES {
bitand_assign(&mut self, rhs: Self)2688     fn bitand_assign(&mut self, rhs: Self) {
2689         self.0.bitand_assign(rhs.0)
2690     }
2691 }
2692 impl ::std::ops::Not for DWRITE_SCRIPT_SHAPES {
2693     type Output = Self;
not(self) -> Self2694     fn not(self) -> Self {
2695         Self(self.0.not())
2696     }
2697 }
2698 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2699 #[repr(C)]
2700 pub struct DWRITE_SHAPING_GLYPH_PROPERTIES {
2701     pub _bitfield: u16,
2702 }
2703 impl DWRITE_SHAPING_GLYPH_PROPERTIES {}
2704 impl ::std::default::Default for DWRITE_SHAPING_GLYPH_PROPERTIES {
default() -> Self2705     fn default() -> Self {
2706         unsafe { ::std::mem::zeroed() }
2707     }
2708 }
2709 impl ::std::fmt::Debug for DWRITE_SHAPING_GLYPH_PROPERTIES {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2710     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2711         fmt.debug_struct("DWRITE_SHAPING_GLYPH_PROPERTIES").field("_bitfield", &self._bitfield).finish()
2712     }
2713 }
2714 impl ::std::cmp::PartialEq for DWRITE_SHAPING_GLYPH_PROPERTIES {
eq(&self, other: &Self) -> bool2715     fn eq(&self, other: &Self) -> bool {
2716         self._bitfield == other._bitfield
2717     }
2718 }
2719 impl ::std::cmp::Eq for DWRITE_SHAPING_GLYPH_PROPERTIES {}
2720 unsafe impl ::windows::runtime::Abi for DWRITE_SHAPING_GLYPH_PROPERTIES {
2721     type Abi = Self;
2722     type DefaultType = Self;
2723 }
2724 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2725 #[repr(C)]
2726 pub struct DWRITE_SHAPING_TEXT_PROPERTIES {
2727     pub _bitfield: u16,
2728 }
2729 impl DWRITE_SHAPING_TEXT_PROPERTIES {}
2730 impl ::std::default::Default for DWRITE_SHAPING_TEXT_PROPERTIES {
default() -> Self2731     fn default() -> Self {
2732         unsafe { ::std::mem::zeroed() }
2733     }
2734 }
2735 impl ::std::fmt::Debug for DWRITE_SHAPING_TEXT_PROPERTIES {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2736     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2737         fmt.debug_struct("DWRITE_SHAPING_TEXT_PROPERTIES").field("_bitfield", &self._bitfield).finish()
2738     }
2739 }
2740 impl ::std::cmp::PartialEq for DWRITE_SHAPING_TEXT_PROPERTIES {
eq(&self, other: &Self) -> bool2741     fn eq(&self, other: &Self) -> bool {
2742         self._bitfield == other._bitfield
2743     }
2744 }
2745 impl ::std::cmp::Eq for DWRITE_SHAPING_TEXT_PROPERTIES {}
2746 unsafe impl ::windows::runtime::Abi for DWRITE_SHAPING_TEXT_PROPERTIES {
2747     type Abi = Self;
2748     type DefaultType = Self;
2749 }
2750 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2751 #[repr(C)]
2752 #[cfg(feature = "Win32_Foundation")]
2753 pub struct DWRITE_STRIKETHROUGH {
2754     pub width: f32,
2755     pub thickness: f32,
2756     pub offset: f32,
2757     pub readingDirection: DWRITE_READING_DIRECTION,
2758     pub flowDirection: DWRITE_FLOW_DIRECTION,
2759     pub localeName: super::super::Foundation::PWSTR,
2760     pub measuringMode: DWRITE_MEASURING_MODE,
2761 }
2762 #[cfg(feature = "Win32_Foundation")]
2763 impl DWRITE_STRIKETHROUGH {}
2764 #[cfg(feature = "Win32_Foundation")]
2765 impl ::std::default::Default for DWRITE_STRIKETHROUGH {
default() -> Self2766     fn default() -> Self {
2767         unsafe { ::std::mem::zeroed() }
2768     }
2769 }
2770 #[cfg(feature = "Win32_Foundation")]
2771 impl ::std::fmt::Debug for DWRITE_STRIKETHROUGH {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2772     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2773         fmt.debug_struct("DWRITE_STRIKETHROUGH")
2774             .field("width", &self.width)
2775             .field("thickness", &self.thickness)
2776             .field("offset", &self.offset)
2777             .field("readingDirection", &self.readingDirection)
2778             .field("flowDirection", &self.flowDirection)
2779             .field("localeName", &self.localeName)
2780             .field("measuringMode", &self.measuringMode)
2781             .finish()
2782     }
2783 }
2784 #[cfg(feature = "Win32_Foundation")]
2785 impl ::std::cmp::PartialEq for DWRITE_STRIKETHROUGH {
eq(&self, other: &Self) -> bool2786     fn eq(&self, other: &Self) -> bool {
2787         self.width == other.width && self.thickness == other.thickness && self.offset == other.offset && self.readingDirection == other.readingDirection && self.flowDirection == other.flowDirection && self.localeName == other.localeName && self.measuringMode == other.measuringMode
2788     }
2789 }
2790 #[cfg(feature = "Win32_Foundation")]
2791 impl ::std::cmp::Eq for DWRITE_STRIKETHROUGH {}
2792 #[cfg(feature = "Win32_Foundation")]
2793 unsafe impl ::windows::runtime::Abi for DWRITE_STRIKETHROUGH {
2794     type Abi = Self;
2795     type DefaultType = Self;
2796 }
2797 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2798 #[repr(transparent)]
2799 pub struct DWRITE_TEXTURE_TYPE(pub i32);
2800 pub const DWRITE_TEXTURE_ALIASED_1x1: DWRITE_TEXTURE_TYPE = DWRITE_TEXTURE_TYPE(0i32);
2801 pub const DWRITE_TEXTURE_CLEARTYPE_3x1: DWRITE_TEXTURE_TYPE = DWRITE_TEXTURE_TYPE(1i32);
2802 impl ::std::convert::From<i32> for DWRITE_TEXTURE_TYPE {
from(value: i32) -> Self2803     fn from(value: i32) -> Self {
2804         Self(value)
2805     }
2806 }
2807 unsafe impl ::windows::runtime::Abi for DWRITE_TEXTURE_TYPE {
2808     type Abi = Self;
2809     type DefaultType = Self;
2810 }
2811 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2812 #[repr(transparent)]
2813 pub struct DWRITE_TEXT_ALIGNMENT(pub i32);
2814 pub const DWRITE_TEXT_ALIGNMENT_LEADING: DWRITE_TEXT_ALIGNMENT = DWRITE_TEXT_ALIGNMENT(0i32);
2815 pub const DWRITE_TEXT_ALIGNMENT_TRAILING: DWRITE_TEXT_ALIGNMENT = DWRITE_TEXT_ALIGNMENT(1i32);
2816 pub const DWRITE_TEXT_ALIGNMENT_CENTER: DWRITE_TEXT_ALIGNMENT = DWRITE_TEXT_ALIGNMENT(2i32);
2817 pub const DWRITE_TEXT_ALIGNMENT_JUSTIFIED: DWRITE_TEXT_ALIGNMENT = DWRITE_TEXT_ALIGNMENT(3i32);
2818 impl ::std::convert::From<i32> for DWRITE_TEXT_ALIGNMENT {
from(value: i32) -> Self2819     fn from(value: i32) -> Self {
2820         Self(value)
2821     }
2822 }
2823 unsafe impl ::windows::runtime::Abi for DWRITE_TEXT_ALIGNMENT {
2824     type Abi = Self;
2825     type DefaultType = Self;
2826 }
2827 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2828 #[repr(transparent)]
2829 pub struct DWRITE_TEXT_ANTIALIAS_MODE(pub i32);
2830 pub const DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE: DWRITE_TEXT_ANTIALIAS_MODE = DWRITE_TEXT_ANTIALIAS_MODE(0i32);
2831 pub const DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE: DWRITE_TEXT_ANTIALIAS_MODE = DWRITE_TEXT_ANTIALIAS_MODE(1i32);
2832 impl ::std::convert::From<i32> for DWRITE_TEXT_ANTIALIAS_MODE {
from(value: i32) -> Self2833     fn from(value: i32) -> Self {
2834         Self(value)
2835     }
2836 }
2837 unsafe impl ::windows::runtime::Abi for DWRITE_TEXT_ANTIALIAS_MODE {
2838     type Abi = Self;
2839     type DefaultType = Self;
2840 }
2841 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2842 #[repr(C)]
2843 pub struct DWRITE_TEXT_METRICS {
2844     pub left: f32,
2845     pub top: f32,
2846     pub width: f32,
2847     pub widthIncludingTrailingWhitespace: f32,
2848     pub height: f32,
2849     pub layoutWidth: f32,
2850     pub layoutHeight: f32,
2851     pub maxBidiReorderingDepth: u32,
2852     pub lineCount: u32,
2853 }
2854 impl DWRITE_TEXT_METRICS {}
2855 impl ::std::default::Default for DWRITE_TEXT_METRICS {
default() -> Self2856     fn default() -> Self {
2857         unsafe { ::std::mem::zeroed() }
2858     }
2859 }
2860 impl ::std::fmt::Debug for DWRITE_TEXT_METRICS {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2861     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2862         fmt.debug_struct("DWRITE_TEXT_METRICS")
2863             .field("left", &self.left)
2864             .field("top", &self.top)
2865             .field("width", &self.width)
2866             .field("widthIncludingTrailingWhitespace", &self.widthIncludingTrailingWhitespace)
2867             .field("height", &self.height)
2868             .field("layoutWidth", &self.layoutWidth)
2869             .field("layoutHeight", &self.layoutHeight)
2870             .field("maxBidiReorderingDepth", &self.maxBidiReorderingDepth)
2871             .field("lineCount", &self.lineCount)
2872             .finish()
2873     }
2874 }
2875 impl ::std::cmp::PartialEq for DWRITE_TEXT_METRICS {
eq(&self, other: &Self) -> bool2876     fn eq(&self, other: &Self) -> bool {
2877         self.left == other.left && self.top == other.top && self.width == other.width && self.widthIncludingTrailingWhitespace == other.widthIncludingTrailingWhitespace && self.height == other.height && self.layoutWidth == other.layoutWidth && self.layoutHeight == other.layoutHeight && self.maxBidiReorderingDepth == other.maxBidiReorderingDepth && self.lineCount == other.lineCount
2878     }
2879 }
2880 impl ::std::cmp::Eq for DWRITE_TEXT_METRICS {}
2881 unsafe impl ::windows::runtime::Abi for DWRITE_TEXT_METRICS {
2882     type Abi = Self;
2883     type DefaultType = Self;
2884 }
2885 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2886 #[repr(C)]
2887 pub struct DWRITE_TEXT_METRICS1 {
2888     pub Base: DWRITE_TEXT_METRICS,
2889     pub heightIncludingTrailingWhitespace: f32,
2890 }
2891 impl DWRITE_TEXT_METRICS1 {}
2892 impl ::std::default::Default for DWRITE_TEXT_METRICS1 {
default() -> Self2893     fn default() -> Self {
2894         unsafe { ::std::mem::zeroed() }
2895     }
2896 }
2897 impl ::std::fmt::Debug for DWRITE_TEXT_METRICS1 {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2898     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2899         fmt.debug_struct("DWRITE_TEXT_METRICS1").field("Base", &self.Base).field("heightIncludingTrailingWhitespace", &self.heightIncludingTrailingWhitespace).finish()
2900     }
2901 }
2902 impl ::std::cmp::PartialEq for DWRITE_TEXT_METRICS1 {
eq(&self, other: &Self) -> bool2903     fn eq(&self, other: &Self) -> bool {
2904         self.Base == other.Base && self.heightIncludingTrailingWhitespace == other.heightIncludingTrailingWhitespace
2905     }
2906 }
2907 impl ::std::cmp::Eq for DWRITE_TEXT_METRICS1 {}
2908 unsafe impl ::windows::runtime::Abi for DWRITE_TEXT_METRICS1 {
2909     type Abi = Self;
2910     type DefaultType = Self;
2911 }
2912 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2913 #[repr(C)]
2914 pub struct DWRITE_TEXT_RANGE {
2915     pub startPosition: u32,
2916     pub length: u32,
2917 }
2918 impl DWRITE_TEXT_RANGE {}
2919 impl ::std::default::Default for DWRITE_TEXT_RANGE {
default() -> Self2920     fn default() -> Self {
2921         unsafe { ::std::mem::zeroed() }
2922     }
2923 }
2924 impl ::std::fmt::Debug for DWRITE_TEXT_RANGE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2925     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2926         fmt.debug_struct("DWRITE_TEXT_RANGE").field("startPosition", &self.startPosition).field("length", &self.length).finish()
2927     }
2928 }
2929 impl ::std::cmp::PartialEq for DWRITE_TEXT_RANGE {
eq(&self, other: &Self) -> bool2930     fn eq(&self, other: &Self) -> bool {
2931         self.startPosition == other.startPosition && self.length == other.length
2932     }
2933 }
2934 impl ::std::cmp::Eq for DWRITE_TEXT_RANGE {}
2935 unsafe impl ::windows::runtime::Abi for DWRITE_TEXT_RANGE {
2936     type Abi = Self;
2937     type DefaultType = Self;
2938 }
2939 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2940 #[repr(C)]
2941 pub struct DWRITE_TRIMMING {
2942     pub granularity: DWRITE_TRIMMING_GRANULARITY,
2943     pub delimiter: u32,
2944     pub delimiterCount: u32,
2945 }
2946 impl DWRITE_TRIMMING {}
2947 impl ::std::default::Default for DWRITE_TRIMMING {
default() -> Self2948     fn default() -> Self {
2949         unsafe { ::std::mem::zeroed() }
2950     }
2951 }
2952 impl ::std::fmt::Debug for DWRITE_TRIMMING {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2953     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2954         fmt.debug_struct("DWRITE_TRIMMING").field("granularity", &self.granularity).field("delimiter", &self.delimiter).field("delimiterCount", &self.delimiterCount).finish()
2955     }
2956 }
2957 impl ::std::cmp::PartialEq for DWRITE_TRIMMING {
eq(&self, other: &Self) -> bool2958     fn eq(&self, other: &Self) -> bool {
2959         self.granularity == other.granularity && self.delimiter == other.delimiter && self.delimiterCount == other.delimiterCount
2960     }
2961 }
2962 impl ::std::cmp::Eq for DWRITE_TRIMMING {}
2963 unsafe impl ::windows::runtime::Abi for DWRITE_TRIMMING {
2964     type Abi = Self;
2965     type DefaultType = Self;
2966 }
2967 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2968 #[repr(transparent)]
2969 pub struct DWRITE_TRIMMING_GRANULARITY(pub i32);
2970 pub const DWRITE_TRIMMING_GRANULARITY_NONE: DWRITE_TRIMMING_GRANULARITY = DWRITE_TRIMMING_GRANULARITY(0i32);
2971 pub const DWRITE_TRIMMING_GRANULARITY_CHARACTER: DWRITE_TRIMMING_GRANULARITY = DWRITE_TRIMMING_GRANULARITY(1i32);
2972 pub const DWRITE_TRIMMING_GRANULARITY_WORD: DWRITE_TRIMMING_GRANULARITY = DWRITE_TRIMMING_GRANULARITY(2i32);
2973 impl ::std::convert::From<i32> for DWRITE_TRIMMING_GRANULARITY {
from(value: i32) -> Self2974     fn from(value: i32) -> Self {
2975         Self(value)
2976     }
2977 }
2978 unsafe impl ::windows::runtime::Abi for DWRITE_TRIMMING_GRANULARITY {
2979     type Abi = Self;
2980     type DefaultType = Self;
2981 }
2982 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2983 #[repr(C)]
2984 pub struct DWRITE_TYPOGRAPHIC_FEATURES {
2985     pub features: *mut DWRITE_FONT_FEATURE,
2986     pub featureCount: u32,
2987 }
2988 impl DWRITE_TYPOGRAPHIC_FEATURES {}
2989 impl ::std::default::Default for DWRITE_TYPOGRAPHIC_FEATURES {
default() -> Self2990     fn default() -> Self {
2991         unsafe { ::std::mem::zeroed() }
2992     }
2993 }
2994 impl ::std::fmt::Debug for DWRITE_TYPOGRAPHIC_FEATURES {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2995     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2996         fmt.debug_struct("DWRITE_TYPOGRAPHIC_FEATURES").field("features", &self.features).field("featureCount", &self.featureCount).finish()
2997     }
2998 }
2999 impl ::std::cmp::PartialEq for DWRITE_TYPOGRAPHIC_FEATURES {
eq(&self, other: &Self) -> bool3000     fn eq(&self, other: &Self) -> bool {
3001         self.features == other.features && self.featureCount == other.featureCount
3002     }
3003 }
3004 impl ::std::cmp::Eq for DWRITE_TYPOGRAPHIC_FEATURES {}
3005 unsafe impl ::windows::runtime::Abi for DWRITE_TYPOGRAPHIC_FEATURES {
3006     type Abi = Self;
3007     type DefaultType = Self;
3008 }
3009 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3010 #[repr(C)]
3011 #[cfg(feature = "Win32_Foundation")]
3012 pub struct DWRITE_UNDERLINE {
3013     pub width: f32,
3014     pub thickness: f32,
3015     pub offset: f32,
3016     pub runHeight: f32,
3017     pub readingDirection: DWRITE_READING_DIRECTION,
3018     pub flowDirection: DWRITE_FLOW_DIRECTION,
3019     pub localeName: super::super::Foundation::PWSTR,
3020     pub measuringMode: DWRITE_MEASURING_MODE,
3021 }
3022 #[cfg(feature = "Win32_Foundation")]
3023 impl DWRITE_UNDERLINE {}
3024 #[cfg(feature = "Win32_Foundation")]
3025 impl ::std::default::Default for DWRITE_UNDERLINE {
default() -> Self3026     fn default() -> Self {
3027         unsafe { ::std::mem::zeroed() }
3028     }
3029 }
3030 #[cfg(feature = "Win32_Foundation")]
3031 impl ::std::fmt::Debug for DWRITE_UNDERLINE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3032     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3033         fmt.debug_struct("DWRITE_UNDERLINE")
3034             .field("width", &self.width)
3035             .field("thickness", &self.thickness)
3036             .field("offset", &self.offset)
3037             .field("runHeight", &self.runHeight)
3038             .field("readingDirection", &self.readingDirection)
3039             .field("flowDirection", &self.flowDirection)
3040             .field("localeName", &self.localeName)
3041             .field("measuringMode", &self.measuringMode)
3042             .finish()
3043     }
3044 }
3045 #[cfg(feature = "Win32_Foundation")]
3046 impl ::std::cmp::PartialEq for DWRITE_UNDERLINE {
eq(&self, other: &Self) -> bool3047     fn eq(&self, other: &Self) -> bool {
3048         self.width == other.width && self.thickness == other.thickness && self.offset == other.offset && self.runHeight == other.runHeight && self.readingDirection == other.readingDirection && self.flowDirection == other.flowDirection && self.localeName == other.localeName && self.measuringMode == other.measuringMode
3049     }
3050 }
3051 #[cfg(feature = "Win32_Foundation")]
3052 impl ::std::cmp::Eq for DWRITE_UNDERLINE {}
3053 #[cfg(feature = "Win32_Foundation")]
3054 unsafe impl ::windows::runtime::Abi for DWRITE_UNDERLINE {
3055     type Abi = Self;
3056     type DefaultType = Self;
3057 }
3058 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3059 #[repr(C)]
3060 pub struct DWRITE_UNICODE_RANGE {
3061     pub first: u32,
3062     pub last: u32,
3063 }
3064 impl DWRITE_UNICODE_RANGE {}
3065 impl ::std::default::Default for DWRITE_UNICODE_RANGE {
default() -> Self3066     fn default() -> Self {
3067         unsafe { ::std::mem::zeroed() }
3068     }
3069 }
3070 impl ::std::fmt::Debug for DWRITE_UNICODE_RANGE {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3071     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3072         fmt.debug_struct("DWRITE_UNICODE_RANGE").field("first", &self.first).field("last", &self.last).finish()
3073     }
3074 }
3075 impl ::std::cmp::PartialEq for DWRITE_UNICODE_RANGE {
eq(&self, other: &Self) -> bool3076     fn eq(&self, other: &Self) -> bool {
3077         self.first == other.first && self.last == other.last
3078     }
3079 }
3080 impl ::std::cmp::Eq for DWRITE_UNICODE_RANGE {}
3081 unsafe impl ::windows::runtime::Abi for DWRITE_UNICODE_RANGE {
3082     type Abi = Self;
3083     type DefaultType = Self;
3084 }
3085 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3086 #[repr(transparent)]
3087 pub struct DWRITE_VERTICAL_GLYPH_ORIENTATION(pub i32);
3088 pub const DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT: DWRITE_VERTICAL_GLYPH_ORIENTATION = DWRITE_VERTICAL_GLYPH_ORIENTATION(0i32);
3089 pub const DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED: DWRITE_VERTICAL_GLYPH_ORIENTATION = DWRITE_VERTICAL_GLYPH_ORIENTATION(1i32);
3090 impl ::std::convert::From<i32> for DWRITE_VERTICAL_GLYPH_ORIENTATION {
from(value: i32) -> Self3091     fn from(value: i32) -> Self {
3092         Self(value)
3093     }
3094 }
3095 unsafe impl ::windows::runtime::Abi for DWRITE_VERTICAL_GLYPH_ORIENTATION {
3096     type Abi = Self;
3097     type DefaultType = Self;
3098 }
3099 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3100 #[repr(transparent)]
3101 pub struct DWRITE_WORD_WRAPPING(pub i32);
3102 pub const DWRITE_WORD_WRAPPING_WRAP: DWRITE_WORD_WRAPPING = DWRITE_WORD_WRAPPING(0i32);
3103 pub const DWRITE_WORD_WRAPPING_NO_WRAP: DWRITE_WORD_WRAPPING = DWRITE_WORD_WRAPPING(1i32);
3104 pub const DWRITE_WORD_WRAPPING_EMERGENCY_BREAK: DWRITE_WORD_WRAPPING = DWRITE_WORD_WRAPPING(2i32);
3105 pub const DWRITE_WORD_WRAPPING_WHOLE_WORD: DWRITE_WORD_WRAPPING = DWRITE_WORD_WRAPPING(3i32);
3106 pub const DWRITE_WORD_WRAPPING_CHARACTER: DWRITE_WORD_WRAPPING = DWRITE_WORD_WRAPPING(4i32);
3107 impl ::std::convert::From<i32> for DWRITE_WORD_WRAPPING {
from(value: i32) -> Self3108     fn from(value: i32) -> Self {
3109         Self(value)
3110     }
3111 }
3112 unsafe impl ::windows::runtime::Abi for DWRITE_WORD_WRAPPING {
3113     type Abi = Self;
3114     type DefaultType = Self;
3115 }
3116 #[inline]
DWriteCreateFactory(factorytype: DWRITE_FACTORY_TYPE, iid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<::windows::runtime::IUnknown>3117 pub unsafe fn DWriteCreateFactory(factorytype: DWRITE_FACTORY_TYPE, iid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
3118     #[cfg(windows)]
3119     {
3120         #[link(name = "windows")]
3121         extern "system" {
3122             fn DWriteCreateFactory(factorytype: DWRITE_FACTORY_TYPE, iid: *const ::windows::runtime::GUID, factory: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
3123         }
3124         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3125         DWriteCreateFactory(::std::mem::transmute(factorytype), ::std::mem::transmute(iid), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
3126     }
3127     #[cfg(not(windows))]
3128     unimplemented!("Unsupported target OS");
3129 }
3130 pub const FACILITY_DWRITE: u32 = 2200u32;
3131 #[repr(transparent)]
3132 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3133 pub struct IDWriteAsyncResult(::windows::runtime::IUnknown);
3134 impl IDWriteAsyncResult {
3135     #[cfg(feature = "Win32_Foundation")]
GetWaitHandle(&self) -> super::super::Foundation::HANDLE3136     pub unsafe fn GetWaitHandle(&self) -> super::super::Foundation::HANDLE {
3137         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
3138     }
GetResult(&self) -> ::windows::runtime::Result<()>3139     pub unsafe fn GetResult(&self) -> ::windows::runtime::Result<()> {
3140         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)).ok()
3141     }
3142 }
3143 unsafe impl ::windows::runtime::Interface for IDWriteAsyncResult {
3144     type Vtable = IDWriteAsyncResult_abi;
3145     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3458595069, 34363, 19731, [150, 81, 193, 248, 141, 199, 63, 226]);
3146 }
3147 impl ::std::convert::From<IDWriteAsyncResult> for ::windows::runtime::IUnknown {
from(value: IDWriteAsyncResult) -> Self3148     fn from(value: IDWriteAsyncResult) -> Self {
3149         unsafe { ::std::mem::transmute(value) }
3150     }
3151 }
3152 impl ::std::convert::From<&IDWriteAsyncResult> for ::windows::runtime::IUnknown {
from(value: &IDWriteAsyncResult) -> Self3153     fn from(value: &IDWriteAsyncResult) -> Self {
3154         ::std::convert::From::from(::std::clone::Clone::clone(value))
3155     }
3156 }
3157 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteAsyncResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3158     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3159         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3160     }
3161 }
3162 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteAsyncResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3163     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3164         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3165     }
3166 }
3167 #[repr(C)]
3168 #[doc(hidden)]
3169 pub struct IDWriteAsyncResult_abi(
3170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3171     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3173     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
3174     #[cfg(not(feature = "Win32_Foundation"))] usize,
3175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3176 );
3177 #[repr(transparent)]
3178 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3179 pub struct IDWriteBitmapRenderTarget(::windows::runtime::IUnknown);
3180 impl IDWriteBitmapRenderTarget {
3181     #[cfg(feature = "Win32_Foundation")]
DrawGlyphRun<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, renderingparams: Param4, textcolor: u32) -> ::windows::runtime::Result<super::super::Foundation::RECT>3182     pub unsafe fn DrawGlyphRun<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, renderingparams: Param4, textcolor: u32) -> ::windows::runtime::Result<super::super::Foundation::RECT> {
3183         let mut result__: <super::super::Foundation::RECT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3184         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(measuringmode), ::std::mem::transmute(glyphrun), renderingparams.into_param().abi(), ::std::mem::transmute(textcolor), &mut result__).from_abi::<super::super::Foundation::RECT>(result__)
3185     }
3186     #[cfg(feature = "Win32_Graphics_Gdi")]
GetMemoryDC(&self) -> super::Gdi::HDC3187     pub unsafe fn GetMemoryDC(&self) -> super::Gdi::HDC {
3188         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
3189     }
GetPixelsPerDip(&self) -> f323190     pub unsafe fn GetPixelsPerDip(&self) -> f32 {
3191         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
3192     }
SetPixelsPerDip(&self, pixelsperdip: f32) -> ::windows::runtime::Result<()>3193     pub unsafe fn SetPixelsPerDip(&self, pixelsperdip: f32) -> ::windows::runtime::Result<()> {
3194         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pixelsperdip)).ok()
3195     }
GetCurrentTransform(&self) -> ::windows::runtime::Result<DWRITE_MATRIX>3196     pub unsafe fn GetCurrentTransform(&self) -> ::windows::runtime::Result<DWRITE_MATRIX> {
3197         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3198         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
3199     }
SetCurrentTransform(&self, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<()>3200     pub unsafe fn SetCurrentTransform(&self, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<()> {
3201         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(transform)).ok()
3202     }
3203     #[cfg(feature = "Win32_Foundation")]
GetSize(&self) -> ::windows::runtime::Result<super::super::Foundation::SIZE>3204     pub unsafe fn GetSize(&self) -> ::windows::runtime::Result<super::super::Foundation::SIZE> {
3205         let mut result__: <super::super::Foundation::SIZE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3206         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::SIZE>(result__)
3207     }
Resize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()>3208     pub unsafe fn Resize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
3209         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
3210     }
3211 }
3212 unsafe impl ::windows::runtime::Interface for IDWriteBitmapRenderTarget {
3213     type Vtable = IDWriteBitmapRenderTarget_abi;
3214     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1582969507, 36351, 18291, [159, 246, 6, 150, 234, 183, 114, 103]);
3215 }
3216 impl ::std::convert::From<IDWriteBitmapRenderTarget> for ::windows::runtime::IUnknown {
from(value: IDWriteBitmapRenderTarget) -> Self3217     fn from(value: IDWriteBitmapRenderTarget) -> Self {
3218         unsafe { ::std::mem::transmute(value) }
3219     }
3220 }
3221 impl ::std::convert::From<&IDWriteBitmapRenderTarget> for ::windows::runtime::IUnknown {
from(value: &IDWriteBitmapRenderTarget) -> Self3222     fn from(value: &IDWriteBitmapRenderTarget) -> Self {
3223         ::std::convert::From::from(::std::clone::Clone::clone(value))
3224     }
3225 }
3226 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteBitmapRenderTarget {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3227     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3228         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3229     }
3230 }
3231 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteBitmapRenderTarget {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3232     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3233         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3234     }
3235 }
3236 #[repr(C)]
3237 #[doc(hidden)]
3238 pub struct IDWriteBitmapRenderTarget_abi(
3239     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3240     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3241     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3242     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, renderingparams: ::windows::runtime::RawPtr, textcolor: u32, blackboxrect: *mut super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
3243     #[cfg(not(feature = "Win32_Foundation"))] usize,
3244     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::Gdi::HDC,
3245     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
3246     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
3247     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pixelsperdip: f32) -> ::windows::runtime::HRESULT,
3248     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
3249     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: *const DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
3250     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, size: *mut super::super::Foundation::SIZE) -> ::windows::runtime::HRESULT,
3251     #[cfg(not(feature = "Win32_Foundation"))] usize,
3252     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
3253 );
3254 #[repr(transparent)]
3255 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3256 pub struct IDWriteBitmapRenderTarget1(::windows::runtime::IUnknown);
3257 impl IDWriteBitmapRenderTarget1 {
3258     #[cfg(feature = "Win32_Foundation")]
DrawGlyphRun<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, renderingparams: Param4, textcolor: u32) -> ::windows::runtime::Result<super::super::Foundation::RECT>3259     pub unsafe fn DrawGlyphRun<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, renderingparams: Param4, textcolor: u32) -> ::windows::runtime::Result<super::super::Foundation::RECT> {
3260         let mut result__: <super::super::Foundation::RECT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3261         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(measuringmode), ::std::mem::transmute(glyphrun), renderingparams.into_param().abi(), ::std::mem::transmute(textcolor), &mut result__).from_abi::<super::super::Foundation::RECT>(result__)
3262     }
3263     #[cfg(feature = "Win32_Graphics_Gdi")]
GetMemoryDC(&self) -> super::Gdi::HDC3264     pub unsafe fn GetMemoryDC(&self) -> super::Gdi::HDC {
3265         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
3266     }
GetPixelsPerDip(&self) -> f323267     pub unsafe fn GetPixelsPerDip(&self) -> f32 {
3268         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
3269     }
SetPixelsPerDip(&self, pixelsperdip: f32) -> ::windows::runtime::Result<()>3270     pub unsafe fn SetPixelsPerDip(&self, pixelsperdip: f32) -> ::windows::runtime::Result<()> {
3271         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pixelsperdip)).ok()
3272     }
GetCurrentTransform(&self) -> ::windows::runtime::Result<DWRITE_MATRIX>3273     pub unsafe fn GetCurrentTransform(&self) -> ::windows::runtime::Result<DWRITE_MATRIX> {
3274         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3275         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
3276     }
SetCurrentTransform(&self, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<()>3277     pub unsafe fn SetCurrentTransform(&self, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<()> {
3278         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(transform)).ok()
3279     }
3280     #[cfg(feature = "Win32_Foundation")]
GetSize(&self) -> ::windows::runtime::Result<super::super::Foundation::SIZE>3281     pub unsafe fn GetSize(&self) -> ::windows::runtime::Result<super::super::Foundation::SIZE> {
3282         let mut result__: <super::super::Foundation::SIZE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3283         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::SIZE>(result__)
3284     }
Resize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()>3285     pub unsafe fn Resize(&self, width: u32, height: u32) -> ::windows::runtime::Result<()> {
3286         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(width), ::std::mem::transmute(height)).ok()
3287     }
GetTextAntialiasMode(&self) -> DWRITE_TEXT_ANTIALIAS_MODE3288     pub unsafe fn GetTextAntialiasMode(&self) -> DWRITE_TEXT_ANTIALIAS_MODE {
3289         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
3290     }
SetTextAntialiasMode(&self, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE) -> ::windows::runtime::Result<()>3291     pub unsafe fn SetTextAntialiasMode(&self, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE) -> ::windows::runtime::Result<()> {
3292         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(antialiasmode)).ok()
3293     }
3294 }
3295 unsafe impl ::windows::runtime::Interface for IDWriteBitmapRenderTarget1 {
3296     type Vtable = IDWriteBitmapRenderTarget1_abi;
3297     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2032042648, 16115, 16944, [152, 128, 201, 189, 236, 196, 32, 100]);
3298 }
3299 impl ::std::convert::From<IDWriteBitmapRenderTarget1> for ::windows::runtime::IUnknown {
from(value: IDWriteBitmapRenderTarget1) -> Self3300     fn from(value: IDWriteBitmapRenderTarget1) -> Self {
3301         unsafe { ::std::mem::transmute(value) }
3302     }
3303 }
3304 impl ::std::convert::From<&IDWriteBitmapRenderTarget1> for ::windows::runtime::IUnknown {
from(value: &IDWriteBitmapRenderTarget1) -> Self3305     fn from(value: &IDWriteBitmapRenderTarget1) -> Self {
3306         ::std::convert::From::from(::std::clone::Clone::clone(value))
3307     }
3308 }
3309 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteBitmapRenderTarget1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3310     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3311         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3312     }
3313 }
3314 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteBitmapRenderTarget1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3315     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3316         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3317     }
3318 }
3319 impl ::std::convert::From<IDWriteBitmapRenderTarget1> for IDWriteBitmapRenderTarget {
from(value: IDWriteBitmapRenderTarget1) -> Self3320     fn from(value: IDWriteBitmapRenderTarget1) -> Self {
3321         unsafe { ::std::mem::transmute(value) }
3322     }
3323 }
3324 impl ::std::convert::From<&IDWriteBitmapRenderTarget1> for IDWriteBitmapRenderTarget {
from(value: &IDWriteBitmapRenderTarget1) -> Self3325     fn from(value: &IDWriteBitmapRenderTarget1) -> Self {
3326         ::std::convert::From::from(::std::clone::Clone::clone(value))
3327     }
3328 }
3329 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteBitmapRenderTarget> for IDWriteBitmapRenderTarget1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteBitmapRenderTarget>3330     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteBitmapRenderTarget> {
3331         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteBitmapRenderTarget>::into(self))
3332     }
3333 }
3334 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteBitmapRenderTarget> for &IDWriteBitmapRenderTarget1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteBitmapRenderTarget>3335     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteBitmapRenderTarget> {
3336         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteBitmapRenderTarget>::into(::std::clone::Clone::clone(self)))
3337     }
3338 }
3339 #[repr(C)]
3340 #[doc(hidden)]
3341 pub struct IDWriteBitmapRenderTarget1_abi(
3342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3345     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, renderingparams: ::windows::runtime::RawPtr, textcolor: u32, blackboxrect: *mut super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
3346     #[cfg(not(feature = "Win32_Foundation"))] usize,
3347     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::Gdi::HDC,
3348     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
3349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
3350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pixelsperdip: f32) -> ::windows::runtime::HRESULT,
3351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
3352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, transform: *const DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
3353     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, size: *mut super::super::Foundation::SIZE) -> ::windows::runtime::HRESULT,
3354     #[cfg(not(feature = "Win32_Foundation"))] usize,
3355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, width: u32, height: u32) -> ::windows::runtime::HRESULT,
3356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ANTIALIAS_MODE,
3357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE) -> ::windows::runtime::HRESULT,
3358 );
3359 #[repr(transparent)]
3360 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3361 pub struct IDWriteColorGlyphRunEnumerator(::windows::runtime::IUnknown);
3362 impl IDWriteColorGlyphRunEnumerator {
3363     #[cfg(feature = "Win32_Foundation")]
MoveNext(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL>3364     pub unsafe fn MoveNext(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
3365         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3366         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
3367     }
3368     #[cfg(feature = "Win32_Foundation")]
GetCurrentRun(&self) -> ::windows::runtime::Result<*mut DWRITE_COLOR_GLYPH_RUN>3369     pub unsafe fn GetCurrentRun(&self) -> ::windows::runtime::Result<*mut DWRITE_COLOR_GLYPH_RUN> {
3370         let mut result__: <*mut DWRITE_COLOR_GLYPH_RUN as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3371         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<*mut DWRITE_COLOR_GLYPH_RUN>(result__)
3372     }
3373 }
3374 unsafe impl ::windows::runtime::Interface for IDWriteColorGlyphRunEnumerator {
3375     type Vtable = IDWriteColorGlyphRunEnumerator_abi;
3376     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3542072855, 61783, 16802, [141, 36, 203, 119, 158, 5, 96, 232]);
3377 }
3378 impl ::std::convert::From<IDWriteColorGlyphRunEnumerator> for ::windows::runtime::IUnknown {
from(value: IDWriteColorGlyphRunEnumerator) -> Self3379     fn from(value: IDWriteColorGlyphRunEnumerator) -> Self {
3380         unsafe { ::std::mem::transmute(value) }
3381     }
3382 }
3383 impl ::std::convert::From<&IDWriteColorGlyphRunEnumerator> for ::windows::runtime::IUnknown {
from(value: &IDWriteColorGlyphRunEnumerator) -> Self3384     fn from(value: &IDWriteColorGlyphRunEnumerator) -> Self {
3385         ::std::convert::From::from(::std::clone::Clone::clone(value))
3386     }
3387 }
3388 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteColorGlyphRunEnumerator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3389     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3390         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3391     }
3392 }
3393 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteColorGlyphRunEnumerator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3394     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3395         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3396     }
3397 }
3398 #[repr(C)]
3399 #[doc(hidden)]
3400 pub struct IDWriteColorGlyphRunEnumerator_abi(
3401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3404     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasrun: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
3405     #[cfg(not(feature = "Win32_Foundation"))] usize,
3406     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorglyphrun: *mut *mut DWRITE_COLOR_GLYPH_RUN) -> ::windows::runtime::HRESULT,
3407     #[cfg(not(feature = "Win32_Foundation"))] usize,
3408 );
3409 #[repr(transparent)]
3410 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3411 pub struct IDWriteColorGlyphRunEnumerator1(::windows::runtime::IUnknown);
3412 impl IDWriteColorGlyphRunEnumerator1 {
3413     #[cfg(feature = "Win32_Foundation")]
MoveNext(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL>3414     pub unsafe fn MoveNext(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
3415         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3416         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
3417     }
3418     #[cfg(feature = "Win32_Foundation")]
GetCurrentRun(&self) -> ::windows::runtime::Result<*mut DWRITE_COLOR_GLYPH_RUN>3419     pub unsafe fn GetCurrentRun(&self) -> ::windows::runtime::Result<*mut DWRITE_COLOR_GLYPH_RUN> {
3420         let mut result__: <*mut DWRITE_COLOR_GLYPH_RUN as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3421         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<*mut DWRITE_COLOR_GLYPH_RUN>(result__)
3422     }
3423     #[cfg(feature = "Win32_Foundation")]
GetCurrentRun2(&self) -> ::windows::runtime::Result<*mut DWRITE_COLOR_GLYPH_RUN1>3424     pub unsafe fn GetCurrentRun2(&self) -> ::windows::runtime::Result<*mut DWRITE_COLOR_GLYPH_RUN1> {
3425         let mut result__: <*mut DWRITE_COLOR_GLYPH_RUN1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3426         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<*mut DWRITE_COLOR_GLYPH_RUN1>(result__)
3427     }
3428 }
3429 unsafe impl ::windows::runtime::Interface for IDWriteColorGlyphRunEnumerator1 {
3430     type Vtable = IDWriteColorGlyphRunEnumerator1_abi;
3431     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2086635226, 51105, 20229, [184, 225, 85, 161, 121, 254, 90, 53]);
3432 }
3433 impl ::std::convert::From<IDWriteColorGlyphRunEnumerator1> for ::windows::runtime::IUnknown {
from(value: IDWriteColorGlyphRunEnumerator1) -> Self3434     fn from(value: IDWriteColorGlyphRunEnumerator1) -> Self {
3435         unsafe { ::std::mem::transmute(value) }
3436     }
3437 }
3438 impl ::std::convert::From<&IDWriteColorGlyphRunEnumerator1> for ::windows::runtime::IUnknown {
from(value: &IDWriteColorGlyphRunEnumerator1) -> Self3439     fn from(value: &IDWriteColorGlyphRunEnumerator1) -> Self {
3440         ::std::convert::From::from(::std::clone::Clone::clone(value))
3441     }
3442 }
3443 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteColorGlyphRunEnumerator1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3444     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3445         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3446     }
3447 }
3448 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteColorGlyphRunEnumerator1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3449     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3450         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3451     }
3452 }
3453 impl ::std::convert::From<IDWriteColorGlyphRunEnumerator1> for IDWriteColorGlyphRunEnumerator {
from(value: IDWriteColorGlyphRunEnumerator1) -> Self3454     fn from(value: IDWriteColorGlyphRunEnumerator1) -> Self {
3455         unsafe { ::std::mem::transmute(value) }
3456     }
3457 }
3458 impl ::std::convert::From<&IDWriteColorGlyphRunEnumerator1> for IDWriteColorGlyphRunEnumerator {
from(value: &IDWriteColorGlyphRunEnumerator1) -> Self3459     fn from(value: &IDWriteColorGlyphRunEnumerator1) -> Self {
3460         ::std::convert::From::from(::std::clone::Clone::clone(value))
3461     }
3462 }
3463 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteColorGlyphRunEnumerator> for IDWriteColorGlyphRunEnumerator1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteColorGlyphRunEnumerator>3464     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteColorGlyphRunEnumerator> {
3465         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteColorGlyphRunEnumerator>::into(self))
3466     }
3467 }
3468 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteColorGlyphRunEnumerator> for &IDWriteColorGlyphRunEnumerator1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteColorGlyphRunEnumerator>3469     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteColorGlyphRunEnumerator> {
3470         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteColorGlyphRunEnumerator>::into(::std::clone::Clone::clone(self)))
3471     }
3472 }
3473 #[repr(C)]
3474 #[doc(hidden)]
3475 pub struct IDWriteColorGlyphRunEnumerator1_abi(
3476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3479     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasrun: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
3480     #[cfg(not(feature = "Win32_Foundation"))] usize,
3481     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorglyphrun: *mut *mut DWRITE_COLOR_GLYPH_RUN) -> ::windows::runtime::HRESULT,
3482     #[cfg(not(feature = "Win32_Foundation"))] usize,
3483     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorglyphrun: *mut *mut DWRITE_COLOR_GLYPH_RUN1) -> ::windows::runtime::HRESULT,
3484     #[cfg(not(feature = "Win32_Foundation"))] usize,
3485 );
3486 #[repr(transparent)]
3487 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3488 pub struct IDWriteFactory(::windows::runtime::IUnknown);
3489 impl IDWriteFactory {
3490     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>3491     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
3492         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
3493     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>3494     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
3495         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3496         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
3497     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>3498     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
3499         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
3500     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>3501     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
3502         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
3503     }
3504     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>3505     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
3506         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3507         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
3508     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>3509     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
3510         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3511         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
3512     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>3513     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
3514         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3515         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
3516     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>3517     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3518         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3519         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3520     }
3521     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>3522     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3523         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3524         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3525     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>3526     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3527         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3528         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3529     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>3530     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
3531         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
3532     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>3533     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
3534         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
3535     }
3536     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>3537     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
3538         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3539         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
3540     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>3541     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
3542         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3543         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
3544     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>3545     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
3546         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3547         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
3548     }
3549     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>3550     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
3551         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3552         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
3553     }
3554     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>3555     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
3556         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3557         (::windows::runtime::Interface::vtable(self).19)(
3558             ::std::mem::transmute_copy(self),
3559             string.into_param().abi(),
3560             ::std::mem::transmute(stringlength),
3561             textformat.into_param().abi(),
3562             ::std::mem::transmute(layoutwidth),
3563             ::std::mem::transmute(layoutheight),
3564             ::std::mem::transmute(pixelsperdip),
3565             ::std::mem::transmute(transform),
3566             usegdinatural.into_param().abi(),
3567             &mut result__,
3568         )
3569         .from_abi::<IDWriteTextLayout>(result__)
3570     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>3571     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
3572         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3573         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
3574     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>3575     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
3576         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3577         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
3578     }
3579     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>3580     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
3581         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3582         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
3583     }
3584     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>3585     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
3586         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3587         (::windows::runtime::Interface::vtable(self).23)(
3588             ::std::mem::transmute_copy(self),
3589             ::std::mem::transmute(glyphrun),
3590             ::std::mem::transmute(pixelsperdip),
3591             ::std::mem::transmute(transform),
3592             ::std::mem::transmute(renderingmode),
3593             ::std::mem::transmute(measuringmode),
3594             ::std::mem::transmute(baselineoriginx),
3595             ::std::mem::transmute(baselineoriginy),
3596             &mut result__,
3597         )
3598         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
3599     }
3600 }
3601 unsafe impl ::windows::runtime::Interface for IDWriteFactory {
3602     type Vtable = IDWriteFactory_abi;
3603     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3092901466, 55352, 19291, [162, 232, 26, 220, 125, 147, 219, 72]);
3604 }
3605 impl ::std::convert::From<IDWriteFactory> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory) -> Self3606     fn from(value: IDWriteFactory) -> Self {
3607         unsafe { ::std::mem::transmute(value) }
3608     }
3609 }
3610 impl ::std::convert::From<&IDWriteFactory> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory) -> Self3611     fn from(value: &IDWriteFactory) -> Self {
3612         ::std::convert::From::from(::std::clone::Clone::clone(value))
3613     }
3614 }
3615 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3616     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3617         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3618     }
3619 }
3620 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3621     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3622         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3623     }
3624 }
3625 #[repr(C)]
3626 #[doc(hidden)]
3627 pub struct IDWriteFactory_abi(
3628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3631     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
3632     #[cfg(not(feature = "Win32_Foundation"))] usize,
3633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3636     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3637     #[cfg(not(feature = "Win32_Foundation"))] usize,
3638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3641     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3642     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
3643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3646     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3647     #[cfg(not(feature = "Win32_Foundation"))] usize,
3648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3650     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3651     #[cfg(not(feature = "Win32_Foundation"))] usize,
3652     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3653     #[cfg(not(feature = "Win32_Foundation"))] usize,
3654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3655     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3656     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3657     #[cfg(not(feature = "Win32_Foundation"))] usize,
3658     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3659     #[cfg(not(feature = "Win32_Foundation"))] usize,
3660 );
3661 #[repr(transparent)]
3662 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3663 pub struct IDWriteFactory1(::windows::runtime::IUnknown);
3664 impl IDWriteFactory1 {
3665     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>3666     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
3667         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
3668     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>3669     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
3670         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3671         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
3672     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>3673     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
3674         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
3675     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>3676     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
3677         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
3678     }
3679     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>3680     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
3681         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3682         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
3683     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>3684     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
3685         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3686         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
3687     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>3688     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
3689         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3690         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
3691     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>3692     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3693         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3694         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3695     }
3696     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>3697     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3698         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3699         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3700     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>3701     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3702         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3703         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3704     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>3705     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
3706         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
3707     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>3708     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
3709         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
3710     }
3711     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>3712     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
3713         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3714         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
3715     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>3716     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
3717         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3718         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
3719     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>3720     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
3721         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3722         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
3723     }
3724     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>3725     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
3726         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3727         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
3728     }
3729     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>3730     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
3731         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3732         (::windows::runtime::Interface::vtable(self).19)(
3733             ::std::mem::transmute_copy(self),
3734             string.into_param().abi(),
3735             ::std::mem::transmute(stringlength),
3736             textformat.into_param().abi(),
3737             ::std::mem::transmute(layoutwidth),
3738             ::std::mem::transmute(layoutheight),
3739             ::std::mem::transmute(pixelsperdip),
3740             ::std::mem::transmute(transform),
3741             usegdinatural.into_param().abi(),
3742             &mut result__,
3743         )
3744         .from_abi::<IDWriteTextLayout>(result__)
3745     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>3746     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
3747         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3748         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
3749     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>3750     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
3751         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3752         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
3753     }
3754     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>3755     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
3756         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3757         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
3758     }
3759     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>3760     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
3761         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3762         (::windows::runtime::Interface::vtable(self).23)(
3763             ::std::mem::transmute_copy(self),
3764             ::std::mem::transmute(glyphrun),
3765             ::std::mem::transmute(pixelsperdip),
3766             ::std::mem::transmute(transform),
3767             ::std::mem::transmute(renderingmode),
3768             ::std::mem::transmute(measuringmode),
3769             ::std::mem::transmute(baselineoriginx),
3770             ::std::mem::transmute(baselineoriginy),
3771             &mut result__,
3772         )
3773         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
3774     }
3775     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>3776     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
3777         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
3778     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>3779     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
3780         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3781         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
3782     }
3783 }
3784 unsafe impl ::windows::runtime::Interface for IDWriteFactory1 {
3785     type Vtable = IDWriteFactory1_abi;
3786     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(811020185, 56006, 16859, [161, 110, 4, 134, 48, 126, 96, 106]);
3787 }
3788 impl ::std::convert::From<IDWriteFactory1> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory1) -> Self3789     fn from(value: IDWriteFactory1) -> Self {
3790         unsafe { ::std::mem::transmute(value) }
3791     }
3792 }
3793 impl ::std::convert::From<&IDWriteFactory1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory1) -> Self3794     fn from(value: &IDWriteFactory1) -> Self {
3795         ::std::convert::From::from(::std::clone::Clone::clone(value))
3796     }
3797 }
3798 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3799     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3800         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3801     }
3802 }
3803 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3804     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3805         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3806     }
3807 }
3808 impl ::std::convert::From<IDWriteFactory1> for IDWriteFactory {
from(value: IDWriteFactory1) -> Self3809     fn from(value: IDWriteFactory1) -> Self {
3810         unsafe { ::std::mem::transmute(value) }
3811     }
3812 }
3813 impl ::std::convert::From<&IDWriteFactory1> for IDWriteFactory {
from(value: &IDWriteFactory1) -> Self3814     fn from(value: &IDWriteFactory1) -> Self {
3815         ::std::convert::From::from(::std::clone::Clone::clone(value))
3816     }
3817 }
3818 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>3819     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
3820         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
3821     }
3822 }
3823 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>3824     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
3825         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
3826     }
3827 }
3828 #[repr(C)]
3829 #[doc(hidden)]
3830 pub struct IDWriteFactory1_abi(
3831     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
3834     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
3835     #[cfg(not(feature = "Win32_Foundation"))] usize,
3836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3839     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3840     #[cfg(not(feature = "Win32_Foundation"))] usize,
3841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3844     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3845     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
3846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3849     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3850     #[cfg(not(feature = "Win32_Foundation"))] usize,
3851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3853     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3854     #[cfg(not(feature = "Win32_Foundation"))] usize,
3855     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3856     #[cfg(not(feature = "Win32_Foundation"))] usize,
3857     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3858     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3859     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3860     #[cfg(not(feature = "Win32_Foundation"))] usize,
3861     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3862     #[cfg(not(feature = "Win32_Foundation"))] usize,
3863     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
3864     #[cfg(not(feature = "Win32_Foundation"))] usize,
3865     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
3866 );
3867 #[repr(transparent)]
3868 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3869 pub struct IDWriteFactory2(::windows::runtime::IUnknown);
3870 impl IDWriteFactory2 {
3871     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>3872     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
3873         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
3874     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>3875     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
3876         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3877         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
3878     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>3879     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
3880         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
3881     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>3882     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
3883         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
3884     }
3885     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>3886     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
3887         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3888         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
3889     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>3890     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
3891         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3892         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
3893     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>3894     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
3895         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3896         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
3897     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>3898     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3899         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3900         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3901     }
3902     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>3903     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3904         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3905         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3906     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>3907     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
3908         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3909         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
3910     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>3911     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
3912         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
3913     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>3914     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
3915         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
3916     }
3917     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>3918     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
3919         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3920         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
3921     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>3922     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
3923         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3924         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
3925     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>3926     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
3927         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3928         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
3929     }
3930     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>3931     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
3932         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3933         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
3934     }
3935     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>3936     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
3937         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3938         (::windows::runtime::Interface::vtable(self).19)(
3939             ::std::mem::transmute_copy(self),
3940             string.into_param().abi(),
3941             ::std::mem::transmute(stringlength),
3942             textformat.into_param().abi(),
3943             ::std::mem::transmute(layoutwidth),
3944             ::std::mem::transmute(layoutheight),
3945             ::std::mem::transmute(pixelsperdip),
3946             ::std::mem::transmute(transform),
3947             usegdinatural.into_param().abi(),
3948             &mut result__,
3949         )
3950         .from_abi::<IDWriteTextLayout>(result__)
3951     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>3952     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
3953         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3954         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
3955     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>3956     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
3957         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3958         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
3959     }
3960     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>3961     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
3962         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3963         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
3964     }
3965     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>3966     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
3967         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3968         (::windows::runtime::Interface::vtable(self).23)(
3969             ::std::mem::transmute_copy(self),
3970             ::std::mem::transmute(glyphrun),
3971             ::std::mem::transmute(pixelsperdip),
3972             ::std::mem::transmute(transform),
3973             ::std::mem::transmute(renderingmode),
3974             ::std::mem::transmute(measuringmode),
3975             ::std::mem::transmute(baselineoriginx),
3976             ::std::mem::transmute(baselineoriginy),
3977             &mut result__,
3978         )
3979         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
3980     }
3981     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>3982     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
3983         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
3984     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>3985     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
3986         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3987         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
3988     }
GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>3989     pub unsafe fn GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
3990         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3991         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
3992     }
CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder>3993     pub unsafe fn CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder> {
3994         let mut result__: <IDWriteFontFallbackBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
3995         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallbackBuilder>(result__)
3996     }
3997     #[cfg(feature = "Win32_Foundation")]
TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator>3998     pub unsafe fn TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator> {
3999         let mut result__: <IDWriteColorGlyphRunEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4000         (::windows::runtime::Interface::vtable(self).28)(
4001             ::std::mem::transmute_copy(self),
4002             ::std::mem::transmute(baselineoriginx),
4003             ::std::mem::transmute(baselineoriginy),
4004             ::std::mem::transmute(glyphrun),
4005             ::std::mem::transmute(glyphrundescription),
4006             ::std::mem::transmute(measuringmode),
4007             ::std::mem::transmute(worldtodevicetransform),
4008             ::std::mem::transmute(colorpaletteindex),
4009             &mut result__,
4010         )
4011         .from_abi::<IDWriteColorGlyphRunEnumerator>(result__)
4012     }
CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2>4013     pub unsafe fn CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2> {
4014         let mut result__: <IDWriteRenderingParams2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4015         (::windows::runtime::Interface::vtable(self).29)(
4016             ::std::mem::transmute_copy(self),
4017             ::std::mem::transmute(gamma),
4018             ::std::mem::transmute(enhancedcontrast),
4019             ::std::mem::transmute(grayscaleenhancedcontrast),
4020             ::std::mem::transmute(cleartypelevel),
4021             ::std::mem::transmute(pixelgeometry),
4022             ::std::mem::transmute(renderingmode),
4023             ::std::mem::transmute(gridfitmode),
4024             &mut result__,
4025         )
4026         .from_abi::<IDWriteRenderingParams2>(result__)
4027     }
4028     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4029     pub unsafe fn CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4030         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4031         (::windows::runtime::Interface::vtable(self).30)(
4032             ::std::mem::transmute_copy(self),
4033             ::std::mem::transmute(glyphrun),
4034             ::std::mem::transmute(transform),
4035             ::std::mem::transmute(renderingmode),
4036             ::std::mem::transmute(measuringmode),
4037             ::std::mem::transmute(gridfitmode),
4038             ::std::mem::transmute(antialiasmode),
4039             ::std::mem::transmute(baselineoriginx),
4040             ::std::mem::transmute(baselineoriginy),
4041             &mut result__,
4042         )
4043         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4044     }
4045 }
4046 unsafe impl ::windows::runtime::Interface for IDWriteFactory2 {
4047     type Vtable = IDWriteFactory2_abi;
4048     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(70909024, 51780, 18836, [141, 238, 58, 154, 247, 183, 50, 236]);
4049 }
4050 impl ::std::convert::From<IDWriteFactory2> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory2) -> Self4051     fn from(value: IDWriteFactory2) -> Self {
4052         unsafe { ::std::mem::transmute(value) }
4053     }
4054 }
4055 impl ::std::convert::From<&IDWriteFactory2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory2) -> Self4056     fn from(value: &IDWriteFactory2) -> Self {
4057         ::std::convert::From::from(::std::clone::Clone::clone(value))
4058     }
4059 }
4060 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4061     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4062         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4063     }
4064 }
4065 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4066     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4067         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4068     }
4069 }
4070 impl ::std::convert::From<IDWriteFactory2> for IDWriteFactory1 {
from(value: IDWriteFactory2) -> Self4071     fn from(value: IDWriteFactory2) -> Self {
4072         unsafe { ::std::mem::transmute(value) }
4073     }
4074 }
4075 impl ::std::convert::From<&IDWriteFactory2> for IDWriteFactory1 {
from(value: &IDWriteFactory2) -> Self4076     fn from(value: &IDWriteFactory2) -> Self {
4077         ::std::convert::From::from(::std::clone::Clone::clone(value))
4078     }
4079 }
4080 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for IDWriteFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>4081     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
4082         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(self))
4083     }
4084 }
4085 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for &IDWriteFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>4086     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
4087         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(::std::clone::Clone::clone(self)))
4088     }
4089 }
4090 impl ::std::convert::From<IDWriteFactory2> for IDWriteFactory {
from(value: IDWriteFactory2) -> Self4091     fn from(value: IDWriteFactory2) -> Self {
4092         unsafe { ::std::mem::transmute(value) }
4093     }
4094 }
4095 impl ::std::convert::From<&IDWriteFactory2> for IDWriteFactory {
from(value: &IDWriteFactory2) -> Self4096     fn from(value: &IDWriteFactory2) -> Self {
4097         ::std::convert::From::from(::std::clone::Clone::clone(value))
4098     }
4099 }
4100 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>4101     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
4102         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
4103     }
4104 }
4105 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>4106     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
4107         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
4108     }
4109 }
4110 #[repr(C)]
4111 #[doc(hidden)]
4112 pub struct IDWriteFactory2_abi(
4113     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4114     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4115     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4116     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4117     #[cfg(not(feature = "Win32_Foundation"))] usize,
4118     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4119     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4120     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4121     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4122     #[cfg(not(feature = "Win32_Foundation"))] usize,
4123     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4124     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4125     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4126     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4127     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
4128     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4129     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4130     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4131     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4132     #[cfg(not(feature = "Win32_Foundation"))] usize,
4133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4135     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4136     #[cfg(not(feature = "Win32_Foundation"))] usize,
4137     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4138     #[cfg(not(feature = "Win32_Foundation"))] usize,
4139     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4140     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4141     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4142     #[cfg(not(feature = "Win32_Foundation"))] usize,
4143     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4144     #[cfg(not(feature = "Win32_Foundation"))] usize,
4145     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4146     #[cfg(not(feature = "Win32_Foundation"))] usize,
4147     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallbackbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4150     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4151     #[cfg(not(feature = "Win32_Foundation"))] usize,
4152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4153     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4154     #[cfg(not(feature = "Win32_Foundation"))] usize,
4155 );
4156 #[repr(transparent)]
4157 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4158 pub struct IDWriteFactory3(::windows::runtime::IUnknown);
4159 impl IDWriteFactory3 {
4160     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>4161     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
4162         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4163     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>4164     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
4165         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4166         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
4167     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>4168     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
4169         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
4170     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>4171     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
4172         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
4173     }
4174     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>4175     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
4176         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4177         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
4178     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>4179     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
4180         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4181         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
4182     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>4183     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
4184         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4185         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
4186     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>4187     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
4188         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4189         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
4190     }
4191     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>4192     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
4193         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4194         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
4195     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>4196     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
4197         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4198         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
4199     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>4200     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
4201         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
4202     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>4203     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
4204         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
4205     }
4206     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>4207     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
4208         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4209         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
4210     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>4211     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
4212         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4213         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
4214     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>4215     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
4216         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4217         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
4218     }
4219     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>4220     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
4221         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4222         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
4223     }
4224     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>4225     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
4226         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4227         (::windows::runtime::Interface::vtable(self).19)(
4228             ::std::mem::transmute_copy(self),
4229             string.into_param().abi(),
4230             ::std::mem::transmute(stringlength),
4231             textformat.into_param().abi(),
4232             ::std::mem::transmute(layoutwidth),
4233             ::std::mem::transmute(layoutheight),
4234             ::std::mem::transmute(pixelsperdip),
4235             ::std::mem::transmute(transform),
4236             usegdinatural.into_param().abi(),
4237             &mut result__,
4238         )
4239         .from_abi::<IDWriteTextLayout>(result__)
4240     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>4241     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
4242         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4243         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
4244     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>4245     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
4246         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4247         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
4248     }
4249     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>4250     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
4251         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4252         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
4253     }
4254     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4255     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4256         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4257         (::windows::runtime::Interface::vtable(self).23)(
4258             ::std::mem::transmute_copy(self),
4259             ::std::mem::transmute(glyphrun),
4260             ::std::mem::transmute(pixelsperdip),
4261             ::std::mem::transmute(transform),
4262             ::std::mem::transmute(renderingmode),
4263             ::std::mem::transmute(measuringmode),
4264             ::std::mem::transmute(baselineoriginx),
4265             ::std::mem::transmute(baselineoriginy),
4266             &mut result__,
4267         )
4268         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4269     }
4270     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>4271     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
4272         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4273     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>4274     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
4275         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4276         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
4277     }
GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>4278     pub unsafe fn GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
4279         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4280         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
4281     }
CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder>4282     pub unsafe fn CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder> {
4283         let mut result__: <IDWriteFontFallbackBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4284         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallbackBuilder>(result__)
4285     }
4286     #[cfg(feature = "Win32_Foundation")]
TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator>4287     pub unsafe fn TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator> {
4288         let mut result__: <IDWriteColorGlyphRunEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4289         (::windows::runtime::Interface::vtable(self).28)(
4290             ::std::mem::transmute_copy(self),
4291             ::std::mem::transmute(baselineoriginx),
4292             ::std::mem::transmute(baselineoriginy),
4293             ::std::mem::transmute(glyphrun),
4294             ::std::mem::transmute(glyphrundescription),
4295             ::std::mem::transmute(measuringmode),
4296             ::std::mem::transmute(worldtodevicetransform),
4297             ::std::mem::transmute(colorpaletteindex),
4298             &mut result__,
4299         )
4300         .from_abi::<IDWriteColorGlyphRunEnumerator>(result__)
4301     }
CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2>4302     pub unsafe fn CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2> {
4303         let mut result__: <IDWriteRenderingParams2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4304         (::windows::runtime::Interface::vtable(self).29)(
4305             ::std::mem::transmute_copy(self),
4306             ::std::mem::transmute(gamma),
4307             ::std::mem::transmute(enhancedcontrast),
4308             ::std::mem::transmute(grayscaleenhancedcontrast),
4309             ::std::mem::transmute(cleartypelevel),
4310             ::std::mem::transmute(pixelgeometry),
4311             ::std::mem::transmute(renderingmode),
4312             ::std::mem::transmute(gridfitmode),
4313             &mut result__,
4314         )
4315         .from_abi::<IDWriteRenderingParams2>(result__)
4316     }
4317     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4318     pub unsafe fn CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4319         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4320         (::windows::runtime::Interface::vtable(self).30)(
4321             ::std::mem::transmute_copy(self),
4322             ::std::mem::transmute(glyphrun),
4323             ::std::mem::transmute(transform),
4324             ::std::mem::transmute(renderingmode),
4325             ::std::mem::transmute(measuringmode),
4326             ::std::mem::transmute(gridfitmode),
4327             ::std::mem::transmute(antialiasmode),
4328             ::std::mem::transmute(baselineoriginx),
4329             ::std::mem::transmute(baselineoriginy),
4330             &mut result__,
4331         )
4332         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4333     }
4334     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4335     pub unsafe fn CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4336         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4337         (::windows::runtime::Interface::vtable(self).31)(
4338             ::std::mem::transmute_copy(self),
4339             ::std::mem::transmute(glyphrun),
4340             ::std::mem::transmute(transform),
4341             ::std::mem::transmute(renderingmode),
4342             ::std::mem::transmute(measuringmode),
4343             ::std::mem::transmute(gridfitmode),
4344             ::std::mem::transmute(antialiasmode),
4345             ::std::mem::transmute(baselineoriginx),
4346             ::std::mem::transmute(baselineoriginy),
4347             &mut result__,
4348         )
4349         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4350     }
CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3>4351     pub unsafe fn CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3> {
4352         let mut result__: <IDWriteRenderingParams3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4353         (::windows::runtime::Interface::vtable(self).32)(
4354             ::std::mem::transmute_copy(self),
4355             ::std::mem::transmute(gamma),
4356             ::std::mem::transmute(enhancedcontrast),
4357             ::std::mem::transmute(grayscaleenhancedcontrast),
4358             ::std::mem::transmute(cleartypelevel),
4359             ::std::mem::transmute(pixelgeometry),
4360             ::std::mem::transmute(renderingmode),
4361             ::std::mem::transmute(gridfitmode),
4362             &mut result__,
4363         )
4364         .from_abi::<IDWriteRenderingParams3>(result__)
4365     }
CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>4366     pub unsafe fn CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
4367         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4368         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
4369     }
4370     #[cfg(feature = "Win32_Foundation")]
CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>4371     pub unsafe fn CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
4372         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4373         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
4374     }
GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>4375     pub unsafe fn GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
4376         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4377         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
4378     }
CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder>4379     pub unsafe fn CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder> {
4380         let mut result__: <IDWriteFontSetBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4381         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder>(result__)
4382     }
CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1>4383     pub unsafe fn CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1> {
4384         let mut result__: <IDWriteFontCollection1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4385         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), fontset.into_param().abi(), &mut result__).from_abi::<IDWriteFontCollection1>(result__)
4386     }
4387     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()>4388     pub unsafe fn GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()> {
4389         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4390     }
GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue>4391     pub unsafe fn GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue> {
4392         let mut result__: <IDWriteFontDownloadQueue as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4393         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontDownloadQueue>(result__)
4394     }
4395 }
4396 unsafe impl ::windows::runtime::Interface for IDWriteFactory3 {
4397     type Vtable = IDWriteFactory3_abi;
4398     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2585477571, 54203, 18026, [135, 252, 254, 103, 85, 106, 59, 101]);
4399 }
4400 impl ::std::convert::From<IDWriteFactory3> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory3) -> Self4401     fn from(value: IDWriteFactory3) -> Self {
4402         unsafe { ::std::mem::transmute(value) }
4403     }
4404 }
4405 impl ::std::convert::From<&IDWriteFactory3> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory3) -> Self4406     fn from(value: &IDWriteFactory3) -> Self {
4407         ::std::convert::From::from(::std::clone::Clone::clone(value))
4408     }
4409 }
4410 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4411     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4412         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4413     }
4414 }
4415 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4416     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4417         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4418     }
4419 }
4420 impl ::std::convert::From<IDWriteFactory3> for IDWriteFactory2 {
from(value: IDWriteFactory3) -> Self4421     fn from(value: IDWriteFactory3) -> Self {
4422         unsafe { ::std::mem::transmute(value) }
4423     }
4424 }
4425 impl ::std::convert::From<&IDWriteFactory3> for IDWriteFactory2 {
from(value: &IDWriteFactory3) -> Self4426     fn from(value: &IDWriteFactory3) -> Self {
4427         ::std::convert::From::from(::std::clone::Clone::clone(value))
4428     }
4429 }
4430 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>4431     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
4432         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(self))
4433     }
4434 }
4435 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for &IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>4436     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
4437         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(::std::clone::Clone::clone(self)))
4438     }
4439 }
4440 impl ::std::convert::From<IDWriteFactory3> for IDWriteFactory1 {
from(value: IDWriteFactory3) -> Self4441     fn from(value: IDWriteFactory3) -> Self {
4442         unsafe { ::std::mem::transmute(value) }
4443     }
4444 }
4445 impl ::std::convert::From<&IDWriteFactory3> for IDWriteFactory1 {
from(value: &IDWriteFactory3) -> Self4446     fn from(value: &IDWriteFactory3) -> Self {
4447         ::std::convert::From::from(::std::clone::Clone::clone(value))
4448     }
4449 }
4450 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>4451     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
4452         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(self))
4453     }
4454 }
4455 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for &IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>4456     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
4457         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(::std::clone::Clone::clone(self)))
4458     }
4459 }
4460 impl ::std::convert::From<IDWriteFactory3> for IDWriteFactory {
from(value: IDWriteFactory3) -> Self4461     fn from(value: IDWriteFactory3) -> Self {
4462         unsafe { ::std::mem::transmute(value) }
4463     }
4464 }
4465 impl ::std::convert::From<&IDWriteFactory3> for IDWriteFactory {
from(value: &IDWriteFactory3) -> Self4466     fn from(value: &IDWriteFactory3) -> Self {
4467         ::std::convert::From::from(::std::clone::Clone::clone(value))
4468     }
4469 }
4470 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>4471     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
4472         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
4473     }
4474 }
4475 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>4476     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
4477         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
4478     }
4479 }
4480 #[repr(C)]
4481 #[doc(hidden)]
4482 pub struct IDWriteFactory3_abi(
4483     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4484     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4485     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4486     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4487     #[cfg(not(feature = "Win32_Foundation"))] usize,
4488     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4489     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4490     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4491     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4492     #[cfg(not(feature = "Win32_Foundation"))] usize,
4493     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4494     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4495     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4496     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4497     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
4498     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4501     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4502     #[cfg(not(feature = "Win32_Foundation"))] usize,
4503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4504     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4505     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4506     #[cfg(not(feature = "Win32_Foundation"))] usize,
4507     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4508     #[cfg(not(feature = "Win32_Foundation"))] usize,
4509     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4511     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4512     #[cfg(not(feature = "Win32_Foundation"))] usize,
4513     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4514     #[cfg(not(feature = "Win32_Foundation"))] usize,
4515     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4516     #[cfg(not(feature = "Win32_Foundation"))] usize,
4517     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4518     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4519     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallbackbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4520     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4521     #[cfg(not(feature = "Win32_Foundation"))] usize,
4522     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4523     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4524     #[cfg(not(feature = "Win32_Foundation"))] usize,
4525     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4526     #[cfg(not(feature = "Win32_Foundation"))] usize,
4527     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4528     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4529     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4530     #[cfg(not(feature = "Win32_Foundation"))] usize,
4531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4533     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4534     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4535     #[cfg(not(feature = "Win32_Foundation"))] usize,
4536     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontdownloadqueue: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4537 );
4538 #[repr(transparent)]
4539 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4540 pub struct IDWriteFactory4(::windows::runtime::IUnknown);
4541 impl IDWriteFactory4 {
4542     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>4543     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
4544         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4545     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>4546     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
4547         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4548         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
4549     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>4550     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
4551         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
4552     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>4553     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
4554         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
4555     }
4556     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>4557     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
4558         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4559         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
4560     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>4561     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
4562         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4563         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
4564     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>4565     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
4566         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4567         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
4568     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>4569     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
4570         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4571         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
4572     }
4573     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>4574     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
4575         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4576         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
4577     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>4578     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
4579         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4580         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
4581     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>4582     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
4583         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
4584     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>4585     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
4586         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
4587     }
4588     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>4589     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
4590         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4591         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
4592     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>4593     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
4594         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4595         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
4596     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>4597     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
4598         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4599         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
4600     }
4601     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>4602     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
4603         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4604         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
4605     }
4606     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>4607     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
4608         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4609         (::windows::runtime::Interface::vtable(self).19)(
4610             ::std::mem::transmute_copy(self),
4611             string.into_param().abi(),
4612             ::std::mem::transmute(stringlength),
4613             textformat.into_param().abi(),
4614             ::std::mem::transmute(layoutwidth),
4615             ::std::mem::transmute(layoutheight),
4616             ::std::mem::transmute(pixelsperdip),
4617             ::std::mem::transmute(transform),
4618             usegdinatural.into_param().abi(),
4619             &mut result__,
4620         )
4621         .from_abi::<IDWriteTextLayout>(result__)
4622     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>4623     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
4624         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4625         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
4626     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>4627     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
4628         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4629         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
4630     }
4631     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>4632     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
4633         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4634         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
4635     }
4636     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4637     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4638         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4639         (::windows::runtime::Interface::vtable(self).23)(
4640             ::std::mem::transmute_copy(self),
4641             ::std::mem::transmute(glyphrun),
4642             ::std::mem::transmute(pixelsperdip),
4643             ::std::mem::transmute(transform),
4644             ::std::mem::transmute(renderingmode),
4645             ::std::mem::transmute(measuringmode),
4646             ::std::mem::transmute(baselineoriginx),
4647             ::std::mem::transmute(baselineoriginy),
4648             &mut result__,
4649         )
4650         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4651     }
4652     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>4653     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
4654         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4655     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>4656     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
4657         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4658         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
4659     }
GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>4660     pub unsafe fn GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
4661         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4662         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
4663     }
CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder>4664     pub unsafe fn CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder> {
4665         let mut result__: <IDWriteFontFallbackBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4666         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallbackBuilder>(result__)
4667     }
4668     #[cfg(feature = "Win32_Foundation")]
TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator>4669     pub unsafe fn TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator> {
4670         let mut result__: <IDWriteColorGlyphRunEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4671         (::windows::runtime::Interface::vtable(self).28)(
4672             ::std::mem::transmute_copy(self),
4673             ::std::mem::transmute(baselineoriginx),
4674             ::std::mem::transmute(baselineoriginy),
4675             ::std::mem::transmute(glyphrun),
4676             ::std::mem::transmute(glyphrundescription),
4677             ::std::mem::transmute(measuringmode),
4678             ::std::mem::transmute(worldtodevicetransform),
4679             ::std::mem::transmute(colorpaletteindex),
4680             &mut result__,
4681         )
4682         .from_abi::<IDWriteColorGlyphRunEnumerator>(result__)
4683     }
CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2>4684     pub unsafe fn CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2> {
4685         let mut result__: <IDWriteRenderingParams2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4686         (::windows::runtime::Interface::vtable(self).29)(
4687             ::std::mem::transmute_copy(self),
4688             ::std::mem::transmute(gamma),
4689             ::std::mem::transmute(enhancedcontrast),
4690             ::std::mem::transmute(grayscaleenhancedcontrast),
4691             ::std::mem::transmute(cleartypelevel),
4692             ::std::mem::transmute(pixelgeometry),
4693             ::std::mem::transmute(renderingmode),
4694             ::std::mem::transmute(gridfitmode),
4695             &mut result__,
4696         )
4697         .from_abi::<IDWriteRenderingParams2>(result__)
4698     }
4699     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4700     pub unsafe fn CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4701         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4702         (::windows::runtime::Interface::vtable(self).30)(
4703             ::std::mem::transmute_copy(self),
4704             ::std::mem::transmute(glyphrun),
4705             ::std::mem::transmute(transform),
4706             ::std::mem::transmute(renderingmode),
4707             ::std::mem::transmute(measuringmode),
4708             ::std::mem::transmute(gridfitmode),
4709             ::std::mem::transmute(antialiasmode),
4710             ::std::mem::transmute(baselineoriginx),
4711             ::std::mem::transmute(baselineoriginy),
4712             &mut result__,
4713         )
4714         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4715     }
4716     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>4717     pub unsafe fn CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
4718         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4719         (::windows::runtime::Interface::vtable(self).31)(
4720             ::std::mem::transmute_copy(self),
4721             ::std::mem::transmute(glyphrun),
4722             ::std::mem::transmute(transform),
4723             ::std::mem::transmute(renderingmode),
4724             ::std::mem::transmute(measuringmode),
4725             ::std::mem::transmute(gridfitmode),
4726             ::std::mem::transmute(antialiasmode),
4727             ::std::mem::transmute(baselineoriginx),
4728             ::std::mem::transmute(baselineoriginy),
4729             &mut result__,
4730         )
4731         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
4732     }
CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3>4733     pub unsafe fn CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3> {
4734         let mut result__: <IDWriteRenderingParams3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4735         (::windows::runtime::Interface::vtable(self).32)(
4736             ::std::mem::transmute_copy(self),
4737             ::std::mem::transmute(gamma),
4738             ::std::mem::transmute(enhancedcontrast),
4739             ::std::mem::transmute(grayscaleenhancedcontrast),
4740             ::std::mem::transmute(cleartypelevel),
4741             ::std::mem::transmute(pixelgeometry),
4742             ::std::mem::transmute(renderingmode),
4743             ::std::mem::transmute(gridfitmode),
4744             &mut result__,
4745         )
4746         .from_abi::<IDWriteRenderingParams3>(result__)
4747     }
CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>4748     pub unsafe fn CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
4749         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4750         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
4751     }
4752     #[cfg(feature = "Win32_Foundation")]
CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>4753     pub unsafe fn CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
4754         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4755         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
4756     }
GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>4757     pub unsafe fn GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
4758         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4759         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
4760     }
CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder>4761     pub unsafe fn CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder> {
4762         let mut result__: <IDWriteFontSetBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4763         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder>(result__)
4764     }
CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1>4765     pub unsafe fn CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1> {
4766         let mut result__: <IDWriteFontCollection1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4767         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), fontset.into_param().abi(), &mut result__).from_abi::<IDWriteFontCollection1>(result__)
4768     }
4769     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()>4770     pub unsafe fn GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()> {
4771         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4772     }
GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue>4773     pub unsafe fn GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue> {
4774         let mut result__: <IDWriteFontDownloadQueue as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4775         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontDownloadQueue>(result__)
4776     }
4777     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1>4778     pub unsafe fn TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1> {
4779         let mut result__: <IDWriteColorGlyphRunEnumerator1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4780         (::windows::runtime::Interface::vtable(self).40)(
4781             ::std::mem::transmute_copy(self),
4782             baselineorigin.into_param().abi(),
4783             ::std::mem::transmute(glyphrun),
4784             ::std::mem::transmute(glyphrundescription),
4785             ::std::mem::transmute(desiredglyphimageformats),
4786             ::std::mem::transmute(measuringmode),
4787             ::std::mem::transmute(worldanddpitransform),
4788             ::std::mem::transmute(colorpaletteindex),
4789             &mut result__,
4790         )
4791         .from_abi::<IDWriteColorGlyphRunEnumerator1>(result__)
4792     }
4793     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>4794     pub unsafe fn ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
4795         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4796         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), baselineorigin.into_param().abi(), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
4797     }
4798     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>4799     pub unsafe fn ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
4800         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4801         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), ::std::mem::transmute(measuringmode), baselineorigin.into_param().abi(), ::std::mem::transmute(worldanddpitransform), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
4802     }
4803 }
4804 unsafe impl ::windows::runtime::Interface for IDWriteFactory4 {
4805     type Vtable = IDWriteFactory4_abi;
4806     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1259035603, 1943, 17737, [138, 197, 254, 145, 92, 197, 56, 86]);
4807 }
4808 impl ::std::convert::From<IDWriteFactory4> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory4) -> Self4809     fn from(value: IDWriteFactory4) -> Self {
4810         unsafe { ::std::mem::transmute(value) }
4811     }
4812 }
4813 impl ::std::convert::From<&IDWriteFactory4> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory4) -> Self4814     fn from(value: &IDWriteFactory4) -> Self {
4815         ::std::convert::From::from(::std::clone::Clone::clone(value))
4816     }
4817 }
4818 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4819     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4820         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
4821     }
4822 }
4823 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>4824     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
4825         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
4826     }
4827 }
4828 impl ::std::convert::From<IDWriteFactory4> for IDWriteFactory3 {
from(value: IDWriteFactory4) -> Self4829     fn from(value: IDWriteFactory4) -> Self {
4830         unsafe { ::std::mem::transmute(value) }
4831     }
4832 }
4833 impl ::std::convert::From<&IDWriteFactory4> for IDWriteFactory3 {
from(value: &IDWriteFactory4) -> Self4834     fn from(value: &IDWriteFactory4) -> Self {
4835         ::std::convert::From::from(::std::clone::Clone::clone(value))
4836     }
4837 }
4838 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>4839     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
4840         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(self))
4841     }
4842 }
4843 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for &IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>4844     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
4845         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(::std::clone::Clone::clone(self)))
4846     }
4847 }
4848 impl ::std::convert::From<IDWriteFactory4> for IDWriteFactory2 {
from(value: IDWriteFactory4) -> Self4849     fn from(value: IDWriteFactory4) -> Self {
4850         unsafe { ::std::mem::transmute(value) }
4851     }
4852 }
4853 impl ::std::convert::From<&IDWriteFactory4> for IDWriteFactory2 {
from(value: &IDWriteFactory4) -> Self4854     fn from(value: &IDWriteFactory4) -> Self {
4855         ::std::convert::From::from(::std::clone::Clone::clone(value))
4856     }
4857 }
4858 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>4859     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
4860         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(self))
4861     }
4862 }
4863 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for &IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>4864     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
4865         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(::std::clone::Clone::clone(self)))
4866     }
4867 }
4868 impl ::std::convert::From<IDWriteFactory4> for IDWriteFactory1 {
from(value: IDWriteFactory4) -> Self4869     fn from(value: IDWriteFactory4) -> Self {
4870         unsafe { ::std::mem::transmute(value) }
4871     }
4872 }
4873 impl ::std::convert::From<&IDWriteFactory4> for IDWriteFactory1 {
from(value: &IDWriteFactory4) -> Self4874     fn from(value: &IDWriteFactory4) -> Self {
4875         ::std::convert::From::from(::std::clone::Clone::clone(value))
4876     }
4877 }
4878 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>4879     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
4880         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(self))
4881     }
4882 }
4883 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for &IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>4884     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
4885         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(::std::clone::Clone::clone(self)))
4886     }
4887 }
4888 impl ::std::convert::From<IDWriteFactory4> for IDWriteFactory {
from(value: IDWriteFactory4) -> Self4889     fn from(value: IDWriteFactory4) -> Self {
4890         unsafe { ::std::mem::transmute(value) }
4891     }
4892 }
4893 impl ::std::convert::From<&IDWriteFactory4> for IDWriteFactory {
from(value: &IDWriteFactory4) -> Self4894     fn from(value: &IDWriteFactory4) -> Self {
4895         ::std::convert::From::from(::std::clone::Clone::clone(value))
4896     }
4897 }
4898 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>4899     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
4900         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
4901     }
4902 }
4903 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>4904     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
4905         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
4906     }
4907 }
4908 #[repr(C)]
4909 #[doc(hidden)]
4910 pub struct IDWriteFactory4_abi(
4911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4913     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
4914     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4915     #[cfg(not(feature = "Win32_Foundation"))] usize,
4916     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4917     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4919     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4920     #[cfg(not(feature = "Win32_Foundation"))] usize,
4921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4924     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4925     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
4926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4929     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4930     #[cfg(not(feature = "Win32_Foundation"))] usize,
4931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4933     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4934     #[cfg(not(feature = "Win32_Foundation"))] usize,
4935     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4936     #[cfg(not(feature = "Win32_Foundation"))] usize,
4937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4939     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4940     #[cfg(not(feature = "Win32_Foundation"))] usize,
4941     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4942     #[cfg(not(feature = "Win32_Foundation"))] usize,
4943     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4944     #[cfg(not(feature = "Win32_Foundation"))] usize,
4945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4946     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4947     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallbackbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4948     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4949     #[cfg(not(feature = "Win32_Foundation"))] usize,
4950     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4951     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4952     #[cfg(not(feature = "Win32_Foundation"))] usize,
4953     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4954     #[cfg(not(feature = "Win32_Foundation"))] usize,
4955     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4956     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4957     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4958     #[cfg(not(feature = "Win32_Foundation"))] usize,
4959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4962     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
4963     #[cfg(not(feature = "Win32_Foundation"))] usize,
4964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontdownloadqueue: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4965     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
4966     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
4967     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
4968     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
4969     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
4970     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: super::Direct2D::D2D_POINT_2F, worldanddpitransform: *const DWRITE_MATRIX, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
4971     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
4972 );
4973 #[repr(transparent)]
4974 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4975 pub struct IDWriteFactory5(::windows::runtime::IUnknown);
4976 impl IDWriteFactory5 {
4977     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>4978     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
4979         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
4980     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>4981     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
4982         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4983         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
4984     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>4985     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
4986         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
4987     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>4988     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
4989         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
4990     }
4991     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>4992     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
4993         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4994         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
4995     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>4996     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
4997         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
4998         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
4999     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>5000     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
5001         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5002         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
5003     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>5004     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
5005         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5006         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
5007     }
5008     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>5009     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
5010         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5011         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
5012     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>5013     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
5014         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5015         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
5016     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>5017     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
5018         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
5019     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>5020     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
5021         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
5022     }
5023     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>5024     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
5025         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5026         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
5027     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>5028     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
5029         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5030         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
5031     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>5032     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
5033         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5034         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
5035     }
5036     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>5037     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
5038         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5039         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
5040     }
5041     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>5042     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
5043         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5044         (::windows::runtime::Interface::vtable(self).19)(
5045             ::std::mem::transmute_copy(self),
5046             string.into_param().abi(),
5047             ::std::mem::transmute(stringlength),
5048             textformat.into_param().abi(),
5049             ::std::mem::transmute(layoutwidth),
5050             ::std::mem::transmute(layoutheight),
5051             ::std::mem::transmute(pixelsperdip),
5052             ::std::mem::transmute(transform),
5053             usegdinatural.into_param().abi(),
5054             &mut result__,
5055         )
5056         .from_abi::<IDWriteTextLayout>(result__)
5057     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>5058     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
5059         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5060         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
5061     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>5062     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
5063         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5064         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
5065     }
5066     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>5067     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
5068         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5069         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
5070     }
5071     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>5072     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
5073         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5074         (::windows::runtime::Interface::vtable(self).23)(
5075             ::std::mem::transmute_copy(self),
5076             ::std::mem::transmute(glyphrun),
5077             ::std::mem::transmute(pixelsperdip),
5078             ::std::mem::transmute(transform),
5079             ::std::mem::transmute(renderingmode),
5080             ::std::mem::transmute(measuringmode),
5081             ::std::mem::transmute(baselineoriginx),
5082             ::std::mem::transmute(baselineoriginy),
5083             &mut result__,
5084         )
5085         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
5086     }
5087     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>5088     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
5089         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
5090     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>5091     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
5092         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5093         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
5094     }
GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>5095     pub unsafe fn GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
5096         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5097         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
5098     }
CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder>5099     pub unsafe fn CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder> {
5100         let mut result__: <IDWriteFontFallbackBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5101         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallbackBuilder>(result__)
5102     }
5103     #[cfg(feature = "Win32_Foundation")]
TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator>5104     pub unsafe fn TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator> {
5105         let mut result__: <IDWriteColorGlyphRunEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5106         (::windows::runtime::Interface::vtable(self).28)(
5107             ::std::mem::transmute_copy(self),
5108             ::std::mem::transmute(baselineoriginx),
5109             ::std::mem::transmute(baselineoriginy),
5110             ::std::mem::transmute(glyphrun),
5111             ::std::mem::transmute(glyphrundescription),
5112             ::std::mem::transmute(measuringmode),
5113             ::std::mem::transmute(worldtodevicetransform),
5114             ::std::mem::transmute(colorpaletteindex),
5115             &mut result__,
5116         )
5117         .from_abi::<IDWriteColorGlyphRunEnumerator>(result__)
5118     }
CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2>5119     pub unsafe fn CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2> {
5120         let mut result__: <IDWriteRenderingParams2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5121         (::windows::runtime::Interface::vtable(self).29)(
5122             ::std::mem::transmute_copy(self),
5123             ::std::mem::transmute(gamma),
5124             ::std::mem::transmute(enhancedcontrast),
5125             ::std::mem::transmute(grayscaleenhancedcontrast),
5126             ::std::mem::transmute(cleartypelevel),
5127             ::std::mem::transmute(pixelgeometry),
5128             ::std::mem::transmute(renderingmode),
5129             ::std::mem::transmute(gridfitmode),
5130             &mut result__,
5131         )
5132         .from_abi::<IDWriteRenderingParams2>(result__)
5133     }
5134     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>5135     pub unsafe fn CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
5136         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5137         (::windows::runtime::Interface::vtable(self).30)(
5138             ::std::mem::transmute_copy(self),
5139             ::std::mem::transmute(glyphrun),
5140             ::std::mem::transmute(transform),
5141             ::std::mem::transmute(renderingmode),
5142             ::std::mem::transmute(measuringmode),
5143             ::std::mem::transmute(gridfitmode),
5144             ::std::mem::transmute(antialiasmode),
5145             ::std::mem::transmute(baselineoriginx),
5146             ::std::mem::transmute(baselineoriginy),
5147             &mut result__,
5148         )
5149         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
5150     }
5151     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>5152     pub unsafe fn CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
5153         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5154         (::windows::runtime::Interface::vtable(self).31)(
5155             ::std::mem::transmute_copy(self),
5156             ::std::mem::transmute(glyphrun),
5157             ::std::mem::transmute(transform),
5158             ::std::mem::transmute(renderingmode),
5159             ::std::mem::transmute(measuringmode),
5160             ::std::mem::transmute(gridfitmode),
5161             ::std::mem::transmute(antialiasmode),
5162             ::std::mem::transmute(baselineoriginx),
5163             ::std::mem::transmute(baselineoriginy),
5164             &mut result__,
5165         )
5166         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
5167     }
CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3>5168     pub unsafe fn CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3> {
5169         let mut result__: <IDWriteRenderingParams3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5170         (::windows::runtime::Interface::vtable(self).32)(
5171             ::std::mem::transmute_copy(self),
5172             ::std::mem::transmute(gamma),
5173             ::std::mem::transmute(enhancedcontrast),
5174             ::std::mem::transmute(grayscaleenhancedcontrast),
5175             ::std::mem::transmute(cleartypelevel),
5176             ::std::mem::transmute(pixelgeometry),
5177             ::std::mem::transmute(renderingmode),
5178             ::std::mem::transmute(gridfitmode),
5179             &mut result__,
5180         )
5181         .from_abi::<IDWriteRenderingParams3>(result__)
5182     }
CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>5183     pub unsafe fn CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
5184         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5185         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
5186     }
5187     #[cfg(feature = "Win32_Foundation")]
CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>5188     pub unsafe fn CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
5189         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5190         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
5191     }
GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>5192     pub unsafe fn GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
5193         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5194         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
5195     }
CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder>5196     pub unsafe fn CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder> {
5197         let mut result__: <IDWriteFontSetBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5198         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder>(result__)
5199     }
CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1>5200     pub unsafe fn CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1> {
5201         let mut result__: <IDWriteFontCollection1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5202         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), fontset.into_param().abi(), &mut result__).from_abi::<IDWriteFontCollection1>(result__)
5203     }
5204     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()>5205     pub unsafe fn GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()> {
5206         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
5207     }
GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue>5208     pub unsafe fn GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue> {
5209         let mut result__: <IDWriteFontDownloadQueue as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5210         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontDownloadQueue>(result__)
5211     }
5212     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1>5213     pub unsafe fn TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1> {
5214         let mut result__: <IDWriteColorGlyphRunEnumerator1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5215         (::windows::runtime::Interface::vtable(self).40)(
5216             ::std::mem::transmute_copy(self),
5217             baselineorigin.into_param().abi(),
5218             ::std::mem::transmute(glyphrun),
5219             ::std::mem::transmute(glyphrundescription),
5220             ::std::mem::transmute(desiredglyphimageformats),
5221             ::std::mem::transmute(measuringmode),
5222             ::std::mem::transmute(worldanddpitransform),
5223             ::std::mem::transmute(colorpaletteindex),
5224             &mut result__,
5225         )
5226         .from_abi::<IDWriteColorGlyphRunEnumerator1>(result__)
5227     }
5228     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>5229     pub unsafe fn ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
5230         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5231         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), baselineorigin.into_param().abi(), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
5232     }
5233     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>5234     pub unsafe fn ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
5235         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5236         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), ::std::mem::transmute(measuringmode), baselineorigin.into_param().abi(), ::std::mem::transmute(worldanddpitransform), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
5237     }
CreateFontSetBuilder2(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder1>5238     pub unsafe fn CreateFontSetBuilder2(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder1> {
5239         let mut result__: <IDWriteFontSetBuilder1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5240         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder1>(result__)
5241     }
CreateInMemoryFontFileLoader(&self) -> ::windows::runtime::Result<IDWriteInMemoryFontFileLoader>5242     pub unsafe fn CreateInMemoryFontFileLoader(&self) -> ::windows::runtime::Result<IDWriteInMemoryFontFileLoader> {
5243         let mut result__: <IDWriteInMemoryFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5244         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteInMemoryFontFileLoader>(result__)
5245     }
5246     #[cfg(feature = "Win32_Foundation")]
CreateHttpFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, referrerurl: Param0, extraheaders: Param1) -> ::windows::runtime::Result<IDWriteRemoteFontFileLoader>5247     pub unsafe fn CreateHttpFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, referrerurl: Param0, extraheaders: Param1) -> ::windows::runtime::Result<IDWriteRemoteFontFileLoader> {
5248         let mut result__: <IDWriteRemoteFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5249         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), referrerurl.into_param().abi(), extraheaders.into_param().abi(), &mut result__).from_abi::<IDWriteRemoteFontFileLoader>(result__)
5250     }
AnalyzeContainerType(&self, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE5251     pub unsafe fn AnalyzeContainerType(&self, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE {
5252         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(filedata), ::std::mem::transmute(filedatasize)))
5253     }
UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>5254     pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
5255         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5256         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(containertype), ::std::mem::transmute(filedata), ::std::mem::transmute(filedatasize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
5257     }
5258 }
5259 unsafe impl ::windows::runtime::Interface for IDWriteFactory5 {
5260     type Vtable = IDWriteFactory5_abi;
5261     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2509093274, 48682, 20233, [175, 125, 101, 24, 152, 3, 209, 211]);
5262 }
5263 impl ::std::convert::From<IDWriteFactory5> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory5) -> Self5264     fn from(value: IDWriteFactory5) -> Self {
5265         unsafe { ::std::mem::transmute(value) }
5266     }
5267 }
5268 impl ::std::convert::From<&IDWriteFactory5> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory5) -> Self5269     fn from(value: &IDWriteFactory5) -> Self {
5270         ::std::convert::From::from(::std::clone::Clone::clone(value))
5271     }
5272 }
5273 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5274     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5275         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5276     }
5277 }
5278 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5279     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5280         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5281     }
5282 }
5283 impl ::std::convert::From<IDWriteFactory5> for IDWriteFactory4 {
from(value: IDWriteFactory5) -> Self5284     fn from(value: IDWriteFactory5) -> Self {
5285         unsafe { ::std::mem::transmute(value) }
5286     }
5287 }
5288 impl ::std::convert::From<&IDWriteFactory5> for IDWriteFactory4 {
from(value: &IDWriteFactory5) -> Self5289     fn from(value: &IDWriteFactory5) -> Self {
5290         ::std::convert::From::from(::std::clone::Clone::clone(value))
5291     }
5292 }
5293 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory4> for IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4>5294     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4> {
5295         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory4>::into(self))
5296     }
5297 }
5298 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory4> for &IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4>5299     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4> {
5300         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory4>::into(::std::clone::Clone::clone(self)))
5301     }
5302 }
5303 impl ::std::convert::From<IDWriteFactory5> for IDWriteFactory3 {
from(value: IDWriteFactory5) -> Self5304     fn from(value: IDWriteFactory5) -> Self {
5305         unsafe { ::std::mem::transmute(value) }
5306     }
5307 }
5308 impl ::std::convert::From<&IDWriteFactory5> for IDWriteFactory3 {
from(value: &IDWriteFactory5) -> Self5309     fn from(value: &IDWriteFactory5) -> Self {
5310         ::std::convert::From::from(::std::clone::Clone::clone(value))
5311     }
5312 }
5313 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>5314     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
5315         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(self))
5316     }
5317 }
5318 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for &IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>5319     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
5320         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(::std::clone::Clone::clone(self)))
5321     }
5322 }
5323 impl ::std::convert::From<IDWriteFactory5> for IDWriteFactory2 {
from(value: IDWriteFactory5) -> Self5324     fn from(value: IDWriteFactory5) -> Self {
5325         unsafe { ::std::mem::transmute(value) }
5326     }
5327 }
5328 impl ::std::convert::From<&IDWriteFactory5> for IDWriteFactory2 {
from(value: &IDWriteFactory5) -> Self5329     fn from(value: &IDWriteFactory5) -> Self {
5330         ::std::convert::From::from(::std::clone::Clone::clone(value))
5331     }
5332 }
5333 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>5334     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
5335         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(self))
5336     }
5337 }
5338 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for &IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>5339     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
5340         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(::std::clone::Clone::clone(self)))
5341     }
5342 }
5343 impl ::std::convert::From<IDWriteFactory5> for IDWriteFactory1 {
from(value: IDWriteFactory5) -> Self5344     fn from(value: IDWriteFactory5) -> Self {
5345         unsafe { ::std::mem::transmute(value) }
5346     }
5347 }
5348 impl ::std::convert::From<&IDWriteFactory5> for IDWriteFactory1 {
from(value: &IDWriteFactory5) -> Self5349     fn from(value: &IDWriteFactory5) -> Self {
5350         ::std::convert::From::from(::std::clone::Clone::clone(value))
5351     }
5352 }
5353 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>5354     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
5355         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(self))
5356     }
5357 }
5358 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for &IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>5359     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
5360         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(::std::clone::Clone::clone(self)))
5361     }
5362 }
5363 impl ::std::convert::From<IDWriteFactory5> for IDWriteFactory {
from(value: IDWriteFactory5) -> Self5364     fn from(value: IDWriteFactory5) -> Self {
5365         unsafe { ::std::mem::transmute(value) }
5366     }
5367 }
5368 impl ::std::convert::From<&IDWriteFactory5> for IDWriteFactory {
from(value: &IDWriteFactory5) -> Self5369     fn from(value: &IDWriteFactory5) -> Self {
5370         ::std::convert::From::from(::std::clone::Clone::clone(value))
5371     }
5372 }
5373 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>5374     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
5375         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
5376     }
5377 }
5378 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>5379     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
5380         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
5381     }
5382 }
5383 #[repr(C)]
5384 #[doc(hidden)]
5385 pub struct IDWriteFactory5_abi(
5386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5389     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5390     #[cfg(not(feature = "Win32_Foundation"))] usize,
5391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5394     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5395     #[cfg(not(feature = "Win32_Foundation"))] usize,
5396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5399     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5400     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
5401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5404     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5405     #[cfg(not(feature = "Win32_Foundation"))] usize,
5406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5409     #[cfg(not(feature = "Win32_Foundation"))] usize,
5410     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5411     #[cfg(not(feature = "Win32_Foundation"))] usize,
5412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5414     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5415     #[cfg(not(feature = "Win32_Foundation"))] usize,
5416     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5417     #[cfg(not(feature = "Win32_Foundation"))] usize,
5418     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5419     #[cfg(not(feature = "Win32_Foundation"))] usize,
5420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallbackbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5423     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5424     #[cfg(not(feature = "Win32_Foundation"))] usize,
5425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5426     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5427     #[cfg(not(feature = "Win32_Foundation"))] usize,
5428     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5429     #[cfg(not(feature = "Win32_Foundation"))] usize,
5430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5432     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5433     #[cfg(not(feature = "Win32_Foundation"))] usize,
5434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5437     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5438     #[cfg(not(feature = "Win32_Foundation"))] usize,
5439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontdownloadqueue: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5440     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
5441     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5442     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
5443     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
5444     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
5445     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: super::Direct2D::D2D_POINT_2F, worldanddpitransform: *const DWRITE_MATRIX, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
5446     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
5447     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5448     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5449     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, referrerurl: super::super::Foundation::PWSTR, extraheaders: super::super::Foundation::PWSTR, newloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5450     #[cfg(not(feature = "Win32_Foundation"))] usize,
5451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE,
5452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32, unpackedfontstream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5453 );
5454 #[repr(transparent)]
5455 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5456 pub struct IDWriteFactory6(::windows::runtime::IUnknown);
5457 impl IDWriteFactory6 {
5458     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>5459     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
5460         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
5461     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>5462     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
5463         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5464         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
5465     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>5466     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
5467         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
5468     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>5469     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
5470         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
5471     }
5472     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>5473     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
5474         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5475         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
5476     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>5477     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
5478         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5479         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
5480     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>5481     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
5482         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5483         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
5484     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>5485     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
5486         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5487         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
5488     }
5489     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>5490     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
5491         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5492         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
5493     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>5494     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
5495         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5496         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
5497     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>5498     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
5499         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
5500     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>5501     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
5502         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
5503     }
5504     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>5505     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
5506         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5507         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
5508     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>5509     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
5510         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5511         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
5512     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>5513     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
5514         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5515         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
5516     }
5517     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>5518     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
5519         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5520         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
5521     }
5522     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>5523     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
5524         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5525         (::windows::runtime::Interface::vtable(self).19)(
5526             ::std::mem::transmute_copy(self),
5527             string.into_param().abi(),
5528             ::std::mem::transmute(stringlength),
5529             textformat.into_param().abi(),
5530             ::std::mem::transmute(layoutwidth),
5531             ::std::mem::transmute(layoutheight),
5532             ::std::mem::transmute(pixelsperdip),
5533             ::std::mem::transmute(transform),
5534             usegdinatural.into_param().abi(),
5535             &mut result__,
5536         )
5537         .from_abi::<IDWriteTextLayout>(result__)
5538     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>5539     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
5540         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5541         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
5542     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>5543     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
5544         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5545         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
5546     }
5547     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>5548     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
5549         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5550         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
5551     }
5552     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>5553     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
5554         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5555         (::windows::runtime::Interface::vtable(self).23)(
5556             ::std::mem::transmute_copy(self),
5557             ::std::mem::transmute(glyphrun),
5558             ::std::mem::transmute(pixelsperdip),
5559             ::std::mem::transmute(transform),
5560             ::std::mem::transmute(renderingmode),
5561             ::std::mem::transmute(measuringmode),
5562             ::std::mem::transmute(baselineoriginx),
5563             ::std::mem::transmute(baselineoriginy),
5564             &mut result__,
5565         )
5566         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
5567     }
5568     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>5569     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
5570         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
5571     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>5572     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
5573         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5574         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
5575     }
GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>5576     pub unsafe fn GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
5577         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5578         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
5579     }
CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder>5580     pub unsafe fn CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder> {
5581         let mut result__: <IDWriteFontFallbackBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5582         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallbackBuilder>(result__)
5583     }
5584     #[cfg(feature = "Win32_Foundation")]
TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator>5585     pub unsafe fn TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator> {
5586         let mut result__: <IDWriteColorGlyphRunEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5587         (::windows::runtime::Interface::vtable(self).28)(
5588             ::std::mem::transmute_copy(self),
5589             ::std::mem::transmute(baselineoriginx),
5590             ::std::mem::transmute(baselineoriginy),
5591             ::std::mem::transmute(glyphrun),
5592             ::std::mem::transmute(glyphrundescription),
5593             ::std::mem::transmute(measuringmode),
5594             ::std::mem::transmute(worldtodevicetransform),
5595             ::std::mem::transmute(colorpaletteindex),
5596             &mut result__,
5597         )
5598         .from_abi::<IDWriteColorGlyphRunEnumerator>(result__)
5599     }
CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2>5600     pub unsafe fn CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2> {
5601         let mut result__: <IDWriteRenderingParams2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5602         (::windows::runtime::Interface::vtable(self).29)(
5603             ::std::mem::transmute_copy(self),
5604             ::std::mem::transmute(gamma),
5605             ::std::mem::transmute(enhancedcontrast),
5606             ::std::mem::transmute(grayscaleenhancedcontrast),
5607             ::std::mem::transmute(cleartypelevel),
5608             ::std::mem::transmute(pixelgeometry),
5609             ::std::mem::transmute(renderingmode),
5610             ::std::mem::transmute(gridfitmode),
5611             &mut result__,
5612         )
5613         .from_abi::<IDWriteRenderingParams2>(result__)
5614     }
5615     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>5616     pub unsafe fn CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
5617         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5618         (::windows::runtime::Interface::vtable(self).30)(
5619             ::std::mem::transmute_copy(self),
5620             ::std::mem::transmute(glyphrun),
5621             ::std::mem::transmute(transform),
5622             ::std::mem::transmute(renderingmode),
5623             ::std::mem::transmute(measuringmode),
5624             ::std::mem::transmute(gridfitmode),
5625             ::std::mem::transmute(antialiasmode),
5626             ::std::mem::transmute(baselineoriginx),
5627             ::std::mem::transmute(baselineoriginy),
5628             &mut result__,
5629         )
5630         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
5631     }
5632     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>5633     pub unsafe fn CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
5634         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5635         (::windows::runtime::Interface::vtable(self).31)(
5636             ::std::mem::transmute_copy(self),
5637             ::std::mem::transmute(glyphrun),
5638             ::std::mem::transmute(transform),
5639             ::std::mem::transmute(renderingmode),
5640             ::std::mem::transmute(measuringmode),
5641             ::std::mem::transmute(gridfitmode),
5642             ::std::mem::transmute(antialiasmode),
5643             ::std::mem::transmute(baselineoriginx),
5644             ::std::mem::transmute(baselineoriginy),
5645             &mut result__,
5646         )
5647         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
5648     }
CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3>5649     pub unsafe fn CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3> {
5650         let mut result__: <IDWriteRenderingParams3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5651         (::windows::runtime::Interface::vtable(self).32)(
5652             ::std::mem::transmute_copy(self),
5653             ::std::mem::transmute(gamma),
5654             ::std::mem::transmute(enhancedcontrast),
5655             ::std::mem::transmute(grayscaleenhancedcontrast),
5656             ::std::mem::transmute(cleartypelevel),
5657             ::std::mem::transmute(pixelgeometry),
5658             ::std::mem::transmute(renderingmode),
5659             ::std::mem::transmute(gridfitmode),
5660             &mut result__,
5661         )
5662         .from_abi::<IDWriteRenderingParams3>(result__)
5663     }
CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>5664     pub unsafe fn CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
5665         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5666         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
5667     }
5668     #[cfg(feature = "Win32_Foundation")]
CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>5669     pub unsafe fn CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
5670         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5671         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
5672     }
GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>5673     pub unsafe fn GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
5674         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5675         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
5676     }
CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder>5677     pub unsafe fn CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder> {
5678         let mut result__: <IDWriteFontSetBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5679         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder>(result__)
5680     }
CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1>5681     pub unsafe fn CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1> {
5682         let mut result__: <IDWriteFontCollection1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5683         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), fontset.into_param().abi(), &mut result__).from_abi::<IDWriteFontCollection1>(result__)
5684     }
5685     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()>5686     pub unsafe fn GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()> {
5687         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
5688     }
GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue>5689     pub unsafe fn GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue> {
5690         let mut result__: <IDWriteFontDownloadQueue as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5691         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontDownloadQueue>(result__)
5692     }
5693     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1>5694     pub unsafe fn TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1> {
5695         let mut result__: <IDWriteColorGlyphRunEnumerator1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5696         (::windows::runtime::Interface::vtable(self).40)(
5697             ::std::mem::transmute_copy(self),
5698             baselineorigin.into_param().abi(),
5699             ::std::mem::transmute(glyphrun),
5700             ::std::mem::transmute(glyphrundescription),
5701             ::std::mem::transmute(desiredglyphimageformats),
5702             ::std::mem::transmute(measuringmode),
5703             ::std::mem::transmute(worldanddpitransform),
5704             ::std::mem::transmute(colorpaletteindex),
5705             &mut result__,
5706         )
5707         .from_abi::<IDWriteColorGlyphRunEnumerator1>(result__)
5708     }
5709     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>5710     pub unsafe fn ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
5711         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5712         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), baselineorigin.into_param().abi(), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
5713     }
5714     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>5715     pub unsafe fn ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
5716         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5717         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), ::std::mem::transmute(measuringmode), baselineorigin.into_param().abi(), ::std::mem::transmute(worldanddpitransform), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
5718     }
CreateFontSetBuilder2(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder1>5719     pub unsafe fn CreateFontSetBuilder2(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder1> {
5720         let mut result__: <IDWriteFontSetBuilder1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5721         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder1>(result__)
5722     }
CreateInMemoryFontFileLoader(&self) -> ::windows::runtime::Result<IDWriteInMemoryFontFileLoader>5723     pub unsafe fn CreateInMemoryFontFileLoader(&self) -> ::windows::runtime::Result<IDWriteInMemoryFontFileLoader> {
5724         let mut result__: <IDWriteInMemoryFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5725         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteInMemoryFontFileLoader>(result__)
5726     }
5727     #[cfg(feature = "Win32_Foundation")]
CreateHttpFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, referrerurl: Param0, extraheaders: Param1) -> ::windows::runtime::Result<IDWriteRemoteFontFileLoader>5728     pub unsafe fn CreateHttpFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, referrerurl: Param0, extraheaders: Param1) -> ::windows::runtime::Result<IDWriteRemoteFontFileLoader> {
5729         let mut result__: <IDWriteRemoteFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5730         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), referrerurl.into_param().abi(), extraheaders.into_param().abi(), &mut result__).from_abi::<IDWriteRemoteFontFileLoader>(result__)
5731     }
AnalyzeContainerType(&self, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE5732     pub unsafe fn AnalyzeContainerType(&self, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE {
5733         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(filedata), ::std::mem::transmute(filedatasize)))
5734     }
UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>5735     pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
5736         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5737         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(containertype), ::std::mem::transmute(filedata), ::std::mem::transmute(filedatasize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
5738     }
CreateFontFaceReference3<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1>5739     pub unsafe fn CreateFontFaceReference3<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1> {
5740         let mut result__: <IDWriteFontFaceReference1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5741         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontFaceReference1>(result__)
5742     }
CreateFontResource<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32) -> ::windows::runtime::Result<IDWriteFontResource>5743     pub unsafe fn CreateFontResource<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32) -> ::windows::runtime::Result<IDWriteFontResource> {
5744         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5745         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), &mut result__).from_abi::<IDWriteFontResource>(result__)
5746     }
5747     #[cfg(feature = "Win32_Foundation")]
GetSystemFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0) -> ::windows::runtime::Result<IDWriteFontSet1>5748     pub unsafe fn GetSystemFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0) -> ::windows::runtime::Result<IDWriteFontSet1> {
5749         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5750         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
5751     }
5752     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection3<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2>5753     pub unsafe fn GetSystemFontCollection3<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2> {
5754         let mut result__: <IDWriteFontCollection2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5755         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteFontCollection2>(result__)
5756     }
CreateFontCollectionFromFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2>5757     pub unsafe fn CreateFontCollectionFromFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2> {
5758         let mut result__: <IDWriteFontCollection2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5759         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), fontset.into_param().abi(), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteFontCollection2>(result__)
5760     }
CreateFontSetBuilder3(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder2>5761     pub unsafe fn CreateFontSetBuilder3(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder2> {
5762         let mut result__: <IDWriteFontSetBuilder2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5763         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder2>(result__)
5764     }
5765     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontsize: f32, localename: Param5) -> ::windows::runtime::Result<IDWriteTextFormat3>5766     pub unsafe fn CreateTextFormat2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontsize: f32, localename: Param5) -> ::windows::runtime::Result<IDWriteTextFormat3> {
5767         let mut result__: <IDWriteTextFormat3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
5768         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat3>(result__)
5769     }
5770 }
5771 unsafe impl ::windows::runtime::Interface for IDWriteFactory6 {
5772     type Vtable = IDWriteFactory6_abi;
5773     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4084485504, 8695, 17131, [179, 93, 153, 91, 199, 47, 194, 35]);
5774 }
5775 impl ::std::convert::From<IDWriteFactory6> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory6) -> Self5776     fn from(value: IDWriteFactory6) -> Self {
5777         unsafe { ::std::mem::transmute(value) }
5778     }
5779 }
5780 impl ::std::convert::From<&IDWriteFactory6> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory6) -> Self5781     fn from(value: &IDWriteFactory6) -> Self {
5782         ::std::convert::From::from(::std::clone::Clone::clone(value))
5783     }
5784 }
5785 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5786     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5787         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
5788     }
5789 }
5790 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>5791     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
5792         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
5793     }
5794 }
5795 impl ::std::convert::From<IDWriteFactory6> for IDWriteFactory5 {
from(value: IDWriteFactory6) -> Self5796     fn from(value: IDWriteFactory6) -> Self {
5797         unsafe { ::std::mem::transmute(value) }
5798     }
5799 }
5800 impl ::std::convert::From<&IDWriteFactory6> for IDWriteFactory5 {
from(value: &IDWriteFactory6) -> Self5801     fn from(value: &IDWriteFactory6) -> Self {
5802         ::std::convert::From::from(::std::clone::Clone::clone(value))
5803     }
5804 }
5805 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory5> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5>5806     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5> {
5807         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory5>::into(self))
5808     }
5809 }
5810 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory5> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5>5811     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5> {
5812         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory5>::into(::std::clone::Clone::clone(self)))
5813     }
5814 }
5815 impl ::std::convert::From<IDWriteFactory6> for IDWriteFactory4 {
from(value: IDWriteFactory6) -> Self5816     fn from(value: IDWriteFactory6) -> Self {
5817         unsafe { ::std::mem::transmute(value) }
5818     }
5819 }
5820 impl ::std::convert::From<&IDWriteFactory6> for IDWriteFactory4 {
from(value: &IDWriteFactory6) -> Self5821     fn from(value: &IDWriteFactory6) -> Self {
5822         ::std::convert::From::from(::std::clone::Clone::clone(value))
5823     }
5824 }
5825 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory4> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4>5826     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4> {
5827         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory4>::into(self))
5828     }
5829 }
5830 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory4> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4>5831     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4> {
5832         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory4>::into(::std::clone::Clone::clone(self)))
5833     }
5834 }
5835 impl ::std::convert::From<IDWriteFactory6> for IDWriteFactory3 {
from(value: IDWriteFactory6) -> Self5836     fn from(value: IDWriteFactory6) -> Self {
5837         unsafe { ::std::mem::transmute(value) }
5838     }
5839 }
5840 impl ::std::convert::From<&IDWriteFactory6> for IDWriteFactory3 {
from(value: &IDWriteFactory6) -> Self5841     fn from(value: &IDWriteFactory6) -> Self {
5842         ::std::convert::From::from(::std::clone::Clone::clone(value))
5843     }
5844 }
5845 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>5846     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
5847         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(self))
5848     }
5849 }
5850 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>5851     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
5852         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(::std::clone::Clone::clone(self)))
5853     }
5854 }
5855 impl ::std::convert::From<IDWriteFactory6> for IDWriteFactory2 {
from(value: IDWriteFactory6) -> Self5856     fn from(value: IDWriteFactory6) -> Self {
5857         unsafe { ::std::mem::transmute(value) }
5858     }
5859 }
5860 impl ::std::convert::From<&IDWriteFactory6> for IDWriteFactory2 {
from(value: &IDWriteFactory6) -> Self5861     fn from(value: &IDWriteFactory6) -> Self {
5862         ::std::convert::From::from(::std::clone::Clone::clone(value))
5863     }
5864 }
5865 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>5866     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
5867         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(self))
5868     }
5869 }
5870 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>5871     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
5872         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(::std::clone::Clone::clone(self)))
5873     }
5874 }
5875 impl ::std::convert::From<IDWriteFactory6> for IDWriteFactory1 {
from(value: IDWriteFactory6) -> Self5876     fn from(value: IDWriteFactory6) -> Self {
5877         unsafe { ::std::mem::transmute(value) }
5878     }
5879 }
5880 impl ::std::convert::From<&IDWriteFactory6> for IDWriteFactory1 {
from(value: &IDWriteFactory6) -> Self5881     fn from(value: &IDWriteFactory6) -> Self {
5882         ::std::convert::From::from(::std::clone::Clone::clone(value))
5883     }
5884 }
5885 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>5886     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
5887         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(self))
5888     }
5889 }
5890 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>5891     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
5892         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(::std::clone::Clone::clone(self)))
5893     }
5894 }
5895 impl ::std::convert::From<IDWriteFactory6> for IDWriteFactory {
from(value: IDWriteFactory6) -> Self5896     fn from(value: IDWriteFactory6) -> Self {
5897         unsafe { ::std::mem::transmute(value) }
5898     }
5899 }
5900 impl ::std::convert::From<&IDWriteFactory6> for IDWriteFactory {
from(value: &IDWriteFactory6) -> Self5901     fn from(value: &IDWriteFactory6) -> Self {
5902         ::std::convert::From::from(::std::clone::Clone::clone(value))
5903     }
5904 }
5905 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>5906     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
5907         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
5908     }
5909 }
5910 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>5911     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
5912         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
5913     }
5914 }
5915 #[repr(C)]
5916 #[doc(hidden)]
5917 pub struct IDWriteFactory6_abi(
5918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
5921     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5922     #[cfg(not(feature = "Win32_Foundation"))] usize,
5923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5926     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5927     #[cfg(not(feature = "Win32_Foundation"))] usize,
5928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5931     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5932     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
5933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5936     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5937     #[cfg(not(feature = "Win32_Foundation"))] usize,
5938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5940     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5941     #[cfg(not(feature = "Win32_Foundation"))] usize,
5942     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5943     #[cfg(not(feature = "Win32_Foundation"))] usize,
5944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5946     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5947     #[cfg(not(feature = "Win32_Foundation"))] usize,
5948     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5949     #[cfg(not(feature = "Win32_Foundation"))] usize,
5950     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5951     #[cfg(not(feature = "Win32_Foundation"))] usize,
5952     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5953     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallbackbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5955     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5956     #[cfg(not(feature = "Win32_Foundation"))] usize,
5957     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5958     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5959     #[cfg(not(feature = "Win32_Foundation"))] usize,
5960     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5961     #[cfg(not(feature = "Win32_Foundation"))] usize,
5962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5963     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5964     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5965     #[cfg(not(feature = "Win32_Foundation"))] usize,
5966     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5967     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5968     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5969     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
5970     #[cfg(not(feature = "Win32_Foundation"))] usize,
5971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontdownloadqueue: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5972     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
5973     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5974     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
5975     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
5976     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
5977     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: super::Direct2D::D2D_POINT_2F, worldanddpitransform: *const DWRITE_MATRIX, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
5978     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
5979     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5980     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5981     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, referrerurl: super::super::Foundation::PWSTR, extraheaders: super::super::Foundation::PWSTR, newloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5982     #[cfg(not(feature = "Win32_Foundation"))] usize,
5983     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE,
5984     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32, unpackedfontstream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5986     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5987     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5988     #[cfg(not(feature = "Win32_Foundation"))] usize,
5989     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5990     #[cfg(not(feature = "Win32_Foundation"))] usize,
5991     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5992     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5993     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
5994     #[cfg(not(feature = "Win32_Foundation"))] usize,
5995 );
5996 #[repr(transparent)]
5997 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
5998 pub struct IDWriteFactory7(::windows::runtime::IUnknown);
5999 impl IDWriteFactory7 {
6000     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>6001     pub unsafe fn GetSystemFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
6002         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
6003     }
CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection>6004     pub unsafe fn CreateCustomFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, collectionloader: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontCollection> {
6005         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6006         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), collectionloader.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontCollection>(result__)
6007     }
RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>6008     pub unsafe fn RegisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
6009         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
6010     }
UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()>6011     pub unsafe fn UnregisterFontCollectionLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollectionLoader>>(&self, fontcollectionloader: Param0) -> ::windows::runtime::Result<()> {
6012         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontcollectionloader.into_param().abi()).ok()
6013     }
6014     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile>6015     pub unsafe fn CreateFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<IDWriteFontFile> {
6016         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6017         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), &mut result__).from_abi::<IDWriteFontFile>(result__)
6018     }
CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile>6019     pub unsafe fn CreateCustomFontFileReference<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
6020         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6021         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), fontfileloader.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
6022     }
CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace>6023     pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::std::option::Option<IDWriteFontFile>, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace> {
6024         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6025         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace>(result__)
6026     }
CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams>6027     pub unsafe fn CreateRenderingParams(&self) -> ::windows::runtime::Result<IDWriteRenderingParams> {
6028         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6029         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
6030     }
6031     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams>6032     pub unsafe fn CreateMonitorRenderingParams<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HMONITOR>>(&self, monitor: Param0) -> ::windows::runtime::Result<IDWriteRenderingParams> {
6033         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6034         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), monitor.into_param().abi(), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
6035     }
CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams>6036     pub unsafe fn CreateCustomRenderingParams(&self, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams> {
6037         let mut result__: <IDWriteRenderingParams as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6038         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams>(result__)
6039     }
RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>6040     pub unsafe fn RegisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
6041         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
6042     }
UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()>6043     pub unsafe fn UnregisterFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader>>(&self, fontfileloader: Param0) -> ::windows::runtime::Result<()> {
6044         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), fontfileloader.into_param().abi()).ok()
6045     }
6046     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat>6047     pub unsafe fn CreateTextFormat<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: Param6) -> ::windows::runtime::Result<IDWriteTextFormat> {
6048         let mut result__: <IDWriteTextFormat as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6049         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstyle), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat>(result__)
6050     }
CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography>6051     pub unsafe fn CreateTypography(&self) -> ::windows::runtime::Result<IDWriteTypography> {
6052         let mut result__: <IDWriteTypography as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6053         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTypography>(result__)
6054     }
GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop>6055     pub unsafe fn GetGdiInterop(&self) -> ::windows::runtime::Result<IDWriteGdiInterop> {
6056         let mut result__: <IDWriteGdiInterop as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6057         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteGdiInterop>(result__)
6058     }
6059     #[cfg(feature = "Win32_Foundation")]
CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout>6060     pub unsafe fn CreateTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, string: Param0, stringlength: u32, textformat: Param2, maxwidth: f32, maxheight: f32) -> ::windows::runtime::Result<IDWriteTextLayout> {
6061         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6062         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), string.into_param().abi(), ::std::mem::transmute(stringlength), textformat.into_param().abi(), ::std::mem::transmute(maxwidth), ::std::mem::transmute(maxheight), &mut result__).from_abi::<IDWriteTextLayout>(result__)
6063     }
6064     #[cfg(feature = "Win32_Foundation")]
CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout>6065     pub unsafe fn CreateGdiCompatibleTextLayout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, string: Param0, stringlength: u32, textformat: Param2, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param7) -> ::windows::runtime::Result<IDWriteTextLayout> {
6066         let mut result__: <IDWriteTextLayout as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6067         (::windows::runtime::Interface::vtable(self).19)(
6068             ::std::mem::transmute_copy(self),
6069             string.into_param().abi(),
6070             ::std::mem::transmute(stringlength),
6071             textformat.into_param().abi(),
6072             ::std::mem::transmute(layoutwidth),
6073             ::std::mem::transmute(layoutheight),
6074             ::std::mem::transmute(pixelsperdip),
6075             ::std::mem::transmute(transform),
6076             usegdinatural.into_param().abi(),
6077             &mut result__,
6078         )
6079         .from_abi::<IDWriteTextLayout>(result__)
6080     }
CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject>6081     pub unsafe fn CreateEllipsisTrimmingSign<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextFormat>>(&self, textformat: Param0) -> ::windows::runtime::Result<IDWriteInlineObject> {
6082         let mut result__: <IDWriteInlineObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6083         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), textformat.into_param().abi(), &mut result__).from_abi::<IDWriteInlineObject>(result__)
6084     }
CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer>6085     pub unsafe fn CreateTextAnalyzer(&self) -> ::windows::runtime::Result<IDWriteTextAnalyzer> {
6086         let mut result__: <IDWriteTextAnalyzer as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6087         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteTextAnalyzer>(result__)
6088     }
6089     #[cfg(feature = "Win32_Foundation")]
CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution>6090     pub unsafe fn CreateNumberSubstitution<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: Param1, ignoreuseroverride: Param2) -> ::windows::runtime::Result<IDWriteNumberSubstitution> {
6091         let mut result__: <IDWriteNumberSubstitution as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6092         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(substitutionmethod), localename.into_param().abi(), ignoreuseroverride.into_param().abi(), &mut result__).from_abi::<IDWriteNumberSubstitution>(result__)
6093     }
6094     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>6095     pub unsafe fn CreateGlyphRunAnalysis(&self, glyphrun: *const DWRITE_GLYPH_RUN, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
6096         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6097         (::windows::runtime::Interface::vtable(self).23)(
6098             ::std::mem::transmute_copy(self),
6099             ::std::mem::transmute(glyphrun),
6100             ::std::mem::transmute(pixelsperdip),
6101             ::std::mem::transmute(transform),
6102             ::std::mem::transmute(renderingmode),
6103             ::std::mem::transmute(measuringmode),
6104             ::std::mem::transmute(baselineoriginx),
6105             ::std::mem::transmute(baselineoriginy),
6106             &mut result__,
6107         )
6108         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
6109     }
6110     #[cfg(feature = "Win32_Foundation")]
GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()>6111     pub unsafe fn GetEudcFontCollection<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, checkforupdates: Param1) -> ::windows::runtime::Result<()> {
6112         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
6113     }
CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1>6114     pub unsafe fn CreateCustomRenderingParams2(&self, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams1> {
6115         let mut result__: <IDWriteRenderingParams1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6116         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(gamma), ::std::mem::transmute(enhancedcontrast), ::std::mem::transmute(enhancedcontrastgrayscale), ::std::mem::transmute(cleartypelevel), ::std::mem::transmute(pixelgeometry), ::std::mem::transmute(renderingmode), &mut result__).from_abi::<IDWriteRenderingParams1>(result__)
6117     }
GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>6118     pub unsafe fn GetSystemFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
6119         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6120         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
6121     }
CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder>6122     pub unsafe fn CreateFontFallbackBuilder(&self) -> ::windows::runtime::Result<IDWriteFontFallbackBuilder> {
6123         let mut result__: <IDWriteFontFallbackBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6124         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallbackBuilder>(result__)
6125     }
6126     #[cfg(feature = "Win32_Foundation")]
TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator>6127     pub unsafe fn TranslateColorGlyphRun(&self, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator> {
6128         let mut result__: <IDWriteColorGlyphRunEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6129         (::windows::runtime::Interface::vtable(self).28)(
6130             ::std::mem::transmute_copy(self),
6131             ::std::mem::transmute(baselineoriginx),
6132             ::std::mem::transmute(baselineoriginy),
6133             ::std::mem::transmute(glyphrun),
6134             ::std::mem::transmute(glyphrundescription),
6135             ::std::mem::transmute(measuringmode),
6136             ::std::mem::transmute(worldtodevicetransform),
6137             ::std::mem::transmute(colorpaletteindex),
6138             &mut result__,
6139         )
6140         .from_abi::<IDWriteColorGlyphRunEnumerator>(result__)
6141     }
CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2>6142     pub unsafe fn CreateCustomRenderingParams3(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams2> {
6143         let mut result__: <IDWriteRenderingParams2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6144         (::windows::runtime::Interface::vtable(self).29)(
6145             ::std::mem::transmute_copy(self),
6146             ::std::mem::transmute(gamma),
6147             ::std::mem::transmute(enhancedcontrast),
6148             ::std::mem::transmute(grayscaleenhancedcontrast),
6149             ::std::mem::transmute(cleartypelevel),
6150             ::std::mem::transmute(pixelgeometry),
6151             ::std::mem::transmute(renderingmode),
6152             ::std::mem::transmute(gridfitmode),
6153             &mut result__,
6154         )
6155         .from_abi::<IDWriteRenderingParams2>(result__)
6156     }
6157     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>6158     pub unsafe fn CreateGlyphRunAnalysis2(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
6159         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6160         (::windows::runtime::Interface::vtable(self).30)(
6161             ::std::mem::transmute_copy(self),
6162             ::std::mem::transmute(glyphrun),
6163             ::std::mem::transmute(transform),
6164             ::std::mem::transmute(renderingmode),
6165             ::std::mem::transmute(measuringmode),
6166             ::std::mem::transmute(gridfitmode),
6167             ::std::mem::transmute(antialiasmode),
6168             ::std::mem::transmute(baselineoriginx),
6169             ::std::mem::transmute(baselineoriginy),
6170             &mut result__,
6171         )
6172         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
6173     }
6174     #[cfg(feature = "Win32_Foundation")]
CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis>6175     pub unsafe fn CreateGlyphRunAnalysis3(&self, glyphrun: *const DWRITE_GLYPH_RUN, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32) -> ::windows::runtime::Result<IDWriteGlyphRunAnalysis> {
6176         let mut result__: <IDWriteGlyphRunAnalysis as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6177         (::windows::runtime::Interface::vtable(self).31)(
6178             ::std::mem::transmute_copy(self),
6179             ::std::mem::transmute(glyphrun),
6180             ::std::mem::transmute(transform),
6181             ::std::mem::transmute(renderingmode),
6182             ::std::mem::transmute(measuringmode),
6183             ::std::mem::transmute(gridfitmode),
6184             ::std::mem::transmute(antialiasmode),
6185             ::std::mem::transmute(baselineoriginx),
6186             ::std::mem::transmute(baselineoriginy),
6187             &mut result__,
6188         )
6189         .from_abi::<IDWriteGlyphRunAnalysis>(result__)
6190     }
CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3>6191     pub unsafe fn CreateCustomRenderingParams4(&self, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE) -> ::windows::runtime::Result<IDWriteRenderingParams3> {
6192         let mut result__: <IDWriteRenderingParams3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6193         (::windows::runtime::Interface::vtable(self).32)(
6194             ::std::mem::transmute_copy(self),
6195             ::std::mem::transmute(gamma),
6196             ::std::mem::transmute(enhancedcontrast),
6197             ::std::mem::transmute(grayscaleenhancedcontrast),
6198             ::std::mem::transmute(cleartypelevel),
6199             ::std::mem::transmute(pixelgeometry),
6200             ::std::mem::transmute(renderingmode),
6201             ::std::mem::transmute(gridfitmode),
6202             &mut result__,
6203         )
6204         .from_abi::<IDWriteRenderingParams3>(result__)
6205     }
CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>6206     pub unsafe fn CreateFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
6207         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6208         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
6209     }
6210     #[cfg(feature = "Win32_Foundation")]
CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference>6211     pub unsafe fn CreateFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
6212         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6213         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), filepath.into_param().abi(), ::std::mem::transmute(lastwritetime), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
6214     }
GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>6215     pub unsafe fn GetSystemFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
6216         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6217         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
6218     }
CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder>6219     pub unsafe fn CreateFontSetBuilder(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder> {
6220         let mut result__: <IDWriteFontSetBuilder as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6221         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder>(result__)
6222     }
CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1>6223     pub unsafe fn CreateFontCollectionFromFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<IDWriteFontCollection1> {
6224         let mut result__: <IDWriteFontCollection1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6225         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), fontset.into_param().abi(), &mut result__).from_abi::<IDWriteFontCollection1>(result__)
6226     }
6227     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()>6228     pub unsafe fn GetSystemFontCollection2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontcollection: *mut ::std::option::Option<IDWriteFontCollection1>, checkforupdates: Param2) -> ::windows::runtime::Result<()> {
6229         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontcollection), checkforupdates.into_param().abi()).ok()
6230     }
GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue>6231     pub unsafe fn GetFontDownloadQueue(&self) -> ::windows::runtime::Result<IDWriteFontDownloadQueue> {
6232         let mut result__: <IDWriteFontDownloadQueue as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6233         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontDownloadQueue>(result__)
6234     }
6235     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1>6236     pub unsafe fn TranslateColorGlyphRun2<'a, Param0: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, baselineorigin: Param0, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32) -> ::windows::runtime::Result<IDWriteColorGlyphRunEnumerator1> {
6237         let mut result__: <IDWriteColorGlyphRunEnumerator1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6238         (::windows::runtime::Interface::vtable(self).40)(
6239             ::std::mem::transmute_copy(self),
6240             baselineorigin.into_param().abi(),
6241             ::std::mem::transmute(glyphrun),
6242             ::std::mem::transmute(glyphrundescription),
6243             ::std::mem::transmute(desiredglyphimageformats),
6244             ::std::mem::transmute(measuringmode),
6245             ::std::mem::transmute(worldanddpitransform),
6246             ::std::mem::transmute(colorpaletteindex),
6247             &mut result__,
6248         )
6249         .from_abi::<IDWriteColorGlyphRunEnumerator1>(result__)
6250     }
6251     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>6252     pub unsafe fn ComputeGlyphOrigins<'a, Param1: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, baselineorigin: Param1) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
6253         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6254         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), baselineorigin.into_param().abi(), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
6255     }
6256     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F>6257     pub unsafe fn ComputeGlyphOrigins2<'a, Param2: ::windows::runtime::IntoParam<'a, super::Direct2D::D2D_POINT_2F>>(&self, glyphrun: *const DWRITE_GLYPH_RUN, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: Param2, worldanddpitransform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<super::Direct2D::D2D_POINT_2F> {
6258         let mut result__: <super::Direct2D::D2D_POINT_2F as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6259         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphrun), ::std::mem::transmute(measuringmode), baselineorigin.into_param().abi(), ::std::mem::transmute(worldanddpitransform), &mut result__).from_abi::<super::Direct2D::D2D_POINT_2F>(result__)
6260     }
CreateFontSetBuilder2(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder1>6261     pub unsafe fn CreateFontSetBuilder2(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder1> {
6262         let mut result__: <IDWriteFontSetBuilder1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6263         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder1>(result__)
6264     }
CreateInMemoryFontFileLoader(&self) -> ::windows::runtime::Result<IDWriteInMemoryFontFileLoader>6265     pub unsafe fn CreateInMemoryFontFileLoader(&self) -> ::windows::runtime::Result<IDWriteInMemoryFontFileLoader> {
6266         let mut result__: <IDWriteInMemoryFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6267         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteInMemoryFontFileLoader>(result__)
6268     }
6269     #[cfg(feature = "Win32_Foundation")]
CreateHttpFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, referrerurl: Param0, extraheaders: Param1) -> ::windows::runtime::Result<IDWriteRemoteFontFileLoader>6270     pub unsafe fn CreateHttpFontFileLoader<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, referrerurl: Param0, extraheaders: Param1) -> ::windows::runtime::Result<IDWriteRemoteFontFileLoader> {
6271         let mut result__: <IDWriteRemoteFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6272         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), referrerurl.into_param().abi(), extraheaders.into_param().abi(), &mut result__).from_abi::<IDWriteRemoteFontFileLoader>(result__)
6273     }
AnalyzeContainerType(&self, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE6274     pub unsafe fn AnalyzeContainerType(&self, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE {
6275         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(filedata), ::std::mem::transmute(filedatasize)))
6276     }
UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>6277     pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
6278         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6279         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(containertype), ::std::mem::transmute(filedata), ::std::mem::transmute(filedatasize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
6280     }
CreateFontFaceReference3<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1>6281     pub unsafe fn CreateFontFaceReference3<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1> {
6282         let mut result__: <IDWriteFontFaceReference1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6283         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), ::std::mem::transmute(fontsimulations), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontFaceReference1>(result__)
6284     }
CreateFontResource<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32) -> ::windows::runtime::Result<IDWriteFontResource>6285     pub unsafe fn CreateFontResource<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, faceindex: u32) -> ::windows::runtime::Result<IDWriteFontResource> {
6286         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6287         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), fontfile.into_param().abi(), ::std::mem::transmute(faceindex), &mut result__).from_abi::<IDWriteFontResource>(result__)
6288     }
6289     #[cfg(feature = "Win32_Foundation")]
GetSystemFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0) -> ::windows::runtime::Result<IDWriteFontSet1>6290     pub unsafe fn GetSystemFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0) -> ::windows::runtime::Result<IDWriteFontSet1> {
6291         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6292         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
6293     }
6294     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection3<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2>6295     pub unsafe fn GetSystemFontCollection3<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2> {
6296         let mut result__: <IDWriteFontCollection2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6297         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteFontCollection2>(result__)
6298     }
CreateFontCollectionFromFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2>6299     pub unsafe fn CreateFontCollectionFromFontSet2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection2> {
6300         let mut result__: <IDWriteFontCollection2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6301         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), fontset.into_param().abi(), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteFontCollection2>(result__)
6302     }
CreateFontSetBuilder3(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder2>6303     pub unsafe fn CreateFontSetBuilder3(&self) -> ::windows::runtime::Result<IDWriteFontSetBuilder2> {
6304         let mut result__: <IDWriteFontSetBuilder2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6305         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSetBuilder2>(result__)
6306     }
6307     #[cfg(feature = "Win32_Foundation")]
CreateTextFormat2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontsize: f32, localename: Param5) -> ::windows::runtime::Result<IDWriteTextFormat3>6308     pub unsafe fn CreateTextFormat2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontfamilyname: Param0, fontcollection: Param1, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontsize: f32, localename: Param5) -> ::windows::runtime::Result<IDWriteTextFormat3> {
6309         let mut result__: <IDWriteTextFormat3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6310         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), fontcollection.into_param().abi(), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), ::std::mem::transmute(fontsize), localename.into_param().abi(), &mut result__).from_abi::<IDWriteTextFormat3>(result__)
6311     }
6312     #[cfg(feature = "Win32_Foundation")]
GetSystemFontSet3<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0) -> ::windows::runtime::Result<IDWriteFontSet2>6313     pub unsafe fn GetSystemFontSet3<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0) -> ::windows::runtime::Result<IDWriteFontSet2> {
6314         let mut result__: <IDWriteFontSet2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6315         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet2>(result__)
6316     }
6317     #[cfg(feature = "Win32_Foundation")]
GetSystemFontCollection4<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection3>6318     pub unsafe fn GetSystemFontCollection4<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, includedownloadablefonts: Param0, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteFontCollection3> {
6319         let mut result__: <IDWriteFontCollection3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6320         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), includedownloadablefonts.into_param().abi(), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteFontCollection3>(result__)
6321     }
6322 }
6323 unsafe impl ::windows::runtime::Interface for IDWriteFactory7 {
6324     type Vtable = IDWriteFactory7_abi;
6325     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(902881459, 36982, 19758, [160, 22, 169, 27, 86, 138, 6, 180]);
6326 }
6327 impl ::std::convert::From<IDWriteFactory7> for ::windows::runtime::IUnknown {
from(value: IDWriteFactory7) -> Self6328     fn from(value: IDWriteFactory7) -> Self {
6329         unsafe { ::std::mem::transmute(value) }
6330     }
6331 }
6332 impl ::std::convert::From<&IDWriteFactory7> for ::windows::runtime::IUnknown {
from(value: &IDWriteFactory7) -> Self6333     fn from(value: &IDWriteFactory7) -> Self {
6334         ::std::convert::From::from(::std::clone::Clone::clone(value))
6335     }
6336 }
6337 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6338     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6339         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6340     }
6341 }
6342 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6343     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6344         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6345     }
6346 }
6347 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory6 {
from(value: IDWriteFactory7) -> Self6348     fn from(value: IDWriteFactory7) -> Self {
6349         unsafe { ::std::mem::transmute(value) }
6350     }
6351 }
6352 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory6 {
from(value: &IDWriteFactory7) -> Self6353     fn from(value: &IDWriteFactory7) -> Self {
6354         ::std::convert::From::from(::std::clone::Clone::clone(value))
6355     }
6356 }
6357 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory6> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory6>6358     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory6> {
6359         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory6>::into(self))
6360     }
6361 }
6362 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory6> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory6>6363     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory6> {
6364         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory6>::into(::std::clone::Clone::clone(self)))
6365     }
6366 }
6367 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory5 {
from(value: IDWriteFactory7) -> Self6368     fn from(value: IDWriteFactory7) -> Self {
6369         unsafe { ::std::mem::transmute(value) }
6370     }
6371 }
6372 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory5 {
from(value: &IDWriteFactory7) -> Self6373     fn from(value: &IDWriteFactory7) -> Self {
6374         ::std::convert::From::from(::std::clone::Clone::clone(value))
6375     }
6376 }
6377 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory5> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5>6378     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5> {
6379         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory5>::into(self))
6380     }
6381 }
6382 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory5> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5>6383     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory5> {
6384         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory5>::into(::std::clone::Clone::clone(self)))
6385     }
6386 }
6387 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory4 {
from(value: IDWriteFactory7) -> Self6388     fn from(value: IDWriteFactory7) -> Self {
6389         unsafe { ::std::mem::transmute(value) }
6390     }
6391 }
6392 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory4 {
from(value: &IDWriteFactory7) -> Self6393     fn from(value: &IDWriteFactory7) -> Self {
6394         ::std::convert::From::from(::std::clone::Clone::clone(value))
6395     }
6396 }
6397 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory4> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4>6398     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4> {
6399         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory4>::into(self))
6400     }
6401 }
6402 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory4> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4>6403     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory4> {
6404         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory4>::into(::std::clone::Clone::clone(self)))
6405     }
6406 }
6407 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory3 {
from(value: IDWriteFactory7) -> Self6408     fn from(value: IDWriteFactory7) -> Self {
6409         unsafe { ::std::mem::transmute(value) }
6410     }
6411 }
6412 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory3 {
from(value: &IDWriteFactory7) -> Self6413     fn from(value: &IDWriteFactory7) -> Self {
6414         ::std::convert::From::from(::std::clone::Clone::clone(value))
6415     }
6416 }
6417 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>6418     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
6419         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(self))
6420     }
6421 }
6422 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory3> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3>6423     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory3> {
6424         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory3>::into(::std::clone::Clone::clone(self)))
6425     }
6426 }
6427 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory2 {
from(value: IDWriteFactory7) -> Self6428     fn from(value: IDWriteFactory7) -> Self {
6429         unsafe { ::std::mem::transmute(value) }
6430     }
6431 }
6432 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory2 {
from(value: &IDWriteFactory7) -> Self6433     fn from(value: &IDWriteFactory7) -> Self {
6434         ::std::convert::From::from(::std::clone::Clone::clone(value))
6435     }
6436 }
6437 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>6438     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
6439         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(self))
6440     }
6441 }
6442 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory2> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2>6443     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory2> {
6444         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory2>::into(::std::clone::Clone::clone(self)))
6445     }
6446 }
6447 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory1 {
from(value: IDWriteFactory7) -> Self6448     fn from(value: IDWriteFactory7) -> Self {
6449         unsafe { ::std::mem::transmute(value) }
6450     }
6451 }
6452 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory1 {
from(value: &IDWriteFactory7) -> Self6453     fn from(value: &IDWriteFactory7) -> Self {
6454         ::std::convert::From::from(::std::clone::Clone::clone(value))
6455     }
6456 }
6457 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>6458     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
6459         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(self))
6460     }
6461 }
6462 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory1> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1>6463     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory1> {
6464         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory1>::into(::std::clone::Clone::clone(self)))
6465     }
6466 }
6467 impl ::std::convert::From<IDWriteFactory7> for IDWriteFactory {
from(value: IDWriteFactory7) -> Self6468     fn from(value: IDWriteFactory7) -> Self {
6469         unsafe { ::std::mem::transmute(value) }
6470     }
6471 }
6472 impl ::std::convert::From<&IDWriteFactory7> for IDWriteFactory {
from(value: &IDWriteFactory7) -> Self6473     fn from(value: &IDWriteFactory7) -> Self {
6474         ::std::convert::From::from(::std::clone::Clone::clone(value))
6475     }
6476 }
6477 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>6478     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
6479         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(self))
6480     }
6481 }
6482 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFactory> for &IDWriteFactory7 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory>6483     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFactory> {
6484         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFactory>::into(::std::clone::Clone::clone(self)))
6485     }
6486 }
6487 #[repr(C)]
6488 #[doc(hidden)]
6489 pub struct IDWriteFactory7_abi(
6490     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6491     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6492     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6493     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6494     #[cfg(not(feature = "Win32_Foundation"))] usize,
6495     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, collectionloader: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6496     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6497     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollectionloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6498     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6499     #[cfg(not(feature = "Win32_Foundation"))] usize,
6500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacetype: DWRITE_FONT_FACE_TYPE, numberoffiles: u32, fontfiles: *const ::windows::runtime::RawPtr, faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6502     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6503     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, monitor: super::Gdi::HMONITOR, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6504     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
6505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6508     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, fontstyle: DWRITE_FONT_STYLE, fontstretch: DWRITE_FONT_STRETCH, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6509     #[cfg(not(feature = "Win32_Foundation"))] usize,
6510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gdiinterop: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6512     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, maxwidth: f32, maxheight: f32, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6513     #[cfg(not(feature = "Win32_Foundation"))] usize,
6514     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, string: super::super::Foundation::PWSTR, stringlength: u32, textformat: ::windows::runtime::RawPtr, layoutwidth: f32, layoutheight: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, textlayout: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6515     #[cfg(not(feature = "Win32_Foundation"))] usize,
6516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textformat: ::windows::runtime::RawPtr, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6517     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textanalyzer: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6518     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, substitutionmethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localename: super::super::Foundation::PWSTR, ignoreuseroverride: super::super::Foundation::BOOL, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6519     #[cfg(not(feature = "Win32_Foundation"))] usize,
6520     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, pixelsperdip: f32, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6521     #[cfg(not(feature = "Win32_Foundation"))] usize,
6522     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6523     #[cfg(not(feature = "Win32_Foundation"))] usize,
6524     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, enhancedcontrastgrayscale: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6525     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6526     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallbackbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6527     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineoriginx: f32, baselineoriginy: f32, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, measuringmode: DWRITE_MEASURING_MODE, worldtodevicetransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6528     #[cfg(not(feature = "Win32_Foundation"))] usize,
6529     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6530     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6531     #[cfg(not(feature = "Win32_Foundation"))] usize,
6532     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, transform: *const DWRITE_MATRIX, renderingmode: DWRITE_RENDERING_MODE1, measuringmode: DWRITE_MEASURING_MODE, gridfitmode: DWRITE_GRID_FIT_MODE, antialiasmode: DWRITE_TEXT_ANTIALIAS_MODE, baselineoriginx: f32, baselineoriginy: f32, glyphrunanalysis: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6533     #[cfg(not(feature = "Win32_Foundation"))] usize,
6534     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, gamma: f32, enhancedcontrast: f32, grayscaleenhancedcontrast: f32, cleartypelevel: f32, pixelgeometry: DWRITE_PIXEL_GEOMETRY, renderingmode: DWRITE_RENDERING_MODE1, gridfitmode: DWRITE_GRID_FIT_MODE, renderingparams: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6535     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6536     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR, lastwritetime: *const super::super::Foundation::FILETIME, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6537     #[cfg(not(feature = "Win32_Foundation"))] usize,
6538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6539     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6541     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontcollection: *mut ::windows::runtime::RawPtr, checkforupdates: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6542     #[cfg(not(feature = "Win32_Foundation"))] usize,
6543     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontdownloadqueue: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6544     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
6545     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, desiredglyphimageformats: DWRITE_GLYPH_IMAGE_FORMATS, measuringmode: DWRITE_MEASURING_MODE, worldanddpitransform: *const DWRITE_MATRIX, colorpaletteindex: u32, colorlayers: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6546     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
6547     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, baselineorigin: super::Direct2D::D2D_POINT_2F, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
6548     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
6549     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, measuringmode: DWRITE_MEASURING_MODE, baselineorigin: super::Direct2D::D2D_POINT_2F, worldanddpitransform: *const DWRITE_MATRIX, glyphorigins: *mut super::Direct2D::D2D_POINT_2F) -> ::windows::runtime::HRESULT,
6550     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
6551     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6552     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, newloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6553     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, referrerurl: super::super::Foundation::PWSTR, extraheaders: super::super::Foundation::PWSTR, newloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6554     #[cfg(not(feature = "Win32_Foundation"))] usize,
6555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filedata: *const ::std::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE,
6556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::std::ffi::c_void, filedatasize: u32, unpackedfontstream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6557     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6558     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, faceindex: u32, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6559     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6560     #[cfg(not(feature = "Win32_Foundation"))] usize,
6561     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6562     #[cfg(not(feature = "Win32_Foundation"))] usize,
6563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsetbuilder: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6565     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, fontcollection: ::windows::runtime::RawPtr, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontsize: f32, localename: super::super::Foundation::PWSTR, textformat: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6566     #[cfg(not(feature = "Win32_Foundation"))] usize,
6567     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6568     #[cfg(not(feature = "Win32_Foundation"))] usize,
6569     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, includedownloadablefonts: super::super::Foundation::BOOL, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6570     #[cfg(not(feature = "Win32_Foundation"))] usize,
6571 );
6572 #[repr(transparent)]
6573 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6574 pub struct IDWriteFont(::windows::runtime::IUnknown);
6575 impl IDWriteFont {
GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily>6576     pub unsafe fn GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily> {
6577         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6578         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFamily>(result__)
6579     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT6580     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
6581         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
6582     }
GetStretch(&self) -> DWRITE_FONT_STRETCH6583     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
6584         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
6585     }
GetStyle(&self) -> DWRITE_FONT_STYLE6586     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
6587         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
6588     }
6589     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL6590     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
6591         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
6592     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>6593     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
6594         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6595         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
6596     }
6597     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>6598     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
6599         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
6600     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS6601     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
6602         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
6603     }
GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS)6604     pub unsafe fn GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS) {
6605         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6606     }
6607     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL>6608     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
6609         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6610         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
6611     }
CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace>6612     pub unsafe fn CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace> {
6613         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6614         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace>(result__)
6615     }
6616 }
6617 unsafe impl ::windows::runtime::Interface for IDWriteFont {
6618     type Vtable = IDWriteFont_abi;
6619     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2899404438, 35860, 20317, [135, 126, 254, 63, 193, 211, 39, 55]);
6620 }
6621 impl ::std::convert::From<IDWriteFont> for ::windows::runtime::IUnknown {
from(value: IDWriteFont) -> Self6622     fn from(value: IDWriteFont) -> Self {
6623         unsafe { ::std::mem::transmute(value) }
6624     }
6625 }
6626 impl ::std::convert::From<&IDWriteFont> for ::windows::runtime::IUnknown {
from(value: &IDWriteFont) -> Self6627     fn from(value: &IDWriteFont) -> Self {
6628         ::std::convert::From::from(::std::clone::Clone::clone(value))
6629     }
6630 }
6631 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFont {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6632     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6633         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6634     }
6635 }
6636 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFont {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6637     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6638         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6639     }
6640 }
6641 #[repr(C)]
6642 #[doc(hidden)]
6643 pub struct IDWriteFont_abi(
6644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
6649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
6650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
6651     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6652     #[cfg(not(feature = "Win32_Foundation"))] usize,
6653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6654     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6655     #[cfg(not(feature = "Win32_Foundation"))] usize,
6656     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
6657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS),
6658     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6659     #[cfg(not(feature = "Win32_Foundation"))] usize,
6660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6661 );
6662 #[repr(transparent)]
6663 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6664 pub struct IDWriteFont1(::windows::runtime::IUnknown);
6665 impl IDWriteFont1 {
GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily>6666     pub unsafe fn GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily> {
6667         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6668         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFamily>(result__)
6669     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT6670     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
6671         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
6672     }
GetStretch(&self) -> DWRITE_FONT_STRETCH6673     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
6674         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
6675     }
GetStyle(&self) -> DWRITE_FONT_STYLE6676     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
6677         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
6678     }
6679     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL6680     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
6681         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
6682     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>6683     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
6684         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6685         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
6686     }
6687     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>6688     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
6689         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
6690     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS6691     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
6692         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
6693     }
GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS)6694     pub unsafe fn GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS) {
6695         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6696     }
6697     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL>6698     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
6699         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6700         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
6701     }
CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace>6702     pub unsafe fn CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace> {
6703         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6704         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace>(result__)
6705     }
6706     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)6707     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
6708         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6709     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)6710     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
6711         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
6712     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>6713     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
6714         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
6715     }
6716     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL6717     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
6718         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self)))
6719     }
6720 }
6721 unsafe impl ::windows::runtime::Interface for IDWriteFont1 {
6722     type Vtable = IDWriteFont1_abi;
6723     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2899404438, 35860, 20317, [135, 126, 254, 63, 193, 211, 39, 56]);
6724 }
6725 impl ::std::convert::From<IDWriteFont1> for ::windows::runtime::IUnknown {
from(value: IDWriteFont1) -> Self6726     fn from(value: IDWriteFont1) -> Self {
6727         unsafe { ::std::mem::transmute(value) }
6728     }
6729 }
6730 impl ::std::convert::From<&IDWriteFont1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFont1) -> Self6731     fn from(value: &IDWriteFont1) -> Self {
6732         ::std::convert::From::from(::std::clone::Clone::clone(value))
6733     }
6734 }
6735 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFont1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6736     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6737         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6738     }
6739 }
6740 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFont1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6741     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6742         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6743     }
6744 }
6745 impl ::std::convert::From<IDWriteFont1> for IDWriteFont {
from(value: IDWriteFont1) -> Self6746     fn from(value: IDWriteFont1) -> Self {
6747         unsafe { ::std::mem::transmute(value) }
6748     }
6749 }
6750 impl ::std::convert::From<&IDWriteFont1> for IDWriteFont {
from(value: &IDWriteFont1) -> Self6751     fn from(value: &IDWriteFont1) -> Self {
6752         ::std::convert::From::from(::std::clone::Clone::clone(value))
6753     }
6754 }
6755 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont> for IDWriteFont1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont>6756     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont> {
6757         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont>::into(self))
6758     }
6759 }
6760 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont> for &IDWriteFont1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont>6761     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont> {
6762         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont>::into(::std::clone::Clone::clone(self)))
6763     }
6764 }
6765 #[repr(C)]
6766 #[doc(hidden)]
6767 pub struct IDWriteFont1_abi(
6768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6770     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6771     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
6773     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
6774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
6775     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6776     #[cfg(not(feature = "Win32_Foundation"))] usize,
6777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6778     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6779     #[cfg(not(feature = "Win32_Foundation"))] usize,
6780     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
6781     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS),
6782     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6783     #[cfg(not(feature = "Win32_Foundation"))] usize,
6784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6785     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
6786     #[cfg(not(feature = "Win32_Foundation"))] usize,
6787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
6788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
6789     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6790     #[cfg(not(feature = "Win32_Foundation"))] usize,
6791 );
6792 #[repr(transparent)]
6793 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6794 pub struct IDWriteFont2(::windows::runtime::IUnknown);
6795 impl IDWriteFont2 {
GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily>6796     pub unsafe fn GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily> {
6797         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6798         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFamily>(result__)
6799     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT6800     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
6801         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
6802     }
GetStretch(&self) -> DWRITE_FONT_STRETCH6803     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
6804         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
6805     }
GetStyle(&self) -> DWRITE_FONT_STYLE6806     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
6807         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
6808     }
6809     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL6810     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
6811         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
6812     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>6813     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
6814         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6815         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
6816     }
6817     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>6818     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
6819         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
6820     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS6821     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
6822         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
6823     }
GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS)6824     pub unsafe fn GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS) {
6825         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6826     }
6827     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL>6828     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
6829         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6830         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
6831     }
CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace>6832     pub unsafe fn CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace> {
6833         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6834         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace>(result__)
6835     }
6836     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)6837     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
6838         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6839     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)6840     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
6841         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
6842     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>6843     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
6844         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
6845     }
6846     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL6847     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
6848         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self)))
6849     }
6850     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL6851     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
6852         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)))
6853     }
6854 }
6855 unsafe impl ::windows::runtime::Interface for IDWriteFont2 {
6856     type Vtable = IDWriteFont2_abi;
6857     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(695504598, 35996, 19050, [190, 11, 217, 18, 232, 83, 137, 68]);
6858 }
6859 impl ::std::convert::From<IDWriteFont2> for ::windows::runtime::IUnknown {
from(value: IDWriteFont2) -> Self6860     fn from(value: IDWriteFont2) -> Self {
6861         unsafe { ::std::mem::transmute(value) }
6862     }
6863 }
6864 impl ::std::convert::From<&IDWriteFont2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFont2) -> Self6865     fn from(value: &IDWriteFont2) -> Self {
6866         ::std::convert::From::from(::std::clone::Clone::clone(value))
6867     }
6868 }
6869 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFont2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6870     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6871         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
6872     }
6873 }
6874 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFont2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>6875     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
6876         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
6877     }
6878 }
6879 impl ::std::convert::From<IDWriteFont2> for IDWriteFont1 {
from(value: IDWriteFont2) -> Self6880     fn from(value: IDWriteFont2) -> Self {
6881         unsafe { ::std::mem::transmute(value) }
6882     }
6883 }
6884 impl ::std::convert::From<&IDWriteFont2> for IDWriteFont1 {
from(value: &IDWriteFont2) -> Self6885     fn from(value: &IDWriteFont2) -> Self {
6886         ::std::convert::From::from(::std::clone::Clone::clone(value))
6887     }
6888 }
6889 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont1> for IDWriteFont2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1>6890     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1> {
6891         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont1>::into(self))
6892     }
6893 }
6894 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont1> for &IDWriteFont2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1>6895     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1> {
6896         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont1>::into(::std::clone::Clone::clone(self)))
6897     }
6898 }
6899 impl ::std::convert::From<IDWriteFont2> for IDWriteFont {
from(value: IDWriteFont2) -> Self6900     fn from(value: IDWriteFont2) -> Self {
6901         unsafe { ::std::mem::transmute(value) }
6902     }
6903 }
6904 impl ::std::convert::From<&IDWriteFont2> for IDWriteFont {
from(value: &IDWriteFont2) -> Self6905     fn from(value: &IDWriteFont2) -> Self {
6906         ::std::convert::From::from(::std::clone::Clone::clone(value))
6907     }
6908 }
6909 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont> for IDWriteFont2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont>6910     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont> {
6911         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont>::into(self))
6912     }
6913 }
6914 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont> for &IDWriteFont2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont>6915     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont> {
6916         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont>::into(::std::clone::Clone::clone(self)))
6917     }
6918 }
6919 #[repr(C)]
6920 #[doc(hidden)]
6921 pub struct IDWriteFont2_abi(
6922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
6925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
6927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
6928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
6929     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6930     #[cfg(not(feature = "Win32_Foundation"))] usize,
6931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6932     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6933     #[cfg(not(feature = "Win32_Foundation"))] usize,
6934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
6935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS),
6936     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
6937     #[cfg(not(feature = "Win32_Foundation"))] usize,
6938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
6939     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
6940     #[cfg(not(feature = "Win32_Foundation"))] usize,
6941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
6942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
6943     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6944     #[cfg(not(feature = "Win32_Foundation"))] usize,
6945     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
6946     #[cfg(not(feature = "Win32_Foundation"))] usize,
6947 );
6948 #[repr(transparent)]
6949 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
6950 pub struct IDWriteFont3(::windows::runtime::IUnknown);
6951 impl IDWriteFont3 {
GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily>6952     pub unsafe fn GetFontFamily(&self) -> ::windows::runtime::Result<IDWriteFontFamily> {
6953         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6954         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFamily>(result__)
6955     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT6956     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
6957         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
6958     }
GetStretch(&self) -> DWRITE_FONT_STRETCH6959     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
6960         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
6961     }
GetStyle(&self) -> DWRITE_FONT_STYLE6962     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
6963         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
6964     }
6965     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL6966     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
6967         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
6968     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>6969     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
6970         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6971         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
6972     }
6973     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>6974     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
6975         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
6976     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS6977     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
6978         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
6979     }
GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS)6980     pub unsafe fn GetMetrics(&self, fontmetrics: *mut DWRITE_FONT_METRICS) {
6981         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6982     }
6983     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL>6984     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
6985         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6986         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
6987     }
CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace>6988     pub unsafe fn CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace> {
6989         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
6990         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace>(result__)
6991     }
6992     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)6993     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
6994         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
6995     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)6996     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
6997         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
6998     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>6999     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
7000         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
7001     }
7002     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL7003     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
7004         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self)))
7005     }
7006     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL7007     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
7008         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)))
7009     }
CreateFontFace2(&self) -> ::windows::runtime::Result<IDWriteFontFace3>7010     pub unsafe fn CreateFontFace2(&self) -> ::windows::runtime::Result<IDWriteFontFace3> {
7011         let mut result__: <IDWriteFontFace3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7012         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace3>(result__)
7013     }
7014     #[cfg(feature = "Win32_Foundation")]
Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0) -> super::super::Foundation::BOOL7015     pub unsafe fn Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0) -> super::super::Foundation::BOOL {
7016         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), font.into_param().abi()))
7017     }
GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference>7018     pub unsafe fn GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
7019         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7020         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
7021     }
7022     #[cfg(feature = "Win32_Foundation")]
HasCharacter2(&self, unicodevalue: u32) -> super::super::Foundation::BOOL7023     pub unsafe fn HasCharacter2(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
7024         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
7025     }
GetLocality(&self) -> DWRITE_LOCALITY7026     pub unsafe fn GetLocality(&self) -> DWRITE_LOCALITY {
7027         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
7028     }
7029 }
7030 unsafe impl ::windows::runtime::Interface for IDWriteFont3 {
7031     type Vtable = IDWriteFont3_abi;
7032     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(695504598, 35996, 19050, [190, 11, 217, 18, 232, 83, 137, 68]);
7033 }
7034 impl ::std::convert::From<IDWriteFont3> for ::windows::runtime::IUnknown {
from(value: IDWriteFont3) -> Self7035     fn from(value: IDWriteFont3) -> Self {
7036         unsafe { ::std::mem::transmute(value) }
7037     }
7038 }
7039 impl ::std::convert::From<&IDWriteFont3> for ::windows::runtime::IUnknown {
from(value: &IDWriteFont3) -> Self7040     fn from(value: &IDWriteFont3) -> Self {
7041         ::std::convert::From::from(::std::clone::Clone::clone(value))
7042     }
7043 }
7044 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7045     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7046         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7047     }
7048 }
7049 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7050     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7051         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7052     }
7053 }
7054 impl ::std::convert::From<IDWriteFont3> for IDWriteFont2 {
from(value: IDWriteFont3) -> Self7055     fn from(value: IDWriteFont3) -> Self {
7056         unsafe { ::std::mem::transmute(value) }
7057     }
7058 }
7059 impl ::std::convert::From<&IDWriteFont3> for IDWriteFont2 {
from(value: &IDWriteFont3) -> Self7060     fn from(value: &IDWriteFont3) -> Self {
7061         ::std::convert::From::from(::std::clone::Clone::clone(value))
7062     }
7063 }
7064 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont2> for IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont2>7065     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont2> {
7066         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont2>::into(self))
7067     }
7068 }
7069 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont2> for &IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont2>7070     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont2> {
7071         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont2>::into(::std::clone::Clone::clone(self)))
7072     }
7073 }
7074 impl ::std::convert::From<IDWriteFont3> for IDWriteFont1 {
from(value: IDWriteFont3) -> Self7075     fn from(value: IDWriteFont3) -> Self {
7076         unsafe { ::std::mem::transmute(value) }
7077     }
7078 }
7079 impl ::std::convert::From<&IDWriteFont3> for IDWriteFont1 {
from(value: &IDWriteFont3) -> Self7080     fn from(value: &IDWriteFont3) -> Self {
7081         ::std::convert::From::from(::std::clone::Clone::clone(value))
7082     }
7083 }
7084 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont1> for IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1>7085     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1> {
7086         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont1>::into(self))
7087     }
7088 }
7089 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont1> for &IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1>7090     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont1> {
7091         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont1>::into(::std::clone::Clone::clone(self)))
7092     }
7093 }
7094 impl ::std::convert::From<IDWriteFont3> for IDWriteFont {
from(value: IDWriteFont3) -> Self7095     fn from(value: IDWriteFont3) -> Self {
7096         unsafe { ::std::mem::transmute(value) }
7097     }
7098 }
7099 impl ::std::convert::From<&IDWriteFont3> for IDWriteFont {
from(value: &IDWriteFont3) -> Self7100     fn from(value: &IDWriteFont3) -> Self {
7101         ::std::convert::From::from(::std::clone::Clone::clone(value))
7102     }
7103 }
7104 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont> for IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont>7105     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont> {
7106         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont>::into(self))
7107     }
7108 }
7109 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFont> for &IDWriteFont3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont>7110     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFont> {
7111         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFont>::into(::std::clone::Clone::clone(self)))
7112     }
7113 }
7114 #[repr(C)]
7115 #[doc(hidden)]
7116 pub struct IDWriteFont3_abi(
7117     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7118     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7119     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7120     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7121     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
7122     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
7123     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
7124     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7125     #[cfg(not(feature = "Win32_Foundation"))] usize,
7126     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7127     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7128     #[cfg(not(feature = "Win32_Foundation"))] usize,
7129     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
7130     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS),
7131     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7132     #[cfg(not(feature = "Win32_Foundation"))] usize,
7133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7134     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
7135     #[cfg(not(feature = "Win32_Foundation"))] usize,
7136     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
7137     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
7138     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7139     #[cfg(not(feature = "Win32_Foundation"))] usize,
7140     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7141     #[cfg(not(feature = "Win32_Foundation"))] usize,
7142     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7143     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, font: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7144     #[cfg(not(feature = "Win32_Foundation"))] usize,
7145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7146     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
7147     #[cfg(not(feature = "Win32_Foundation"))] usize,
7148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_LOCALITY,
7149 );
7150 #[repr(transparent)]
7151 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7152 pub struct IDWriteFontCollection(::windows::runtime::IUnknown);
7153 impl IDWriteFontCollection {
GetFontFamilyCount(&self) -> u327154     pub unsafe fn GetFontFamilyCount(&self) -> u32 {
7155         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
7156     }
GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily>7157     pub unsafe fn GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily> {
7158         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7159         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily>(result__)
7160     }
7161     #[cfg(feature = "Win32_Foundation")]
FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>7162     pub unsafe fn FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
7163         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(index), ::std::mem::transmute(exists)).ok()
7164     }
GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont>7165     pub unsafe fn GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont> {
7166         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7167         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), &mut result__).from_abi::<IDWriteFont>(result__)
7168     }
7169 }
7170 unsafe impl ::windows::runtime::Interface for IDWriteFontCollection {
7171     type Vtable = IDWriteFontCollection_abi;
7172     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2823613954, 16106, 20206, [168, 39, 135, 193, 160, 42, 15, 204]);
7173 }
7174 impl ::std::convert::From<IDWriteFontCollection> for ::windows::runtime::IUnknown {
from(value: IDWriteFontCollection) -> Self7175     fn from(value: IDWriteFontCollection) -> Self {
7176         unsafe { ::std::mem::transmute(value) }
7177     }
7178 }
7179 impl ::std::convert::From<&IDWriteFontCollection> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontCollection) -> Self7180     fn from(value: &IDWriteFontCollection) -> Self {
7181         ::std::convert::From::from(::std::clone::Clone::clone(value))
7182     }
7183 }
7184 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontCollection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7185     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7186         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7187     }
7188 }
7189 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontCollection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7190     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7191         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7192     }
7193 }
7194 #[repr(C)]
7195 #[doc(hidden)]
7196 pub struct IDWriteFontCollection_abi(
7197     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7199     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7201     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7202     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7203     #[cfg(not(feature = "Win32_Foundation"))] usize,
7204     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7205 );
7206 #[repr(transparent)]
7207 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7208 pub struct IDWriteFontCollection1(::windows::runtime::IUnknown);
7209 impl IDWriteFontCollection1 {
GetFontFamilyCount(&self) -> u327210     pub unsafe fn GetFontFamilyCount(&self) -> u32 {
7211         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
7212     }
GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily>7213     pub unsafe fn GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily> {
7214         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7215         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily>(result__)
7216     }
7217     #[cfg(feature = "Win32_Foundation")]
FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>7218     pub unsafe fn FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
7219         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(index), ::std::mem::transmute(exists)).ok()
7220     }
GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont>7221     pub unsafe fn GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont> {
7222         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7223         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), &mut result__).from_abi::<IDWriteFont>(result__)
7224     }
GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>7225     pub unsafe fn GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
7226         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7227         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
7228     }
GetFontFamily2(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily1>7229     pub unsafe fn GetFontFamily2(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily1> {
7230         let mut result__: <IDWriteFontFamily1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7231         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily1>(result__)
7232     }
7233 }
7234 unsafe impl ::windows::runtime::Interface for IDWriteFontCollection1 {
7235     type Vtable = IDWriteFontCollection1_abi;
7236     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1398296897, 55800, 16533, [131, 33, 215, 60, 246, 189, 17, 108]);
7237 }
7238 impl ::std::convert::From<IDWriteFontCollection1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontCollection1) -> Self7239     fn from(value: IDWriteFontCollection1) -> Self {
7240         unsafe { ::std::mem::transmute(value) }
7241     }
7242 }
7243 impl ::std::convert::From<&IDWriteFontCollection1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontCollection1) -> Self7244     fn from(value: &IDWriteFontCollection1) -> Self {
7245         ::std::convert::From::from(::std::clone::Clone::clone(value))
7246     }
7247 }
7248 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontCollection1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7249     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7250         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7251     }
7252 }
7253 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontCollection1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7254     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7255         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7256     }
7257 }
7258 impl ::std::convert::From<IDWriteFontCollection1> for IDWriteFontCollection {
from(value: IDWriteFontCollection1) -> Self7259     fn from(value: IDWriteFontCollection1) -> Self {
7260         unsafe { ::std::mem::transmute(value) }
7261     }
7262 }
7263 impl ::std::convert::From<&IDWriteFontCollection1> for IDWriteFontCollection {
from(value: &IDWriteFontCollection1) -> Self7264     fn from(value: &IDWriteFontCollection1) -> Self {
7265         ::std::convert::From::from(::std::clone::Clone::clone(value))
7266     }
7267 }
7268 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection> for IDWriteFontCollection1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection>7269     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection> {
7270         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection>::into(self))
7271     }
7272 }
7273 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection> for &IDWriteFontCollection1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection>7274     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection> {
7275         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection>::into(::std::clone::Clone::clone(self)))
7276     }
7277 }
7278 #[repr(C)]
7279 #[doc(hidden)]
7280 pub struct IDWriteFontCollection1_abi(
7281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7283     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7285     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7286     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7287     #[cfg(not(feature = "Win32_Foundation"))] usize,
7288     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7290     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7291 );
7292 #[repr(transparent)]
7293 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7294 pub struct IDWriteFontCollection2(::windows::runtime::IUnknown);
7295 impl IDWriteFontCollection2 {
GetFontFamilyCount(&self) -> u327296     pub unsafe fn GetFontFamilyCount(&self) -> u32 {
7297         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
7298     }
GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily>7299     pub unsafe fn GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily> {
7300         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7301         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily>(result__)
7302     }
7303     #[cfg(feature = "Win32_Foundation")]
FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>7304     pub unsafe fn FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
7305         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(index), ::std::mem::transmute(exists)).ok()
7306     }
GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont>7307     pub unsafe fn GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont> {
7308         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7309         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), &mut result__).from_abi::<IDWriteFont>(result__)
7310     }
GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>7311     pub unsafe fn GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
7312         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7313         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
7314     }
GetFontFamily2(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily1>7315     pub unsafe fn GetFontFamily2(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily1> {
7316         let mut result__: <IDWriteFontFamily1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7317         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily1>(result__)
7318     }
GetFontFamily3(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily2>7319     pub unsafe fn GetFontFamily3(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily2> {
7320         let mut result__: <IDWriteFontFamily2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7321         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily2>(result__)
7322     }
7323     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontList2>7324     pub unsafe fn GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontList2> {
7325         let mut result__: <IDWriteFontList2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7326         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontList2>(result__)
7327     }
GetFontFamilyModel(&self) -> DWRITE_FONT_FAMILY_MODEL7328     pub unsafe fn GetFontFamilyModel(&self) -> DWRITE_FONT_FAMILY_MODEL {
7329         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
7330     }
GetFontSet2(&self) -> ::windows::runtime::Result<IDWriteFontSet1>7331     pub unsafe fn GetFontSet2(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
7332         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7333         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
7334     }
7335 }
7336 unsafe impl ::windows::runtime::Interface for IDWriteFontCollection2 {
7337     type Vtable = IDWriteFontCollection2_abi;
7338     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1363163590, 17943, 16484, [191, 139, 146, 234, 131, 229, 6, 224]);
7339 }
7340 impl ::std::convert::From<IDWriteFontCollection2> for ::windows::runtime::IUnknown {
from(value: IDWriteFontCollection2) -> Self7341     fn from(value: IDWriteFontCollection2) -> Self {
7342         unsafe { ::std::mem::transmute(value) }
7343     }
7344 }
7345 impl ::std::convert::From<&IDWriteFontCollection2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontCollection2) -> Self7346     fn from(value: &IDWriteFontCollection2) -> Self {
7347         ::std::convert::From::from(::std::clone::Clone::clone(value))
7348     }
7349 }
7350 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontCollection2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7351     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7352         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7353     }
7354 }
7355 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontCollection2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7356     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7357         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7358     }
7359 }
7360 impl ::std::convert::From<IDWriteFontCollection2> for IDWriteFontCollection1 {
from(value: IDWriteFontCollection2) -> Self7361     fn from(value: IDWriteFontCollection2) -> Self {
7362         unsafe { ::std::mem::transmute(value) }
7363     }
7364 }
7365 impl ::std::convert::From<&IDWriteFontCollection2> for IDWriteFontCollection1 {
from(value: &IDWriteFontCollection2) -> Self7366     fn from(value: &IDWriteFontCollection2) -> Self {
7367         ::std::convert::From::from(::std::clone::Clone::clone(value))
7368     }
7369 }
7370 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection1> for IDWriteFontCollection2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1>7371     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1> {
7372         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection1>::into(self))
7373     }
7374 }
7375 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection1> for &IDWriteFontCollection2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1>7376     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1> {
7377         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection1>::into(::std::clone::Clone::clone(self)))
7378     }
7379 }
7380 impl ::std::convert::From<IDWriteFontCollection2> for IDWriteFontCollection {
from(value: IDWriteFontCollection2) -> Self7381     fn from(value: IDWriteFontCollection2) -> Self {
7382         unsafe { ::std::mem::transmute(value) }
7383     }
7384 }
7385 impl ::std::convert::From<&IDWriteFontCollection2> for IDWriteFontCollection {
from(value: &IDWriteFontCollection2) -> Self7386     fn from(value: &IDWriteFontCollection2) -> Self {
7387         ::std::convert::From::from(::std::clone::Clone::clone(value))
7388     }
7389 }
7390 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection> for IDWriteFontCollection2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection>7391     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection> {
7392         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection>::into(self))
7393     }
7394 }
7395 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection> for &IDWriteFontCollection2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection>7396     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection> {
7397         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection>::into(::std::clone::Clone::clone(self)))
7398     }
7399 }
7400 #[repr(C)]
7401 #[doc(hidden)]
7402 pub struct IDWriteFontCollection2_abi(
7403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7409     #[cfg(not(feature = "Win32_Foundation"))] usize,
7410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7414     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontlist: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7415     #[cfg(not(feature = "Win32_Foundation"))] usize,
7416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FAMILY_MODEL,
7417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7418 );
7419 #[repr(transparent)]
7420 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7421 pub struct IDWriteFontCollection3(::windows::runtime::IUnknown);
7422 impl IDWriteFontCollection3 {
GetFontFamilyCount(&self) -> u327423     pub unsafe fn GetFontFamilyCount(&self) -> u32 {
7424         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
7425     }
GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily>7426     pub unsafe fn GetFontFamily(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily> {
7427         let mut result__: <IDWriteFontFamily as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7428         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily>(result__)
7429     }
7430     #[cfg(feature = "Win32_Foundation")]
FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>7431     pub unsafe fn FindFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
7432         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(index), ::std::mem::transmute(exists)).ok()
7433     }
GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont>7434     pub unsafe fn GetFontFromFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<IDWriteFont> {
7435         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7436         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), &mut result__).from_abi::<IDWriteFont>(result__)
7437     }
GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>7438     pub unsafe fn GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
7439         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7440         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
7441     }
GetFontFamily2(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily1>7442     pub unsafe fn GetFontFamily2(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily1> {
7443         let mut result__: <IDWriteFontFamily1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7444         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily1>(result__)
7445     }
GetFontFamily3(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily2>7446     pub unsafe fn GetFontFamily3(&self, index: u32) -> ::windows::runtime::Result<IDWriteFontFamily2> {
7447         let mut result__: <IDWriteFontFamily2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7448         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFontFamily2>(result__)
7449     }
7450     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontList2>7451     pub unsafe fn GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontList2> {
7452         let mut result__: <IDWriteFontList2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7453         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontList2>(result__)
7454     }
GetFontFamilyModel(&self) -> DWRITE_FONT_FAMILY_MODEL7455     pub unsafe fn GetFontFamilyModel(&self) -> DWRITE_FONT_FAMILY_MODEL {
7456         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
7457     }
GetFontSet2(&self) -> ::windows::runtime::Result<IDWriteFontSet1>7458     pub unsafe fn GetFontSet2(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
7459         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7460         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
7461     }
7462     #[cfg(feature = "Win32_Foundation")]
GetExpirationEvent(&self) -> super::super::Foundation::HANDLE7463     pub unsafe fn GetExpirationEvent(&self) -> super::super::Foundation::HANDLE {
7464         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
7465     }
7466 }
7467 unsafe impl ::windows::runtime::Interface for IDWriteFontCollection3 {
7468     type Vtable = IDWriteFontCollection3_abi;
7469     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2765116838, 63971, 20005, [147, 183, 158, 48, 159, 58, 248, 233]);
7470 }
7471 impl ::std::convert::From<IDWriteFontCollection3> for ::windows::runtime::IUnknown {
from(value: IDWriteFontCollection3) -> Self7472     fn from(value: IDWriteFontCollection3) -> Self {
7473         unsafe { ::std::mem::transmute(value) }
7474     }
7475 }
7476 impl ::std::convert::From<&IDWriteFontCollection3> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontCollection3) -> Self7477     fn from(value: &IDWriteFontCollection3) -> Self {
7478         ::std::convert::From::from(::std::clone::Clone::clone(value))
7479     }
7480 }
7481 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7482     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7483         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7484     }
7485 }
7486 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7487     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7488         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7489     }
7490 }
7491 impl ::std::convert::From<IDWriteFontCollection3> for IDWriteFontCollection2 {
from(value: IDWriteFontCollection3) -> Self7492     fn from(value: IDWriteFontCollection3) -> Self {
7493         unsafe { ::std::mem::transmute(value) }
7494     }
7495 }
7496 impl ::std::convert::From<&IDWriteFontCollection3> for IDWriteFontCollection2 {
from(value: &IDWriteFontCollection3) -> Self7497     fn from(value: &IDWriteFontCollection3) -> Self {
7498         ::std::convert::From::from(::std::clone::Clone::clone(value))
7499     }
7500 }
7501 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection2> for IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection2>7502     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection2> {
7503         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection2>::into(self))
7504     }
7505 }
7506 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection2> for &IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection2>7507     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection2> {
7508         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection2>::into(::std::clone::Clone::clone(self)))
7509     }
7510 }
7511 impl ::std::convert::From<IDWriteFontCollection3> for IDWriteFontCollection1 {
from(value: IDWriteFontCollection3) -> Self7512     fn from(value: IDWriteFontCollection3) -> Self {
7513         unsafe { ::std::mem::transmute(value) }
7514     }
7515 }
7516 impl ::std::convert::From<&IDWriteFontCollection3> for IDWriteFontCollection1 {
from(value: &IDWriteFontCollection3) -> Self7517     fn from(value: &IDWriteFontCollection3) -> Self {
7518         ::std::convert::From::from(::std::clone::Clone::clone(value))
7519     }
7520 }
7521 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection1> for IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1>7522     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1> {
7523         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection1>::into(self))
7524     }
7525 }
7526 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection1> for &IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1>7527     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection1> {
7528         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection1>::into(::std::clone::Clone::clone(self)))
7529     }
7530 }
7531 impl ::std::convert::From<IDWriteFontCollection3> for IDWriteFontCollection {
from(value: IDWriteFontCollection3) -> Self7532     fn from(value: IDWriteFontCollection3) -> Self {
7533         unsafe { ::std::mem::transmute(value) }
7534     }
7535 }
7536 impl ::std::convert::From<&IDWriteFontCollection3> for IDWriteFontCollection {
from(value: &IDWriteFontCollection3) -> Self7537     fn from(value: &IDWriteFontCollection3) -> Self {
7538         ::std::convert::From::from(::std::clone::Clone::clone(value))
7539     }
7540 }
7541 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection> for IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection>7542     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection> {
7543         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection>::into(self))
7544     }
7545 }
7546 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontCollection> for &IDWriteFontCollection3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection>7547     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontCollection> {
7548         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontCollection>::into(::std::clone::Clone::clone(self)))
7549     }
7550 }
7551 #[repr(C)]
7552 #[doc(hidden)]
7553 pub struct IDWriteFontCollection3_abi(
7554     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7557     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7558     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7559     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7560     #[cfg(not(feature = "Win32_Foundation"))] usize,
7561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, fontfamily: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7565     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontlist: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7566     #[cfg(not(feature = "Win32_Foundation"))] usize,
7567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FAMILY_MODEL,
7568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7569     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
7570     #[cfg(not(feature = "Win32_Foundation"))] usize,
7571 );
7572 #[repr(transparent)]
7573 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7574 pub struct IDWriteFontCollectionLoader(::windows::runtime::IUnknown);
7575 impl IDWriteFontCollectionLoader {
CreateEnumeratorFromKey<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFactory>>(&self, factory: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileEnumerator>7576     pub unsafe fn CreateEnumeratorFromKey<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFactory>>(&self, factory: Param0, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileEnumerator> {
7577         let mut result__: <IDWriteFontFileEnumerator as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7578         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), factory.into_param().abi(), ::std::mem::transmute(collectionkey), ::std::mem::transmute(collectionkeysize), &mut result__).from_abi::<IDWriteFontFileEnumerator>(result__)
7579     }
7580 }
7581 unsafe impl ::windows::runtime::Interface for IDWriteFontCollectionLoader {
7582     type Vtable = IDWriteFontCollectionLoader_abi;
7583     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3433636068, 21232, 18731, [191, 168, 41, 199, 46, 224, 164, 104]);
7584 }
7585 impl ::std::convert::From<IDWriteFontCollectionLoader> for ::windows::runtime::IUnknown {
from(value: IDWriteFontCollectionLoader) -> Self7586     fn from(value: IDWriteFontCollectionLoader) -> Self {
7587         unsafe { ::std::mem::transmute(value) }
7588     }
7589 }
7590 impl ::std::convert::From<&IDWriteFontCollectionLoader> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontCollectionLoader) -> Self7591     fn from(value: &IDWriteFontCollectionLoader) -> Self {
7592         ::std::convert::From::from(::std::clone::Clone::clone(value))
7593     }
7594 }
7595 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontCollectionLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7596     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7597         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7598     }
7599 }
7600 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontCollectionLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7601     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7602         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7603     }
7604 }
7605 #[repr(C)]
7606 #[doc(hidden)]
7607 pub struct IDWriteFontCollectionLoader_abi(
7608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, factory: ::windows::runtime::RawPtr, collectionkey: *const ::std::ffi::c_void, collectionkeysize: u32, fontfileenumerator: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7612 );
7613 #[repr(transparent)]
7614 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7615 pub struct IDWriteFontDownloadListener(::windows::runtime::IUnknown);
7616 impl IDWriteFontDownloadListener {
DownloadCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontDownloadQueue>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, downloadqueue: Param0, context: Param1, downloadresult: ::windows::runtime::HRESULT)7617     pub unsafe fn DownloadCompleted<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontDownloadQueue>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, downloadqueue: Param0, context: Param1, downloadresult: ::windows::runtime::HRESULT) {
7618         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), downloadqueue.into_param().abi(), context.into_param().abi(), ::std::mem::transmute(downloadresult)))
7619     }
7620 }
7621 unsafe impl ::windows::runtime::Interface for IDWriteFontDownloadListener {
7622     type Vtable = IDWriteFontDownloadListener_abi;
7623     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2960123321, 17388, 17299, [136, 27, 219, 228, 220, 114, 253, 167]);
7624 }
7625 impl ::std::convert::From<IDWriteFontDownloadListener> for ::windows::runtime::IUnknown {
from(value: IDWriteFontDownloadListener) -> Self7626     fn from(value: IDWriteFontDownloadListener) -> Self {
7627         unsafe { ::std::mem::transmute(value) }
7628     }
7629 }
7630 impl ::std::convert::From<&IDWriteFontDownloadListener> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontDownloadListener) -> Self7631     fn from(value: &IDWriteFontDownloadListener) -> Self {
7632         ::std::convert::From::from(::std::clone::Clone::clone(value))
7633     }
7634 }
7635 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontDownloadListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7636     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7637         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7638     }
7639 }
7640 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontDownloadListener {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7641     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7642         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7643     }
7644 }
7645 #[repr(C)]
7646 #[doc(hidden)]
7647 pub struct IDWriteFontDownloadListener_abi(
7648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, downloadqueue: ::windows::runtime::RawPtr, context: ::windows::runtime::RawPtr, downloadresult: ::windows::runtime::HRESULT),
7652 );
7653 #[repr(transparent)]
7654 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7655 pub struct IDWriteFontDownloadQueue(::windows::runtime::IUnknown);
7656 impl IDWriteFontDownloadQueue {
AddListener<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontDownloadListener>>(&self, listener: Param0) -> ::windows::runtime::Result<u32>7657     pub unsafe fn AddListener<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontDownloadListener>>(&self, listener: Param0) -> ::windows::runtime::Result<u32> {
7658         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7659         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), listener.into_param().abi(), &mut result__).from_abi::<u32>(result__)
7660     }
RemoveListener(&self, token: u32) -> ::windows::runtime::Result<()>7661     pub unsafe fn RemoveListener(&self, token: u32) -> ::windows::runtime::Result<()> {
7662         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(token)).ok()
7663     }
7664     #[cfg(feature = "Win32_Foundation")]
IsEmpty(&self) -> super::super::Foundation::BOOL7665     pub unsafe fn IsEmpty(&self) -> super::super::Foundation::BOOL {
7666         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
7667     }
BeginDownload<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, context: Param0) -> ::windows::runtime::Result<()>7668     pub unsafe fn BeginDownload<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, context: Param0) -> ::windows::runtime::Result<()> {
7669         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), context.into_param().abi()).ok()
7670     }
CancelDownload(&self) -> ::windows::runtime::Result<()>7671     pub unsafe fn CancelDownload(&self) -> ::windows::runtime::Result<()> {
7672         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)).ok()
7673     }
GetGenerationCount(&self) -> u647674     pub unsafe fn GetGenerationCount(&self) -> u64 {
7675         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)))
7676     }
7677 }
7678 unsafe impl ::windows::runtime::Interface for IDWriteFontDownloadQueue {
7679     type Vtable = IDWriteFontDownloadQueue_abi;
7680     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3072221266, 23274, 20387, [131, 46, 246, 13, 67, 31, 126, 145]);
7681 }
7682 impl ::std::convert::From<IDWriteFontDownloadQueue> for ::windows::runtime::IUnknown {
from(value: IDWriteFontDownloadQueue) -> Self7683     fn from(value: IDWriteFontDownloadQueue) -> Self {
7684         unsafe { ::std::mem::transmute(value) }
7685     }
7686 }
7687 impl ::std::convert::From<&IDWriteFontDownloadQueue> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontDownloadQueue) -> Self7688     fn from(value: &IDWriteFontDownloadQueue) -> Self {
7689         ::std::convert::From::from(::std::clone::Clone::clone(value))
7690     }
7691 }
7692 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontDownloadQueue {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7693     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7694         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7695     }
7696 }
7697 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontDownloadQueue {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7698     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7699         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7700     }
7701 }
7702 #[repr(C)]
7703 #[doc(hidden)]
7704 pub struct IDWriteFontDownloadQueue_abi(
7705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listener: ::windows::runtime::RawPtr, token: *mut u32) -> ::windows::runtime::HRESULT,
7709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: u32) -> ::windows::runtime::HRESULT,
7710     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7711     #[cfg(not(feature = "Win32_Foundation"))] usize,
7712     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, context: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7713     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7714     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u64,
7715 );
7716 #[repr(transparent)]
7717 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7718 pub struct IDWriteFontFace(::windows::runtime::IUnknown);
7719 impl IDWriteFontFace {
GetType(&self) -> DWRITE_FONT_FACE_TYPE7720     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
7721         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
7722     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>7723     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
7724         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
7725     }
GetIndex(&self) -> u327726     pub unsafe fn GetIndex(&self) -> u32 {
7727         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
7728     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS7729     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
7730         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
7731     }
7732     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL7733     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
7734         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
7735     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)7736     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
7737         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
7738     }
GetGlyphCount(&self) -> u167739     pub unsafe fn GetGlyphCount(&self) -> u16 {
7740         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
7741     }
7742     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>7743     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
7744         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
7745     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>7746     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
7747         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
7748     }
7749     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>7750     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
7751         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
7752     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)7753     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
7754         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
7755     }
7756     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>7757     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
7758         &self,
7759         emsize: f32,
7760         glyphindices: *const u16,
7761         glyphadvances: *const f32,
7762         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
7763         glyphcount: u32,
7764         issideways: Param5,
7765         isrighttoleft: Param6,
7766         geometrysink: Param7,
7767     ) -> ::windows::runtime::Result<()> {
7768         (::windows::runtime::Interface::vtable(self).14)(
7769             ::std::mem::transmute_copy(self),
7770             ::std::mem::transmute(emsize),
7771             ::std::mem::transmute(glyphindices),
7772             ::std::mem::transmute(glyphadvances),
7773             ::std::mem::transmute(glyphoffsets),
7774             ::std::mem::transmute(glyphcount),
7775             issideways.into_param().abi(),
7776             isrighttoleft.into_param().abi(),
7777             geometrysink.into_param().abi(),
7778         )
7779         .ok()
7780     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>7781     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
7782         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7783         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
7784     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>7785     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
7786         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7787         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
7788     }
7789     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>7790     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
7791         (::windows::runtime::Interface::vtable(self).17)(
7792             ::std::mem::transmute_copy(self),
7793             ::std::mem::transmute(emsize),
7794             ::std::mem::transmute(pixelsperdip),
7795             ::std::mem::transmute(transform),
7796             usegdinatural.into_param().abi(),
7797             ::std::mem::transmute(glyphindices),
7798             ::std::mem::transmute(glyphcount),
7799             ::std::mem::transmute(glyphmetrics),
7800             issideways.into_param().abi(),
7801         )
7802         .ok()
7803     }
7804 }
7805 unsafe impl ::windows::runtime::Interface for IDWriteFontFace {
7806     type Vtable = IDWriteFontFace_abi;
7807     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1598652493, 28708, 19779, [191, 169, 210, 89, 132, 245, 56, 73]);
7808 }
7809 impl ::std::convert::From<IDWriteFontFace> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace) -> Self7810     fn from(value: IDWriteFontFace) -> Self {
7811         unsafe { ::std::mem::transmute(value) }
7812     }
7813 }
7814 impl ::std::convert::From<&IDWriteFontFace> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace) -> Self7815     fn from(value: &IDWriteFontFace) -> Self {
7816         ::std::convert::From::from(::std::clone::Clone::clone(value))
7817     }
7818 }
7819 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7820     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7821         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
7822     }
7823 }
7824 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>7825     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
7826         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
7827     }
7828 }
7829 #[repr(C)]
7830 #[doc(hidden)]
7831 pub struct IDWriteFontFace_abi(
7832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
7836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
7838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
7839     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
7840     #[cfg(not(feature = "Win32_Foundation"))] usize,
7841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
7842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
7843     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7844     #[cfg(not(feature = "Win32_Foundation"))] usize,
7845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
7846     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7847     #[cfg(not(feature = "Win32_Foundation"))] usize,
7848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
7849     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
7850     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
7851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
7852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
7853     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
7854     #[cfg(not(feature = "Win32_Foundation"))] usize,
7855 );
7856 #[repr(transparent)]
7857 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
7858 pub struct IDWriteFontFace1(::windows::runtime::IUnknown);
7859 impl IDWriteFontFace1 {
GetType(&self) -> DWRITE_FONT_FACE_TYPE7860     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
7861         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
7862     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>7863     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
7864         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
7865     }
GetIndex(&self) -> u327866     pub unsafe fn GetIndex(&self) -> u32 {
7867         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
7868     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS7869     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
7870         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
7871     }
7872     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL7873     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
7874         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
7875     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)7876     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
7877         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
7878     }
GetGlyphCount(&self) -> u167879     pub unsafe fn GetGlyphCount(&self) -> u16 {
7880         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
7881     }
7882     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>7883     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
7884         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
7885     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>7886     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
7887         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
7888     }
7889     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>7890     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
7891         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
7892     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)7893     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
7894         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
7895     }
7896     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>7897     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
7898         &self,
7899         emsize: f32,
7900         glyphindices: *const u16,
7901         glyphadvances: *const f32,
7902         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
7903         glyphcount: u32,
7904         issideways: Param5,
7905         isrighttoleft: Param6,
7906         geometrysink: Param7,
7907     ) -> ::windows::runtime::Result<()> {
7908         (::windows::runtime::Interface::vtable(self).14)(
7909             ::std::mem::transmute_copy(self),
7910             ::std::mem::transmute(emsize),
7911             ::std::mem::transmute(glyphindices),
7912             ::std::mem::transmute(glyphadvances),
7913             ::std::mem::transmute(glyphoffsets),
7914             ::std::mem::transmute(glyphcount),
7915             issideways.into_param().abi(),
7916             isrighttoleft.into_param().abi(),
7917             geometrysink.into_param().abi(),
7918         )
7919         .ok()
7920     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>7921     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
7922         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7923         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
7924     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>7925     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
7926         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7927         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
7928     }
7929     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>7930     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
7931         (::windows::runtime::Interface::vtable(self).17)(
7932             ::std::mem::transmute_copy(self),
7933             ::std::mem::transmute(emsize),
7934             ::std::mem::transmute(pixelsperdip),
7935             ::std::mem::transmute(transform),
7936             usegdinatural.into_param().abi(),
7937             ::std::mem::transmute(glyphindices),
7938             ::std::mem::transmute(glyphcount),
7939             ::std::mem::transmute(glyphmetrics),
7940             issideways.into_param().abi(),
7941         )
7942         .ok()
7943     }
7944     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)7945     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
7946         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
7947     }
7948     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1>7949     pub unsafe fn GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1> {
7950         let mut result__: <DWRITE_FONT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7951         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS1>(result__)
7952     }
GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS)7953     pub unsafe fn GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS) {
7954         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(caretmetrics)))
7955     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>7956     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
7957         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
7958     }
7959     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL7960     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
7961         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
7962     }
7963     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()>7964     pub unsafe fn GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()> {
7965         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvances), issideways.into_param().abi()).ok()
7966     }
7967     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()>7968     pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()> {
7969         (::windows::runtime::Interface::vtable(self).24)(
7970             ::std::mem::transmute_copy(self),
7971             ::std::mem::transmute(emsize),
7972             ::std::mem::transmute(pixelsperdip),
7973             ::std::mem::transmute(transform),
7974             usegdinatural.into_param().abi(),
7975             issideways.into_param().abi(),
7976             ::std::mem::transmute(glyphcount),
7977             ::std::mem::transmute(glyphindices),
7978             ::std::mem::transmute(glyphadvances),
7979         )
7980         .ok()
7981     }
GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()>7982     pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()> {
7983         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvanceadjustments)).ok()
7984     }
7985     #[cfg(feature = "Win32_Foundation")]
HasKerningPairs(&self) -> super::super::Foundation::BOOL7986     pub unsafe fn HasKerningPairs(&self) -> super::super::Foundation::BOOL {
7987         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
7988     }
7989     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>7990     pub unsafe fn GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
7991         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
7992         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontemsize), ::std::mem::transmute(dpix), ::std::mem::transmute(dpiy), ::std::mem::transmute(transform), issideways.into_param().abi(), ::std::mem::transmute(outlinethreshold), ::std::mem::transmute(measuringmode), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
7993     }
GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()>7994     pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()> {
7995         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(nominalglyphindices), ::std::mem::transmute(verticalglyphindices)).ok()
7996     }
7997     #[cfg(feature = "Win32_Foundation")]
HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL7998     pub unsafe fn HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL {
7999         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
8000     }
8001 }
8002 unsafe impl ::windows::runtime::Interface for IDWriteFontFace1 {
8003     type Vtable = IDWriteFontFace1_abi;
8004     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2803826100, 40923, 18488, [173, 144, 207, 195, 190, 140, 61, 175]);
8005 }
8006 impl ::std::convert::From<IDWriteFontFace1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace1) -> Self8007     fn from(value: IDWriteFontFace1) -> Self {
8008         unsafe { ::std::mem::transmute(value) }
8009     }
8010 }
8011 impl ::std::convert::From<&IDWriteFontFace1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace1) -> Self8012     fn from(value: &IDWriteFontFace1) -> Self {
8013         ::std::convert::From::from(::std::clone::Clone::clone(value))
8014     }
8015 }
8016 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8017     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8018         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8019     }
8020 }
8021 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8022     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8023         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8024     }
8025 }
8026 impl ::std::convert::From<IDWriteFontFace1> for IDWriteFontFace {
from(value: IDWriteFontFace1) -> Self8027     fn from(value: IDWriteFontFace1) -> Self {
8028         unsafe { ::std::mem::transmute(value) }
8029     }
8030 }
8031 impl ::std::convert::From<&IDWriteFontFace1> for IDWriteFontFace {
from(value: &IDWriteFontFace1) -> Self8032     fn from(value: &IDWriteFontFace1) -> Self {
8033         ::std::convert::From::from(::std::clone::Clone::clone(value))
8034     }
8035 }
8036 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for IDWriteFontFace1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>8037     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
8038         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(self))
8039     }
8040 }
8041 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for &IDWriteFontFace1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>8042     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
8043         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(::std::clone::Clone::clone(self)))
8044     }
8045 }
8046 #[repr(C)]
8047 #[doc(hidden)]
8048 pub struct IDWriteFontFace1_abi(
8049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
8053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8054     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8055     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
8056     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8057     #[cfg(not(feature = "Win32_Foundation"))] usize,
8058     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
8059     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
8060     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8061     #[cfg(not(feature = "Win32_Foundation"))] usize,
8062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
8063     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8064     #[cfg(not(feature = "Win32_Foundation"))] usize,
8065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
8066     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8067     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
8068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
8069     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
8070     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8071     #[cfg(not(feature = "Win32_Foundation"))] usize,
8072     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
8073     #[cfg(not(feature = "Win32_Foundation"))] usize,
8074     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontmetrics: *mut DWRITE_FONT_METRICS1) -> ::windows::runtime::HRESULT,
8075     #[cfg(not(feature = "Win32_Foundation"))] usize,
8076     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, caretmetrics: *mut DWRITE_CARET_METRICS),
8077     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
8078     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8079     #[cfg(not(feature = "Win32_Foundation"))] usize,
8080     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8081     #[cfg(not(feature = "Win32_Foundation"))] usize,
8082     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, issideways: super::super::Foundation::BOOL, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::HRESULT,
8083     #[cfg(not(feature = "Win32_Foundation"))] usize,
8084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::HRESULT,
8085     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8086     #[cfg(not(feature = "Win32_Foundation"))] usize,
8087     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
8088     #[cfg(not(feature = "Win32_Foundation"))] usize,
8089     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::HRESULT,
8090     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8091     #[cfg(not(feature = "Win32_Foundation"))] usize,
8092 );
8093 #[repr(transparent)]
8094 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8095 pub struct IDWriteFontFace2(::windows::runtime::IUnknown);
8096 impl IDWriteFontFace2 {
GetType(&self) -> DWRITE_FONT_FACE_TYPE8097     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
8098         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
8099     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>8100     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
8101         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
8102     }
GetIndex(&self) -> u328103     pub unsafe fn GetIndex(&self) -> u32 {
8104         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
8105     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS8106     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
8107         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
8108     }
8109     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL8110     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
8111         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
8112     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)8113     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
8114         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
8115     }
GetGlyphCount(&self) -> u168116     pub unsafe fn GetGlyphCount(&self) -> u16 {
8117         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
8118     }
8119     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>8120     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
8121         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
8122     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>8123     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
8124         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
8125     }
8126     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>8127     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
8128         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
8129     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)8130     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
8131         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
8132     }
8133     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>8134     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
8135         &self,
8136         emsize: f32,
8137         glyphindices: *const u16,
8138         glyphadvances: *const f32,
8139         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
8140         glyphcount: u32,
8141         issideways: Param5,
8142         isrighttoleft: Param6,
8143         geometrysink: Param7,
8144     ) -> ::windows::runtime::Result<()> {
8145         (::windows::runtime::Interface::vtable(self).14)(
8146             ::std::mem::transmute_copy(self),
8147             ::std::mem::transmute(emsize),
8148             ::std::mem::transmute(glyphindices),
8149             ::std::mem::transmute(glyphadvances),
8150             ::std::mem::transmute(glyphoffsets),
8151             ::std::mem::transmute(glyphcount),
8152             issideways.into_param().abi(),
8153             isrighttoleft.into_param().abi(),
8154             geometrysink.into_param().abi(),
8155         )
8156         .ok()
8157     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>8158     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
8159         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8160         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
8161     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>8162     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
8163         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8164         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
8165     }
8166     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>8167     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
8168         (::windows::runtime::Interface::vtable(self).17)(
8169             ::std::mem::transmute_copy(self),
8170             ::std::mem::transmute(emsize),
8171             ::std::mem::transmute(pixelsperdip),
8172             ::std::mem::transmute(transform),
8173             usegdinatural.into_param().abi(),
8174             ::std::mem::transmute(glyphindices),
8175             ::std::mem::transmute(glyphcount),
8176             ::std::mem::transmute(glyphmetrics),
8177             issideways.into_param().abi(),
8178         )
8179         .ok()
8180     }
8181     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)8182     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
8183         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
8184     }
8185     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1>8186     pub unsafe fn GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1> {
8187         let mut result__: <DWRITE_FONT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8188         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS1>(result__)
8189     }
GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS)8190     pub unsafe fn GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS) {
8191         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(caretmetrics)))
8192     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>8193     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
8194         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
8195     }
8196     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL8197     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
8198         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
8199     }
8200     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()>8201     pub unsafe fn GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()> {
8202         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvances), issideways.into_param().abi()).ok()
8203     }
8204     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()>8205     pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()> {
8206         (::windows::runtime::Interface::vtable(self).24)(
8207             ::std::mem::transmute_copy(self),
8208             ::std::mem::transmute(emsize),
8209             ::std::mem::transmute(pixelsperdip),
8210             ::std::mem::transmute(transform),
8211             usegdinatural.into_param().abi(),
8212             issideways.into_param().abi(),
8213             ::std::mem::transmute(glyphcount),
8214             ::std::mem::transmute(glyphindices),
8215             ::std::mem::transmute(glyphadvances),
8216         )
8217         .ok()
8218     }
GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()>8219     pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()> {
8220         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvanceadjustments)).ok()
8221     }
8222     #[cfg(feature = "Win32_Foundation")]
HasKerningPairs(&self) -> super::super::Foundation::BOOL8223     pub unsafe fn HasKerningPairs(&self) -> super::super::Foundation::BOOL {
8224         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
8225     }
8226     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>8227     pub unsafe fn GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
8228         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8229         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontemsize), ::std::mem::transmute(dpix), ::std::mem::transmute(dpiy), ::std::mem::transmute(transform), issideways.into_param().abi(), ::std::mem::transmute(outlinethreshold), ::std::mem::transmute(measuringmode), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
8230     }
GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()>8231     pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()> {
8232         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(nominalglyphindices), ::std::mem::transmute(verticalglyphindices)).ok()
8233     }
8234     #[cfg(feature = "Win32_Foundation")]
HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL8235     pub unsafe fn HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL {
8236         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
8237     }
8238     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL8239     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
8240         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self)))
8241     }
GetColorPaletteCount(&self) -> u328242     pub unsafe fn GetColorPaletteCount(&self) -> u32 {
8243         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
8244     }
GetPaletteEntryCount(&self) -> u328245     pub unsafe fn GetPaletteEntryCount(&self) -> u32 {
8246         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self)))
8247     }
GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()>8248     pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()> {
8249         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorpaletteindex), ::std::mem::transmute(firstentryindex), ::std::mem::transmute(entrycount), ::std::mem::transmute(paletteentries)).ok()
8250     }
8251     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>8252     pub unsafe fn GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
8253         &self,
8254         fontemsize: f32,
8255         dpix: f32,
8256         dpiy: f32,
8257         transform: *const DWRITE_MATRIX,
8258         issideways: Param4,
8259         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
8260         measuringmode: DWRITE_MEASURING_MODE,
8261         renderingparams: Param7,
8262         renderingmode: *mut DWRITE_RENDERING_MODE,
8263         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
8264     ) -> ::windows::runtime::Result<()> {
8265         (::windows::runtime::Interface::vtable(self).34)(
8266             ::std::mem::transmute_copy(self),
8267             ::std::mem::transmute(fontemsize),
8268             ::std::mem::transmute(dpix),
8269             ::std::mem::transmute(dpiy),
8270             ::std::mem::transmute(transform),
8271             issideways.into_param().abi(),
8272             ::std::mem::transmute(outlinethreshold),
8273             ::std::mem::transmute(measuringmode),
8274             renderingparams.into_param().abi(),
8275             ::std::mem::transmute(renderingmode),
8276             ::std::mem::transmute(gridfitmode),
8277         )
8278         .ok()
8279     }
8280 }
8281 unsafe impl ::windows::runtime::Interface for IDWriteFontFace2 {
8282     type Vtable = IDWriteFontFace2_abi;
8283     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3635898623, 25788, 20070, [152, 43, 236, 142, 135, 246, 147, 247]);
8284 }
8285 impl ::std::convert::From<IDWriteFontFace2> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace2) -> Self8286     fn from(value: IDWriteFontFace2) -> Self {
8287         unsafe { ::std::mem::transmute(value) }
8288     }
8289 }
8290 impl ::std::convert::From<&IDWriteFontFace2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace2) -> Self8291     fn from(value: &IDWriteFontFace2) -> Self {
8292         ::std::convert::From::from(::std::clone::Clone::clone(value))
8293     }
8294 }
8295 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8296     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8297         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8298     }
8299 }
8300 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8301     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8302         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8303     }
8304 }
8305 impl ::std::convert::From<IDWriteFontFace2> for IDWriteFontFace1 {
from(value: IDWriteFontFace2) -> Self8306     fn from(value: IDWriteFontFace2) -> Self {
8307         unsafe { ::std::mem::transmute(value) }
8308     }
8309 }
8310 impl ::std::convert::From<&IDWriteFontFace2> for IDWriteFontFace1 {
from(value: &IDWriteFontFace2) -> Self8311     fn from(value: &IDWriteFontFace2) -> Self {
8312         ::std::convert::From::from(::std::clone::Clone::clone(value))
8313     }
8314 }
8315 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for IDWriteFontFace2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>8316     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
8317         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(self))
8318     }
8319 }
8320 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for &IDWriteFontFace2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>8321     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
8322         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(::std::clone::Clone::clone(self)))
8323     }
8324 }
8325 impl ::std::convert::From<IDWriteFontFace2> for IDWriteFontFace {
from(value: IDWriteFontFace2) -> Self8326     fn from(value: IDWriteFontFace2) -> Self {
8327         unsafe { ::std::mem::transmute(value) }
8328     }
8329 }
8330 impl ::std::convert::From<&IDWriteFontFace2> for IDWriteFontFace {
from(value: &IDWriteFontFace2) -> Self8331     fn from(value: &IDWriteFontFace2) -> Self {
8332         ::std::convert::From::from(::std::clone::Clone::clone(value))
8333     }
8334 }
8335 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for IDWriteFontFace2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>8336     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
8337         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(self))
8338     }
8339 }
8340 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for &IDWriteFontFace2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>8341     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
8342         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(::std::clone::Clone::clone(self)))
8343     }
8344 }
8345 #[repr(C)]
8346 #[doc(hidden)]
8347 pub struct IDWriteFontFace2_abi(
8348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
8352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8353     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8354     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
8355     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8356     #[cfg(not(feature = "Win32_Foundation"))] usize,
8357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
8358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
8359     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8360     #[cfg(not(feature = "Win32_Foundation"))] usize,
8361     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
8362     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8363     #[cfg(not(feature = "Win32_Foundation"))] usize,
8364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
8365     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8366     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
8367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
8368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
8369     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8370     #[cfg(not(feature = "Win32_Foundation"))] usize,
8371     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
8372     #[cfg(not(feature = "Win32_Foundation"))] usize,
8373     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontmetrics: *mut DWRITE_FONT_METRICS1) -> ::windows::runtime::HRESULT,
8374     #[cfg(not(feature = "Win32_Foundation"))] usize,
8375     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, caretmetrics: *mut DWRITE_CARET_METRICS),
8376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
8377     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8378     #[cfg(not(feature = "Win32_Foundation"))] usize,
8379     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8380     #[cfg(not(feature = "Win32_Foundation"))] usize,
8381     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, issideways: super::super::Foundation::BOOL, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::HRESULT,
8382     #[cfg(not(feature = "Win32_Foundation"))] usize,
8383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::HRESULT,
8384     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8385     #[cfg(not(feature = "Win32_Foundation"))] usize,
8386     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
8387     #[cfg(not(feature = "Win32_Foundation"))] usize,
8388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::HRESULT,
8389     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8390     #[cfg(not(feature = "Win32_Foundation"))] usize,
8391     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8392     #[cfg(not(feature = "Win32_Foundation"))] usize,
8393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8394     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::HRESULT,
8396     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
8397     #[cfg(not(feature = "Win32_Foundation"))] usize,
8398 );
8399 #[repr(transparent)]
8400 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8401 pub struct IDWriteFontFace3(::windows::runtime::IUnknown);
8402 impl IDWriteFontFace3 {
GetType(&self) -> DWRITE_FONT_FACE_TYPE8403     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
8404         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
8405     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>8406     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
8407         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
8408     }
GetIndex(&self) -> u328409     pub unsafe fn GetIndex(&self) -> u32 {
8410         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
8411     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS8412     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
8413         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
8414     }
8415     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL8416     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
8417         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
8418     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)8419     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
8420         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
8421     }
GetGlyphCount(&self) -> u168422     pub unsafe fn GetGlyphCount(&self) -> u16 {
8423         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
8424     }
8425     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>8426     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
8427         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
8428     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>8429     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
8430         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
8431     }
8432     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>8433     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
8434         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
8435     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)8436     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
8437         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
8438     }
8439     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>8440     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
8441         &self,
8442         emsize: f32,
8443         glyphindices: *const u16,
8444         glyphadvances: *const f32,
8445         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
8446         glyphcount: u32,
8447         issideways: Param5,
8448         isrighttoleft: Param6,
8449         geometrysink: Param7,
8450     ) -> ::windows::runtime::Result<()> {
8451         (::windows::runtime::Interface::vtable(self).14)(
8452             ::std::mem::transmute_copy(self),
8453             ::std::mem::transmute(emsize),
8454             ::std::mem::transmute(glyphindices),
8455             ::std::mem::transmute(glyphadvances),
8456             ::std::mem::transmute(glyphoffsets),
8457             ::std::mem::transmute(glyphcount),
8458             issideways.into_param().abi(),
8459             isrighttoleft.into_param().abi(),
8460             geometrysink.into_param().abi(),
8461         )
8462         .ok()
8463     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>8464     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
8465         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8466         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
8467     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>8468     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
8469         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8470         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
8471     }
8472     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>8473     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
8474         (::windows::runtime::Interface::vtable(self).17)(
8475             ::std::mem::transmute_copy(self),
8476             ::std::mem::transmute(emsize),
8477             ::std::mem::transmute(pixelsperdip),
8478             ::std::mem::transmute(transform),
8479             usegdinatural.into_param().abi(),
8480             ::std::mem::transmute(glyphindices),
8481             ::std::mem::transmute(glyphcount),
8482             ::std::mem::transmute(glyphmetrics),
8483             issideways.into_param().abi(),
8484         )
8485         .ok()
8486     }
8487     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)8488     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
8489         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
8490     }
8491     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1>8492     pub unsafe fn GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1> {
8493         let mut result__: <DWRITE_FONT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8494         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS1>(result__)
8495     }
GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS)8496     pub unsafe fn GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS) {
8497         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(caretmetrics)))
8498     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>8499     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
8500         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
8501     }
8502     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL8503     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
8504         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
8505     }
8506     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()>8507     pub unsafe fn GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()> {
8508         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvances), issideways.into_param().abi()).ok()
8509     }
8510     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()>8511     pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()> {
8512         (::windows::runtime::Interface::vtable(self).24)(
8513             ::std::mem::transmute_copy(self),
8514             ::std::mem::transmute(emsize),
8515             ::std::mem::transmute(pixelsperdip),
8516             ::std::mem::transmute(transform),
8517             usegdinatural.into_param().abi(),
8518             issideways.into_param().abi(),
8519             ::std::mem::transmute(glyphcount),
8520             ::std::mem::transmute(glyphindices),
8521             ::std::mem::transmute(glyphadvances),
8522         )
8523         .ok()
8524     }
GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()>8525     pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()> {
8526         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvanceadjustments)).ok()
8527     }
8528     #[cfg(feature = "Win32_Foundation")]
HasKerningPairs(&self) -> super::super::Foundation::BOOL8529     pub unsafe fn HasKerningPairs(&self) -> super::super::Foundation::BOOL {
8530         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
8531     }
8532     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>8533     pub unsafe fn GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
8534         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8535         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontemsize), ::std::mem::transmute(dpix), ::std::mem::transmute(dpiy), ::std::mem::transmute(transform), issideways.into_param().abi(), ::std::mem::transmute(outlinethreshold), ::std::mem::transmute(measuringmode), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
8536     }
GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()>8537     pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()> {
8538         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(nominalglyphindices), ::std::mem::transmute(verticalglyphindices)).ok()
8539     }
8540     #[cfg(feature = "Win32_Foundation")]
HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL8541     pub unsafe fn HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL {
8542         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
8543     }
8544     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL8545     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
8546         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self)))
8547     }
GetColorPaletteCount(&self) -> u328548     pub unsafe fn GetColorPaletteCount(&self) -> u32 {
8549         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
8550     }
GetPaletteEntryCount(&self) -> u328551     pub unsafe fn GetPaletteEntryCount(&self) -> u32 {
8552         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self)))
8553     }
GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()>8554     pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()> {
8555         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorpaletteindex), ::std::mem::transmute(firstentryindex), ::std::mem::transmute(entrycount), ::std::mem::transmute(paletteentries)).ok()
8556     }
8557     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>8558     pub unsafe fn GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
8559         &self,
8560         fontemsize: f32,
8561         dpix: f32,
8562         dpiy: f32,
8563         transform: *const DWRITE_MATRIX,
8564         issideways: Param4,
8565         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
8566         measuringmode: DWRITE_MEASURING_MODE,
8567         renderingparams: Param7,
8568         renderingmode: *mut DWRITE_RENDERING_MODE,
8569         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
8570     ) -> ::windows::runtime::Result<()> {
8571         (::windows::runtime::Interface::vtable(self).34)(
8572             ::std::mem::transmute_copy(self),
8573             ::std::mem::transmute(fontemsize),
8574             ::std::mem::transmute(dpix),
8575             ::std::mem::transmute(dpiy),
8576             ::std::mem::transmute(transform),
8577             issideways.into_param().abi(),
8578             ::std::mem::transmute(outlinethreshold),
8579             ::std::mem::transmute(measuringmode),
8580             renderingparams.into_param().abi(),
8581             ::std::mem::transmute(renderingmode),
8582             ::std::mem::transmute(gridfitmode),
8583         )
8584         .ok()
8585     }
GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference>8586     pub unsafe fn GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
8587         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8588         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
8589     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)8590     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
8591         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
8592     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT8593     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
8594         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self)))
8595     }
GetStretch(&self) -> DWRITE_FONT_STRETCH8596     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
8597         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self)))
8598     }
GetStyle(&self) -> DWRITE_FONT_STYLE8599     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
8600         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self)))
8601     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>8602     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
8603         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8604         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
8605     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>8606     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
8607         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8608         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
8609     }
8610     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>8611     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
8612         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
8613     }
8614     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL8615     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
8616         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
8617     }
8618     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>8619     pub unsafe fn GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
8620         &self,
8621         fontemsize: f32,
8622         dpix: f32,
8623         dpiy: f32,
8624         transform: *const DWRITE_MATRIX,
8625         issideways: Param4,
8626         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
8627         measuringmode: DWRITE_MEASURING_MODE,
8628         renderingparams: Param7,
8629         renderingmode: *mut DWRITE_RENDERING_MODE1,
8630         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
8631     ) -> ::windows::runtime::Result<()> {
8632         (::windows::runtime::Interface::vtable(self).44)(
8633             ::std::mem::transmute_copy(self),
8634             ::std::mem::transmute(fontemsize),
8635             ::std::mem::transmute(dpix),
8636             ::std::mem::transmute(dpiy),
8637             ::std::mem::transmute(transform),
8638             issideways.into_param().abi(),
8639             ::std::mem::transmute(outlinethreshold),
8640             ::std::mem::transmute(measuringmode),
8641             renderingparams.into_param().abi(),
8642             ::std::mem::transmute(renderingmode),
8643             ::std::mem::transmute(gridfitmode),
8644         )
8645         .ok()
8646     }
8647     #[cfg(feature = "Win32_Foundation")]
IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL8648     pub unsafe fn IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
8649         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
8650     }
8651     #[cfg(feature = "Win32_Foundation")]
IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL8652     pub unsafe fn IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL {
8653         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid)))
8654     }
8655     #[cfg(feature = "Win32_Foundation")]
AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>8656     pub unsafe fn AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
8657         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8658         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), characters.into_param().abi(), ::std::mem::transmute(charactercount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
8659     }
8660     #[cfg(feature = "Win32_Foundation")]
AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>8661     pub unsafe fn AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
8662         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8663         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
8664     }
8665 }
8666 unsafe impl ::windows::runtime::Interface for IDWriteFontFace3 {
8667     type Vtable = IDWriteFontFace3_abi;
8668     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3548214680, 2494, 16930, [162, 54, 32, 129, 52, 28, 193, 242]);
8669 }
8670 impl ::std::convert::From<IDWriteFontFace3> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace3) -> Self8671     fn from(value: IDWriteFontFace3) -> Self {
8672         unsafe { ::std::mem::transmute(value) }
8673     }
8674 }
8675 impl ::std::convert::From<&IDWriteFontFace3> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace3) -> Self8676     fn from(value: &IDWriteFontFace3) -> Self {
8677         ::std::convert::From::from(::std::clone::Clone::clone(value))
8678     }
8679 }
8680 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8681     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8682         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
8683     }
8684 }
8685 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>8686     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
8687         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
8688     }
8689 }
8690 impl ::std::convert::From<IDWriteFontFace3> for IDWriteFontFace2 {
from(value: IDWriteFontFace3) -> Self8691     fn from(value: IDWriteFontFace3) -> Self {
8692         unsafe { ::std::mem::transmute(value) }
8693     }
8694 }
8695 impl ::std::convert::From<&IDWriteFontFace3> for IDWriteFontFace2 {
from(value: &IDWriteFontFace3) -> Self8696     fn from(value: &IDWriteFontFace3) -> Self {
8697         ::std::convert::From::from(::std::clone::Clone::clone(value))
8698     }
8699 }
8700 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>8701     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
8702         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(self))
8703     }
8704 }
8705 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for &IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>8706     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
8707         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(::std::clone::Clone::clone(self)))
8708     }
8709 }
8710 impl ::std::convert::From<IDWriteFontFace3> for IDWriteFontFace1 {
from(value: IDWriteFontFace3) -> Self8711     fn from(value: IDWriteFontFace3) -> Self {
8712         unsafe { ::std::mem::transmute(value) }
8713     }
8714 }
8715 impl ::std::convert::From<&IDWriteFontFace3> for IDWriteFontFace1 {
from(value: &IDWriteFontFace3) -> Self8716     fn from(value: &IDWriteFontFace3) -> Self {
8717         ::std::convert::From::from(::std::clone::Clone::clone(value))
8718     }
8719 }
8720 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>8721     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
8722         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(self))
8723     }
8724 }
8725 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for &IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>8726     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
8727         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(::std::clone::Clone::clone(self)))
8728     }
8729 }
8730 impl ::std::convert::From<IDWriteFontFace3> for IDWriteFontFace {
from(value: IDWriteFontFace3) -> Self8731     fn from(value: IDWriteFontFace3) -> Self {
8732         unsafe { ::std::mem::transmute(value) }
8733     }
8734 }
8735 impl ::std::convert::From<&IDWriteFontFace3> for IDWriteFontFace {
from(value: &IDWriteFontFace3) -> Self8736     fn from(value: &IDWriteFontFace3) -> Self {
8737         ::std::convert::From::from(::std::clone::Clone::clone(value))
8738     }
8739 }
8740 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>8741     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
8742         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(self))
8743     }
8744 }
8745 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for &IDWriteFontFace3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>8746     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
8747         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(::std::clone::Clone::clone(self)))
8748     }
8749 }
8750 #[repr(C)]
8751 #[doc(hidden)]
8752 pub struct IDWriteFontFace3_abi(
8753     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8754     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8755     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8756     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
8757     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8758     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8759     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
8760     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8761     #[cfg(not(feature = "Win32_Foundation"))] usize,
8762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
8763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
8764     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8765     #[cfg(not(feature = "Win32_Foundation"))] usize,
8766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
8767     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8768     #[cfg(not(feature = "Win32_Foundation"))] usize,
8769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
8770     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8771     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
8772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
8773     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
8774     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8775     #[cfg(not(feature = "Win32_Foundation"))] usize,
8776     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
8777     #[cfg(not(feature = "Win32_Foundation"))] usize,
8778     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontmetrics: *mut DWRITE_FONT_METRICS1) -> ::windows::runtime::HRESULT,
8779     #[cfg(not(feature = "Win32_Foundation"))] usize,
8780     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, caretmetrics: *mut DWRITE_CARET_METRICS),
8781     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
8782     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8783     #[cfg(not(feature = "Win32_Foundation"))] usize,
8784     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8785     #[cfg(not(feature = "Win32_Foundation"))] usize,
8786     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, issideways: super::super::Foundation::BOOL, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::HRESULT,
8787     #[cfg(not(feature = "Win32_Foundation"))] usize,
8788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::HRESULT,
8789     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8790     #[cfg(not(feature = "Win32_Foundation"))] usize,
8791     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
8792     #[cfg(not(feature = "Win32_Foundation"))] usize,
8793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::HRESULT,
8794     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8795     #[cfg(not(feature = "Win32_Foundation"))] usize,
8796     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
8797     #[cfg(not(feature = "Win32_Foundation"))] usize,
8798     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8799     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
8800     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::HRESULT,
8801     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
8802     #[cfg(not(feature = "Win32_Foundation"))] usize,
8803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
8805     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
8806     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
8807     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
8808     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8809     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
8810     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8811     #[cfg(not(feature = "Win32_Foundation"))] usize,
8812     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
8813     #[cfg(not(feature = "Win32_Foundation"))] usize,
8814     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
8815     #[cfg(not(feature = "Win32_Foundation"))] usize,
8816     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
8817     #[cfg(not(feature = "Win32_Foundation"))] usize,
8818     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16) -> super::super::Foundation::BOOL,
8819     #[cfg(not(feature = "Win32_Foundation"))] usize,
8820     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, characters: super::super::Foundation::PWSTR, charactercount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8821     #[cfg(not(feature = "Win32_Foundation"))] usize,
8822     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
8823     #[cfg(not(feature = "Win32_Foundation"))] usize,
8824 );
8825 #[repr(transparent)]
8826 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
8827 pub struct IDWriteFontFace4(::windows::runtime::IUnknown);
8828 impl IDWriteFontFace4 {
GetType(&self) -> DWRITE_FONT_FACE_TYPE8829     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
8830         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
8831     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>8832     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
8833         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
8834     }
GetIndex(&self) -> u328835     pub unsafe fn GetIndex(&self) -> u32 {
8836         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
8837     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS8838     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
8839         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
8840     }
8841     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL8842     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
8843         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
8844     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)8845     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
8846         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
8847     }
GetGlyphCount(&self) -> u168848     pub unsafe fn GetGlyphCount(&self) -> u16 {
8849         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
8850     }
8851     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>8852     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
8853         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
8854     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>8855     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
8856         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
8857     }
8858     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>8859     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
8860         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
8861     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)8862     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
8863         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
8864     }
8865     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>8866     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
8867         &self,
8868         emsize: f32,
8869         glyphindices: *const u16,
8870         glyphadvances: *const f32,
8871         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
8872         glyphcount: u32,
8873         issideways: Param5,
8874         isrighttoleft: Param6,
8875         geometrysink: Param7,
8876     ) -> ::windows::runtime::Result<()> {
8877         (::windows::runtime::Interface::vtable(self).14)(
8878             ::std::mem::transmute_copy(self),
8879             ::std::mem::transmute(emsize),
8880             ::std::mem::transmute(glyphindices),
8881             ::std::mem::transmute(glyphadvances),
8882             ::std::mem::transmute(glyphoffsets),
8883             ::std::mem::transmute(glyphcount),
8884             issideways.into_param().abi(),
8885             isrighttoleft.into_param().abi(),
8886             geometrysink.into_param().abi(),
8887         )
8888         .ok()
8889     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>8890     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
8891         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8892         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
8893     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>8894     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
8895         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8896         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
8897     }
8898     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>8899     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
8900         (::windows::runtime::Interface::vtable(self).17)(
8901             ::std::mem::transmute_copy(self),
8902             ::std::mem::transmute(emsize),
8903             ::std::mem::transmute(pixelsperdip),
8904             ::std::mem::transmute(transform),
8905             usegdinatural.into_param().abi(),
8906             ::std::mem::transmute(glyphindices),
8907             ::std::mem::transmute(glyphcount),
8908             ::std::mem::transmute(glyphmetrics),
8909             issideways.into_param().abi(),
8910         )
8911         .ok()
8912     }
8913     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)8914     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
8915         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
8916     }
8917     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1>8918     pub unsafe fn GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1> {
8919         let mut result__: <DWRITE_FONT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8920         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS1>(result__)
8921     }
GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS)8922     pub unsafe fn GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS) {
8923         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(caretmetrics)))
8924     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>8925     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
8926         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
8927     }
8928     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL8929     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
8930         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
8931     }
8932     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()>8933     pub unsafe fn GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()> {
8934         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvances), issideways.into_param().abi()).ok()
8935     }
8936     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()>8937     pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()> {
8938         (::windows::runtime::Interface::vtable(self).24)(
8939             ::std::mem::transmute_copy(self),
8940             ::std::mem::transmute(emsize),
8941             ::std::mem::transmute(pixelsperdip),
8942             ::std::mem::transmute(transform),
8943             usegdinatural.into_param().abi(),
8944             issideways.into_param().abi(),
8945             ::std::mem::transmute(glyphcount),
8946             ::std::mem::transmute(glyphindices),
8947             ::std::mem::transmute(glyphadvances),
8948         )
8949         .ok()
8950     }
GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()>8951     pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()> {
8952         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvanceadjustments)).ok()
8953     }
8954     #[cfg(feature = "Win32_Foundation")]
HasKerningPairs(&self) -> super::super::Foundation::BOOL8955     pub unsafe fn HasKerningPairs(&self) -> super::super::Foundation::BOOL {
8956         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
8957     }
8958     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>8959     pub unsafe fn GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
8960         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
8961         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontemsize), ::std::mem::transmute(dpix), ::std::mem::transmute(dpiy), ::std::mem::transmute(transform), issideways.into_param().abi(), ::std::mem::transmute(outlinethreshold), ::std::mem::transmute(measuringmode), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
8962     }
GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()>8963     pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()> {
8964         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(nominalglyphindices), ::std::mem::transmute(verticalglyphindices)).ok()
8965     }
8966     #[cfg(feature = "Win32_Foundation")]
HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL8967     pub unsafe fn HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL {
8968         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
8969     }
8970     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL8971     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
8972         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self)))
8973     }
GetColorPaletteCount(&self) -> u328974     pub unsafe fn GetColorPaletteCount(&self) -> u32 {
8975         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
8976     }
GetPaletteEntryCount(&self) -> u328977     pub unsafe fn GetPaletteEntryCount(&self) -> u32 {
8978         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self)))
8979     }
GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()>8980     pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()> {
8981         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorpaletteindex), ::std::mem::transmute(firstentryindex), ::std::mem::transmute(entrycount), ::std::mem::transmute(paletteentries)).ok()
8982     }
8983     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>8984     pub unsafe fn GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
8985         &self,
8986         fontemsize: f32,
8987         dpix: f32,
8988         dpiy: f32,
8989         transform: *const DWRITE_MATRIX,
8990         issideways: Param4,
8991         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
8992         measuringmode: DWRITE_MEASURING_MODE,
8993         renderingparams: Param7,
8994         renderingmode: *mut DWRITE_RENDERING_MODE,
8995         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
8996     ) -> ::windows::runtime::Result<()> {
8997         (::windows::runtime::Interface::vtable(self).34)(
8998             ::std::mem::transmute_copy(self),
8999             ::std::mem::transmute(fontemsize),
9000             ::std::mem::transmute(dpix),
9001             ::std::mem::transmute(dpiy),
9002             ::std::mem::transmute(transform),
9003             issideways.into_param().abi(),
9004             ::std::mem::transmute(outlinethreshold),
9005             ::std::mem::transmute(measuringmode),
9006             renderingparams.into_param().abi(),
9007             ::std::mem::transmute(renderingmode),
9008             ::std::mem::transmute(gridfitmode),
9009         )
9010         .ok()
9011     }
GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference>9012     pub unsafe fn GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
9013         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9014         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
9015     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)9016     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
9017         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
9018     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT9019     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
9020         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self)))
9021     }
GetStretch(&self) -> DWRITE_FONT_STRETCH9022     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
9023         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self)))
9024     }
GetStyle(&self) -> DWRITE_FONT_STYLE9025     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
9026         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self)))
9027     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>9028     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
9029         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9030         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
9031     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>9032     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
9033         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9034         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
9035     }
9036     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>9037     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
9038         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
9039     }
9040     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL9041     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
9042         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
9043     }
9044     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>9045     pub unsafe fn GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
9046         &self,
9047         fontemsize: f32,
9048         dpix: f32,
9049         dpiy: f32,
9050         transform: *const DWRITE_MATRIX,
9051         issideways: Param4,
9052         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
9053         measuringmode: DWRITE_MEASURING_MODE,
9054         renderingparams: Param7,
9055         renderingmode: *mut DWRITE_RENDERING_MODE1,
9056         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
9057     ) -> ::windows::runtime::Result<()> {
9058         (::windows::runtime::Interface::vtable(self).44)(
9059             ::std::mem::transmute_copy(self),
9060             ::std::mem::transmute(fontemsize),
9061             ::std::mem::transmute(dpix),
9062             ::std::mem::transmute(dpiy),
9063             ::std::mem::transmute(transform),
9064             issideways.into_param().abi(),
9065             ::std::mem::transmute(outlinethreshold),
9066             ::std::mem::transmute(measuringmode),
9067             renderingparams.into_param().abi(),
9068             ::std::mem::transmute(renderingmode),
9069             ::std::mem::transmute(gridfitmode),
9070         )
9071         .ok()
9072     }
9073     #[cfg(feature = "Win32_Foundation")]
IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL9074     pub unsafe fn IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
9075         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
9076     }
9077     #[cfg(feature = "Win32_Foundation")]
IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL9078     pub unsafe fn IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL {
9079         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid)))
9080     }
9081     #[cfg(feature = "Win32_Foundation")]
AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>9082     pub unsafe fn AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
9083         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9084         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), characters.into_param().abi(), ::std::mem::transmute(charactercount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
9085     }
9086     #[cfg(feature = "Win32_Foundation")]
AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>9087     pub unsafe fn AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
9088         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9089         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
9090     }
GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::runtime::Result<DWRITE_GLYPH_IMAGE_FORMATS>9091     pub unsafe fn GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::runtime::Result<DWRITE_GLYPH_IMAGE_FORMATS> {
9092         let mut result__: <DWRITE_GLYPH_IMAGE_FORMATS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9093         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid), ::std::mem::transmute(pixelsperemfirst), ::std::mem::transmute(pixelsperemlast), &mut result__).from_abi::<DWRITE_GLYPH_IMAGE_FORMATS>(result__)
9094     }
GetGlyphImageFormats2(&self) -> DWRITE_GLYPH_IMAGE_FORMATS9095     pub unsafe fn GetGlyphImageFormats2(&self) -> DWRITE_GLYPH_IMAGE_FORMATS {
9096         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self)))
9097     }
9098     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphImageData(&self, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9099     pub unsafe fn GetGlyphImageData(&self, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9100         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid), ::std::mem::transmute(pixelsperem), ::std::mem::transmute(glyphimageformat), ::std::mem::transmute(glyphdata), ::std::mem::transmute(glyphdatacontext)).ok()
9101     }
ReleaseGlyphImageData(&self, glyphdatacontext: *mut ::std::ffi::c_void)9102     pub unsafe fn ReleaseGlyphImageData(&self, glyphdatacontext: *mut ::std::ffi::c_void) {
9103         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphdatacontext)))
9104     }
9105 }
9106 unsafe impl ::windows::runtime::Interface for IDWriteFontFace4 {
9107     type Vtable = IDWriteFontFace4_abi;
9108     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(670214404, 20152, 17437, [150, 120, 5, 99, 245, 62, 62, 47]);
9109 }
9110 impl ::std::convert::From<IDWriteFontFace4> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace4) -> Self9111     fn from(value: IDWriteFontFace4) -> Self {
9112         unsafe { ::std::mem::transmute(value) }
9113     }
9114 }
9115 impl ::std::convert::From<&IDWriteFontFace4> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace4) -> Self9116     fn from(value: &IDWriteFontFace4) -> Self {
9117         ::std::convert::From::from(::std::clone::Clone::clone(value))
9118     }
9119 }
9120 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9121     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9122         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9123     }
9124 }
9125 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9126     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9127         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9128     }
9129 }
9130 impl ::std::convert::From<IDWriteFontFace4> for IDWriteFontFace3 {
from(value: IDWriteFontFace4) -> Self9131     fn from(value: IDWriteFontFace4) -> Self {
9132         unsafe { ::std::mem::transmute(value) }
9133     }
9134 }
9135 impl ::std::convert::From<&IDWriteFontFace4> for IDWriteFontFace3 {
from(value: &IDWriteFontFace4) -> Self9136     fn from(value: &IDWriteFontFace4) -> Self {
9137         ::std::convert::From::from(::std::clone::Clone::clone(value))
9138     }
9139 }
9140 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace3> for IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3>9141     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3> {
9142         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace3>::into(self))
9143     }
9144 }
9145 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace3> for &IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3>9146     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3> {
9147         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace3>::into(::std::clone::Clone::clone(self)))
9148     }
9149 }
9150 impl ::std::convert::From<IDWriteFontFace4> for IDWriteFontFace2 {
from(value: IDWriteFontFace4) -> Self9151     fn from(value: IDWriteFontFace4) -> Self {
9152         unsafe { ::std::mem::transmute(value) }
9153     }
9154 }
9155 impl ::std::convert::From<&IDWriteFontFace4> for IDWriteFontFace2 {
from(value: &IDWriteFontFace4) -> Self9156     fn from(value: &IDWriteFontFace4) -> Self {
9157         ::std::convert::From::from(::std::clone::Clone::clone(value))
9158     }
9159 }
9160 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>9161     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
9162         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(self))
9163     }
9164 }
9165 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for &IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>9166     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
9167         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(::std::clone::Clone::clone(self)))
9168     }
9169 }
9170 impl ::std::convert::From<IDWriteFontFace4> for IDWriteFontFace1 {
from(value: IDWriteFontFace4) -> Self9171     fn from(value: IDWriteFontFace4) -> Self {
9172         unsafe { ::std::mem::transmute(value) }
9173     }
9174 }
9175 impl ::std::convert::From<&IDWriteFontFace4> for IDWriteFontFace1 {
from(value: &IDWriteFontFace4) -> Self9176     fn from(value: &IDWriteFontFace4) -> Self {
9177         ::std::convert::From::from(::std::clone::Clone::clone(value))
9178     }
9179 }
9180 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>9181     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
9182         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(self))
9183     }
9184 }
9185 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for &IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>9186     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
9187         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(::std::clone::Clone::clone(self)))
9188     }
9189 }
9190 impl ::std::convert::From<IDWriteFontFace4> for IDWriteFontFace {
from(value: IDWriteFontFace4) -> Self9191     fn from(value: IDWriteFontFace4) -> Self {
9192         unsafe { ::std::mem::transmute(value) }
9193     }
9194 }
9195 impl ::std::convert::From<&IDWriteFontFace4> for IDWriteFontFace {
from(value: &IDWriteFontFace4) -> Self9196     fn from(value: &IDWriteFontFace4) -> Self {
9197         ::std::convert::From::from(::std::clone::Clone::clone(value))
9198     }
9199 }
9200 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>9201     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
9202         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(self))
9203     }
9204 }
9205 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for &IDWriteFontFace4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>9206     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
9207         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(::std::clone::Clone::clone(self)))
9208     }
9209 }
9210 #[repr(C)]
9211 #[doc(hidden)]
9212 pub struct IDWriteFontFace4_abi(
9213     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9214     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9215     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9216     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
9217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9219     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
9220     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9221     #[cfg(not(feature = "Win32_Foundation"))] usize,
9222     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
9223     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
9224     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9225     #[cfg(not(feature = "Win32_Foundation"))] usize,
9226     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
9227     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9228     #[cfg(not(feature = "Win32_Foundation"))] usize,
9229     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
9230     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9231     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
9232     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
9233     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
9234     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9235     #[cfg(not(feature = "Win32_Foundation"))] usize,
9236     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
9237     #[cfg(not(feature = "Win32_Foundation"))] usize,
9238     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontmetrics: *mut DWRITE_FONT_METRICS1) -> ::windows::runtime::HRESULT,
9239     #[cfg(not(feature = "Win32_Foundation"))] usize,
9240     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, caretmetrics: *mut DWRITE_CARET_METRICS),
9241     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
9242     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9243     #[cfg(not(feature = "Win32_Foundation"))] usize,
9244     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9245     #[cfg(not(feature = "Win32_Foundation"))] usize,
9246     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, issideways: super::super::Foundation::BOOL, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::HRESULT,
9247     #[cfg(not(feature = "Win32_Foundation"))] usize,
9248     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::HRESULT,
9249     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9250     #[cfg(not(feature = "Win32_Foundation"))] usize,
9251     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
9252     #[cfg(not(feature = "Win32_Foundation"))] usize,
9253     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::HRESULT,
9254     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9255     #[cfg(not(feature = "Win32_Foundation"))] usize,
9256     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9257     #[cfg(not(feature = "Win32_Foundation"))] usize,
9258     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::HRESULT,
9261     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
9262     #[cfg(not(feature = "Win32_Foundation"))] usize,
9263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
9265     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
9266     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
9267     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
9268     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9269     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9270     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9271     #[cfg(not(feature = "Win32_Foundation"))] usize,
9272     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
9273     #[cfg(not(feature = "Win32_Foundation"))] usize,
9274     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
9275     #[cfg(not(feature = "Win32_Foundation"))] usize,
9276     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
9277     #[cfg(not(feature = "Win32_Foundation"))] usize,
9278     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16) -> super::super::Foundation::BOOL,
9279     #[cfg(not(feature = "Win32_Foundation"))] usize,
9280     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, characters: super::super::Foundation::PWSTR, charactercount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9281     #[cfg(not(feature = "Win32_Foundation"))] usize,
9282     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9283     #[cfg(not(feature = "Win32_Foundation"))] usize,
9284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32, glyphimageformats: *mut DWRITE_GLYPH_IMAGE_FORMATS) -> ::windows::runtime::HRESULT,
9285     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_GLYPH_IMAGE_FORMATS,
9286     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9287     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
9288     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphdatacontext: *mut ::std::ffi::c_void),
9289 );
9290 #[repr(transparent)]
9291 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9292 pub struct IDWriteFontFace5(::windows::runtime::IUnknown);
9293 impl IDWriteFontFace5 {
GetType(&self) -> DWRITE_FONT_FACE_TYPE9294     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
9295         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
9296     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>9297     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
9298         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
9299     }
GetIndex(&self) -> u329300     pub unsafe fn GetIndex(&self) -> u32 {
9301         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
9302     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS9303     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
9304         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
9305     }
9306     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL9307     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
9308         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
9309     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)9310     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
9311         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
9312     }
GetGlyphCount(&self) -> u169313     pub unsafe fn GetGlyphCount(&self) -> u16 {
9314         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
9315     }
9316     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>9317     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
9318         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
9319     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>9320     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
9321         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
9322     }
9323     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>9324     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
9325         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
9326     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)9327     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
9328         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
9329     }
9330     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>9331     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
9332         &self,
9333         emsize: f32,
9334         glyphindices: *const u16,
9335         glyphadvances: *const f32,
9336         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
9337         glyphcount: u32,
9338         issideways: Param5,
9339         isrighttoleft: Param6,
9340         geometrysink: Param7,
9341     ) -> ::windows::runtime::Result<()> {
9342         (::windows::runtime::Interface::vtable(self).14)(
9343             ::std::mem::transmute_copy(self),
9344             ::std::mem::transmute(emsize),
9345             ::std::mem::transmute(glyphindices),
9346             ::std::mem::transmute(glyphadvances),
9347             ::std::mem::transmute(glyphoffsets),
9348             ::std::mem::transmute(glyphcount),
9349             issideways.into_param().abi(),
9350             isrighttoleft.into_param().abi(),
9351             geometrysink.into_param().abi(),
9352         )
9353         .ok()
9354     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>9355     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
9356         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9357         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
9358     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>9359     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
9360         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9361         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
9362     }
9363     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>9364     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
9365         (::windows::runtime::Interface::vtable(self).17)(
9366             ::std::mem::transmute_copy(self),
9367             ::std::mem::transmute(emsize),
9368             ::std::mem::transmute(pixelsperdip),
9369             ::std::mem::transmute(transform),
9370             usegdinatural.into_param().abi(),
9371             ::std::mem::transmute(glyphindices),
9372             ::std::mem::transmute(glyphcount),
9373             ::std::mem::transmute(glyphmetrics),
9374             issideways.into_param().abi(),
9375         )
9376         .ok()
9377     }
9378     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)9379     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
9380         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
9381     }
9382     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1>9383     pub unsafe fn GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1> {
9384         let mut result__: <DWRITE_FONT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9385         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS1>(result__)
9386     }
GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS)9387     pub unsafe fn GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS) {
9388         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(caretmetrics)))
9389     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>9390     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
9391         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
9392     }
9393     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL9394     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
9395         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
9396     }
9397     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()>9398     pub unsafe fn GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()> {
9399         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvances), issideways.into_param().abi()).ok()
9400     }
9401     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()>9402     pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()> {
9403         (::windows::runtime::Interface::vtable(self).24)(
9404             ::std::mem::transmute_copy(self),
9405             ::std::mem::transmute(emsize),
9406             ::std::mem::transmute(pixelsperdip),
9407             ::std::mem::transmute(transform),
9408             usegdinatural.into_param().abi(),
9409             issideways.into_param().abi(),
9410             ::std::mem::transmute(glyphcount),
9411             ::std::mem::transmute(glyphindices),
9412             ::std::mem::transmute(glyphadvances),
9413         )
9414         .ok()
9415     }
GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()>9416     pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()> {
9417         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvanceadjustments)).ok()
9418     }
9419     #[cfg(feature = "Win32_Foundation")]
HasKerningPairs(&self) -> super::super::Foundation::BOOL9420     pub unsafe fn HasKerningPairs(&self) -> super::super::Foundation::BOOL {
9421         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
9422     }
9423     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>9424     pub unsafe fn GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
9425         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9426         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontemsize), ::std::mem::transmute(dpix), ::std::mem::transmute(dpiy), ::std::mem::transmute(transform), issideways.into_param().abi(), ::std::mem::transmute(outlinethreshold), ::std::mem::transmute(measuringmode), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
9427     }
GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()>9428     pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()> {
9429         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(nominalglyphindices), ::std::mem::transmute(verticalglyphindices)).ok()
9430     }
9431     #[cfg(feature = "Win32_Foundation")]
HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL9432     pub unsafe fn HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL {
9433         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
9434     }
9435     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL9436     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
9437         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self)))
9438     }
GetColorPaletteCount(&self) -> u329439     pub unsafe fn GetColorPaletteCount(&self) -> u32 {
9440         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
9441     }
GetPaletteEntryCount(&self) -> u329442     pub unsafe fn GetPaletteEntryCount(&self) -> u32 {
9443         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self)))
9444     }
GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()>9445     pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()> {
9446         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorpaletteindex), ::std::mem::transmute(firstentryindex), ::std::mem::transmute(entrycount), ::std::mem::transmute(paletteentries)).ok()
9447     }
9448     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>9449     pub unsafe fn GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
9450         &self,
9451         fontemsize: f32,
9452         dpix: f32,
9453         dpiy: f32,
9454         transform: *const DWRITE_MATRIX,
9455         issideways: Param4,
9456         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
9457         measuringmode: DWRITE_MEASURING_MODE,
9458         renderingparams: Param7,
9459         renderingmode: *mut DWRITE_RENDERING_MODE,
9460         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
9461     ) -> ::windows::runtime::Result<()> {
9462         (::windows::runtime::Interface::vtable(self).34)(
9463             ::std::mem::transmute_copy(self),
9464             ::std::mem::transmute(fontemsize),
9465             ::std::mem::transmute(dpix),
9466             ::std::mem::transmute(dpiy),
9467             ::std::mem::transmute(transform),
9468             issideways.into_param().abi(),
9469             ::std::mem::transmute(outlinethreshold),
9470             ::std::mem::transmute(measuringmode),
9471             renderingparams.into_param().abi(),
9472             ::std::mem::transmute(renderingmode),
9473             ::std::mem::transmute(gridfitmode),
9474         )
9475         .ok()
9476     }
GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference>9477     pub unsafe fn GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
9478         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9479         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
9480     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)9481     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
9482         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
9483     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT9484     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
9485         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self)))
9486     }
GetStretch(&self) -> DWRITE_FONT_STRETCH9487     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
9488         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self)))
9489     }
GetStyle(&self) -> DWRITE_FONT_STYLE9490     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
9491         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self)))
9492     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>9493     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
9494         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9495         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
9496     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>9497     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
9498         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9499         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
9500     }
9501     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>9502     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
9503         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
9504     }
9505     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL9506     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
9507         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
9508     }
9509     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>9510     pub unsafe fn GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
9511         &self,
9512         fontemsize: f32,
9513         dpix: f32,
9514         dpiy: f32,
9515         transform: *const DWRITE_MATRIX,
9516         issideways: Param4,
9517         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
9518         measuringmode: DWRITE_MEASURING_MODE,
9519         renderingparams: Param7,
9520         renderingmode: *mut DWRITE_RENDERING_MODE1,
9521         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
9522     ) -> ::windows::runtime::Result<()> {
9523         (::windows::runtime::Interface::vtable(self).44)(
9524             ::std::mem::transmute_copy(self),
9525             ::std::mem::transmute(fontemsize),
9526             ::std::mem::transmute(dpix),
9527             ::std::mem::transmute(dpiy),
9528             ::std::mem::transmute(transform),
9529             issideways.into_param().abi(),
9530             ::std::mem::transmute(outlinethreshold),
9531             ::std::mem::transmute(measuringmode),
9532             renderingparams.into_param().abi(),
9533             ::std::mem::transmute(renderingmode),
9534             ::std::mem::transmute(gridfitmode),
9535         )
9536         .ok()
9537     }
9538     #[cfg(feature = "Win32_Foundation")]
IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL9539     pub unsafe fn IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
9540         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
9541     }
9542     #[cfg(feature = "Win32_Foundation")]
IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL9543     pub unsafe fn IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL {
9544         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid)))
9545     }
9546     #[cfg(feature = "Win32_Foundation")]
AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>9547     pub unsafe fn AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
9548         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9549         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), characters.into_param().abi(), ::std::mem::transmute(charactercount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
9550     }
9551     #[cfg(feature = "Win32_Foundation")]
AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>9552     pub unsafe fn AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
9553         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9554         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
9555     }
GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::runtime::Result<DWRITE_GLYPH_IMAGE_FORMATS>9556     pub unsafe fn GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::runtime::Result<DWRITE_GLYPH_IMAGE_FORMATS> {
9557         let mut result__: <DWRITE_GLYPH_IMAGE_FORMATS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9558         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid), ::std::mem::transmute(pixelsperemfirst), ::std::mem::transmute(pixelsperemlast), &mut result__).from_abi::<DWRITE_GLYPH_IMAGE_FORMATS>(result__)
9559     }
GetGlyphImageFormats2(&self) -> DWRITE_GLYPH_IMAGE_FORMATS9560     pub unsafe fn GetGlyphImageFormats2(&self) -> DWRITE_GLYPH_IMAGE_FORMATS {
9561         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self)))
9562     }
9563     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphImageData(&self, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>9564     pub unsafe fn GetGlyphImageData(&self, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
9565         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid), ::std::mem::transmute(pixelsperem), ::std::mem::transmute(glyphimageformat), ::std::mem::transmute(glyphdata), ::std::mem::transmute(glyphdatacontext)).ok()
9566     }
ReleaseGlyphImageData(&self, glyphdatacontext: *mut ::std::ffi::c_void)9567     pub unsafe fn ReleaseGlyphImageData(&self, glyphdatacontext: *mut ::std::ffi::c_void) {
9568         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphdatacontext)))
9569     }
GetFontAxisValueCount(&self) -> u329570     pub unsafe fn GetFontAxisValueCount(&self) -> u32 {
9571         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self)))
9572     }
GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()>9573     pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()> {
9574         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount)).ok()
9575     }
9576     #[cfg(feature = "Win32_Foundation")]
HasVariations(&self) -> super::super::Foundation::BOOL9577     pub unsafe fn HasVariations(&self) -> super::super::Foundation::BOOL {
9578         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self)))
9579     }
GetFontResource(&self) -> ::windows::runtime::Result<IDWriteFontResource>9580     pub unsafe fn GetFontResource(&self) -> ::windows::runtime::Result<IDWriteFontResource> {
9581         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9582         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontResource>(result__)
9583     }
9584     #[cfg(feature = "Win32_Foundation")]
Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> super::super::Foundation::BOOL9585     pub unsafe fn Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> super::super::Foundation::BOOL {
9586         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), fontface.into_param().abi()))
9587     }
9588 }
9589 unsafe impl ::windows::runtime::Interface for IDWriteFontFace5 {
9590     type Vtable = IDWriteFontFace5_abi;
9591     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2565862309, 46695, 18330, [177, 69, 226, 250, 91, 159, 220, 41]);
9592 }
9593 impl ::std::convert::From<IDWriteFontFace5> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace5) -> Self9594     fn from(value: IDWriteFontFace5) -> Self {
9595         unsafe { ::std::mem::transmute(value) }
9596     }
9597 }
9598 impl ::std::convert::From<&IDWriteFontFace5> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace5) -> Self9599     fn from(value: &IDWriteFontFace5) -> Self {
9600         ::std::convert::From::from(::std::clone::Clone::clone(value))
9601     }
9602 }
9603 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9604     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9605         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
9606     }
9607 }
9608 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>9609     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
9610         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
9611     }
9612 }
9613 impl ::std::convert::From<IDWriteFontFace5> for IDWriteFontFace4 {
from(value: IDWriteFontFace5) -> Self9614     fn from(value: IDWriteFontFace5) -> Self {
9615         unsafe { ::std::mem::transmute(value) }
9616     }
9617 }
9618 impl ::std::convert::From<&IDWriteFontFace5> for IDWriteFontFace4 {
from(value: &IDWriteFontFace5) -> Self9619     fn from(value: &IDWriteFontFace5) -> Self {
9620         ::std::convert::From::from(::std::clone::Clone::clone(value))
9621     }
9622 }
9623 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace4> for IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4>9624     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4> {
9625         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace4>::into(self))
9626     }
9627 }
9628 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace4> for &IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4>9629     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4> {
9630         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace4>::into(::std::clone::Clone::clone(self)))
9631     }
9632 }
9633 impl ::std::convert::From<IDWriteFontFace5> for IDWriteFontFace3 {
from(value: IDWriteFontFace5) -> Self9634     fn from(value: IDWriteFontFace5) -> Self {
9635         unsafe { ::std::mem::transmute(value) }
9636     }
9637 }
9638 impl ::std::convert::From<&IDWriteFontFace5> for IDWriteFontFace3 {
from(value: &IDWriteFontFace5) -> Self9639     fn from(value: &IDWriteFontFace5) -> Self {
9640         ::std::convert::From::from(::std::clone::Clone::clone(value))
9641     }
9642 }
9643 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace3> for IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3>9644     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3> {
9645         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace3>::into(self))
9646     }
9647 }
9648 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace3> for &IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3>9649     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3> {
9650         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace3>::into(::std::clone::Clone::clone(self)))
9651     }
9652 }
9653 impl ::std::convert::From<IDWriteFontFace5> for IDWriteFontFace2 {
from(value: IDWriteFontFace5) -> Self9654     fn from(value: IDWriteFontFace5) -> Self {
9655         unsafe { ::std::mem::transmute(value) }
9656     }
9657 }
9658 impl ::std::convert::From<&IDWriteFontFace5> for IDWriteFontFace2 {
from(value: &IDWriteFontFace5) -> Self9659     fn from(value: &IDWriteFontFace5) -> Self {
9660         ::std::convert::From::from(::std::clone::Clone::clone(value))
9661     }
9662 }
9663 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>9664     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
9665         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(self))
9666     }
9667 }
9668 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for &IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>9669     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
9670         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(::std::clone::Clone::clone(self)))
9671     }
9672 }
9673 impl ::std::convert::From<IDWriteFontFace5> for IDWriteFontFace1 {
from(value: IDWriteFontFace5) -> Self9674     fn from(value: IDWriteFontFace5) -> Self {
9675         unsafe { ::std::mem::transmute(value) }
9676     }
9677 }
9678 impl ::std::convert::From<&IDWriteFontFace5> for IDWriteFontFace1 {
from(value: &IDWriteFontFace5) -> Self9679     fn from(value: &IDWriteFontFace5) -> Self {
9680         ::std::convert::From::from(::std::clone::Clone::clone(value))
9681     }
9682 }
9683 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>9684     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
9685         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(self))
9686     }
9687 }
9688 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for &IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>9689     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
9690         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(::std::clone::Clone::clone(self)))
9691     }
9692 }
9693 impl ::std::convert::From<IDWriteFontFace5> for IDWriteFontFace {
from(value: IDWriteFontFace5) -> Self9694     fn from(value: IDWriteFontFace5) -> Self {
9695         unsafe { ::std::mem::transmute(value) }
9696     }
9697 }
9698 impl ::std::convert::From<&IDWriteFontFace5> for IDWriteFontFace {
from(value: &IDWriteFontFace5) -> Self9699     fn from(value: &IDWriteFontFace5) -> Self {
9700         ::std::convert::From::from(::std::clone::Clone::clone(value))
9701     }
9702 }
9703 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>9704     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
9705         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(self))
9706     }
9707 }
9708 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for &IDWriteFontFace5 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>9709     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
9710         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(::std::clone::Clone::clone(self)))
9711     }
9712 }
9713 #[repr(C)]
9714 #[doc(hidden)]
9715 pub struct IDWriteFontFace5_abi(
9716     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9717     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9719     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
9720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9721     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
9723     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9724     #[cfg(not(feature = "Win32_Foundation"))] usize,
9725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
9726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
9727     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9728     #[cfg(not(feature = "Win32_Foundation"))] usize,
9729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
9730     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9731     #[cfg(not(feature = "Win32_Foundation"))] usize,
9732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
9733     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9734     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
9735     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
9736     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
9737     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9738     #[cfg(not(feature = "Win32_Foundation"))] usize,
9739     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
9740     #[cfg(not(feature = "Win32_Foundation"))] usize,
9741     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontmetrics: *mut DWRITE_FONT_METRICS1) -> ::windows::runtime::HRESULT,
9742     #[cfg(not(feature = "Win32_Foundation"))] usize,
9743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, caretmetrics: *mut DWRITE_CARET_METRICS),
9744     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
9745     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9746     #[cfg(not(feature = "Win32_Foundation"))] usize,
9747     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9748     #[cfg(not(feature = "Win32_Foundation"))] usize,
9749     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, issideways: super::super::Foundation::BOOL, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::HRESULT,
9750     #[cfg(not(feature = "Win32_Foundation"))] usize,
9751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::HRESULT,
9752     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9753     #[cfg(not(feature = "Win32_Foundation"))] usize,
9754     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
9755     #[cfg(not(feature = "Win32_Foundation"))] usize,
9756     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::HRESULT,
9757     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9758     #[cfg(not(feature = "Win32_Foundation"))] usize,
9759     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9760     #[cfg(not(feature = "Win32_Foundation"))] usize,
9761     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::HRESULT,
9764     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
9765     #[cfg(not(feature = "Win32_Foundation"))] usize,
9766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
9768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
9769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
9770     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
9771     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9773     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9774     #[cfg(not(feature = "Win32_Foundation"))] usize,
9775     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
9776     #[cfg(not(feature = "Win32_Foundation"))] usize,
9777     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
9778     #[cfg(not(feature = "Win32_Foundation"))] usize,
9779     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
9780     #[cfg(not(feature = "Win32_Foundation"))] usize,
9781     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16) -> super::super::Foundation::BOOL,
9782     #[cfg(not(feature = "Win32_Foundation"))] usize,
9783     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, characters: super::super::Foundation::PWSTR, charactercount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9784     #[cfg(not(feature = "Win32_Foundation"))] usize,
9785     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
9786     #[cfg(not(feature = "Win32_Foundation"))] usize,
9787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32, glyphimageformats: *mut DWRITE_GLYPH_IMAGE_FORMATS) -> ::windows::runtime::HRESULT,
9788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_GLYPH_IMAGE_FORMATS,
9789     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
9790     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
9791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphdatacontext: *mut ::std::ffi::c_void),
9792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
9793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::HRESULT,
9794     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9795     #[cfg(not(feature = "Win32_Foundation"))] usize,
9796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
9797     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
9798     #[cfg(not(feature = "Win32_Foundation"))] usize,
9799 );
9800 #[repr(transparent)]
9801 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
9802 pub struct IDWriteFontFace6(::windows::runtime::IUnknown);
9803 impl IDWriteFontFace6 {
GetType(&self) -> DWRITE_FONT_FACE_TYPE9804     pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE {
9805         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
9806     }
GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()>9807     pub unsafe fn GetFiles(&self, numberoffiles: *mut u32, fontfiles: *mut ::std::option::Option<IDWriteFontFile>) -> ::windows::runtime::Result<()> {
9808         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(numberoffiles), ::std::mem::transmute(fontfiles)).ok()
9809     }
GetIndex(&self) -> u329810     pub unsafe fn GetIndex(&self) -> u32 {
9811         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
9812     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS9813     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
9814         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
9815     }
9816     #[cfg(feature = "Win32_Foundation")]
IsSymbolFont(&self) -> super::super::Foundation::BOOL9817     pub unsafe fn IsSymbolFont(&self) -> super::super::Foundation::BOOL {
9818         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
9819     }
GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS)9820     pub unsafe fn GetMetrics(&self, fontfacemetrics: *mut DWRITE_FONT_METRICS) {
9821         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacemetrics)))
9822     }
GetGlyphCount(&self) -> u169823     pub unsafe fn GetGlyphCount(&self) -> u16 {
9824         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
9825     }
9826     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()>9827     pub unsafe fn GetDesignGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param3) -> ::windows::runtime::Result<()> {
9828         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphmetrics), issideways.into_param().abi()).ok()
9829     }
GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>9830     pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
9831         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(codepoints), ::std::mem::transmute(codepointcount), ::std::mem::transmute(glyphindices)).ok()
9832     }
9833     #[cfg(feature = "Win32_Foundation")]
TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>9834     pub unsafe fn TryGetFontTable(&self, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
9835         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(opentypetabletag), ::std::mem::transmute(tabledata), ::std::mem::transmute(tablesize), ::std::mem::transmute(tablecontext), ::std::mem::transmute(exists)).ok()
9836     }
ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void)9837     pub unsafe fn ReleaseFontTable(&self, tablecontext: *const ::std::ffi::c_void) {
9838         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(tablecontext)))
9839     }
9840     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>( &self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: Param5, isrighttoleft: Param6, geometrysink: Param7, ) -> ::windows::runtime::Result<()>9841     pub unsafe fn GetGlyphRunOutline<'a, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::Direct2D::ID2D1SimplifiedGeometrySink>>(
9842         &self,
9843         emsize: f32,
9844         glyphindices: *const u16,
9845         glyphadvances: *const f32,
9846         glyphoffsets: *const DWRITE_GLYPH_OFFSET,
9847         glyphcount: u32,
9848         issideways: Param5,
9849         isrighttoleft: Param6,
9850         geometrysink: Param7,
9851     ) -> ::windows::runtime::Result<()> {
9852         (::windows::runtime::Interface::vtable(self).14)(
9853             ::std::mem::transmute_copy(self),
9854             ::std::mem::transmute(emsize),
9855             ::std::mem::transmute(glyphindices),
9856             ::std::mem::transmute(glyphadvances),
9857             ::std::mem::transmute(glyphoffsets),
9858             ::std::mem::transmute(glyphcount),
9859             issideways.into_param().abi(),
9860             isrighttoleft.into_param().abi(),
9861             geometrysink.into_param().abi(),
9862         )
9863         .ok()
9864     }
GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>9865     pub unsafe fn GetRecommendedRenderingMode<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param3) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
9866         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9867         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(measuringmode), renderingparams.into_param().abi(), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
9868     }
GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS>9869     pub unsafe fn GetGdiCompatibleMetrics(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS> {
9870         let mut result__: <DWRITE_FONT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9871         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS>(result__)
9872     }
9873     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()>9874     pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: Param7) -> ::windows::runtime::Result<()> {
9875         (::windows::runtime::Interface::vtable(self).17)(
9876             ::std::mem::transmute_copy(self),
9877             ::std::mem::transmute(emsize),
9878             ::std::mem::transmute(pixelsperdip),
9879             ::std::mem::transmute(transform),
9880             usegdinatural.into_param().abi(),
9881             ::std::mem::transmute(glyphindices),
9882             ::std::mem::transmute(glyphcount),
9883             ::std::mem::transmute(glyphmetrics),
9884             issideways.into_param().abi(),
9885         )
9886         .ok()
9887     }
9888     #[cfg(feature = "Win32_Foundation")]
GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1)9889     pub unsafe fn GetMetrics2(&self, fontmetrics: *mut DWRITE_FONT_METRICS1) {
9890         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontmetrics)))
9891     }
9892     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1>9893     pub unsafe fn GetGdiCompatibleMetrics2(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX) -> ::windows::runtime::Result<DWRITE_FONT_METRICS1> {
9894         let mut result__: <DWRITE_FONT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9895         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(emsize), ::std::mem::transmute(pixelsperdip), ::std::mem::transmute(transform), &mut result__).from_abi::<DWRITE_FONT_METRICS1>(result__)
9896     }
GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS)9897     pub unsafe fn GetCaretMetrics(&self, caretmetrics: *mut DWRITE_CARET_METRICS) {
9898         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(caretmetrics)))
9899     }
GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()>9900     pub unsafe fn GetUnicodeRanges(&self, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::Result<()> {
9901         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxrangecount), ::std::mem::transmute(unicoderanges), ::std::mem::transmute(actualrangecount)).ok()
9902     }
9903     #[cfg(feature = "Win32_Foundation")]
IsMonospacedFont(&self) -> super::super::Foundation::BOOL9904     pub unsafe fn IsMonospacedFont(&self) -> super::super::Foundation::BOOL {
9905         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
9906     }
9907     #[cfg(feature = "Win32_Foundation")]
GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()>9908     pub unsafe fn GetDesignGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: Param3) -> ::windows::runtime::Result<()> {
9909         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvances), issideways.into_param().abi()).ok()
9910     }
9911     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()>9912     pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param3, issideways: Param4, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::Result<()> {
9913         (::windows::runtime::Interface::vtable(self).24)(
9914             ::std::mem::transmute_copy(self),
9915             ::std::mem::transmute(emsize),
9916             ::std::mem::transmute(pixelsperdip),
9917             ::std::mem::transmute(transform),
9918             usegdinatural.into_param().abi(),
9919             issideways.into_param().abi(),
9920             ::std::mem::transmute(glyphcount),
9921             ::std::mem::transmute(glyphindices),
9922             ::std::mem::transmute(glyphadvances),
9923         )
9924         .ok()
9925     }
GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()>9926     pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::Result<()> {
9927         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphadvanceadjustments)).ok()
9928     }
9929     #[cfg(feature = "Win32_Foundation")]
HasKerningPairs(&self) -> super::super::Foundation::BOOL9930     pub unsafe fn HasKerningPairs(&self) -> super::super::Foundation::BOOL {
9931         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
9932     }
9933     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE>9934     pub unsafe fn GetRecommendedRenderingMode2<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE) -> ::windows::runtime::Result<DWRITE_RENDERING_MODE> {
9935         let mut result__: <DWRITE_RENDERING_MODE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9936         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontemsize), ::std::mem::transmute(dpix), ::std::mem::transmute(dpiy), ::std::mem::transmute(transform), issideways.into_param().abi(), ::std::mem::transmute(outlinethreshold), ::std::mem::transmute(measuringmode), &mut result__).from_abi::<DWRITE_RENDERING_MODE>(result__)
9937     }
GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()>9938     pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::Result<()> {
9939         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphcount), ::std::mem::transmute(nominalglyphindices), ::std::mem::transmute(verticalglyphindices)).ok()
9940     }
9941     #[cfg(feature = "Win32_Foundation")]
HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL9942     pub unsafe fn HasVerticalGlyphVariants(&self) -> super::super::Foundation::BOOL {
9943         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
9944     }
9945     #[cfg(feature = "Win32_Foundation")]
IsColorFont(&self) -> super::super::Foundation::BOOL9946     pub unsafe fn IsColorFont(&self) -> super::super::Foundation::BOOL {
9947         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self)))
9948     }
GetColorPaletteCount(&self) -> u329949     pub unsafe fn GetColorPaletteCount(&self) -> u32 {
9950         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
9951     }
GetPaletteEntryCount(&self) -> u329952     pub unsafe fn GetPaletteEntryCount(&self) -> u32 {
9953         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self)))
9954     }
GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()>9955     pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::Result<()> {
9956         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(colorpaletteindex), ::std::mem::transmute(firstentryindex), ::std::mem::transmute(entrycount), ::std::mem::transmute(paletteentries)).ok()
9957     }
9958     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>9959     pub unsafe fn GetRecommendedRenderingMode3<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
9960         &self,
9961         fontemsize: f32,
9962         dpix: f32,
9963         dpiy: f32,
9964         transform: *const DWRITE_MATRIX,
9965         issideways: Param4,
9966         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
9967         measuringmode: DWRITE_MEASURING_MODE,
9968         renderingparams: Param7,
9969         renderingmode: *mut DWRITE_RENDERING_MODE,
9970         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
9971     ) -> ::windows::runtime::Result<()> {
9972         (::windows::runtime::Interface::vtable(self).34)(
9973             ::std::mem::transmute_copy(self),
9974             ::std::mem::transmute(fontemsize),
9975             ::std::mem::transmute(dpix),
9976             ::std::mem::transmute(dpiy),
9977             ::std::mem::transmute(transform),
9978             issideways.into_param().abi(),
9979             ::std::mem::transmute(outlinethreshold),
9980             ::std::mem::transmute(measuringmode),
9981             renderingparams.into_param().abi(),
9982             ::std::mem::transmute(renderingmode),
9983             ::std::mem::transmute(gridfitmode),
9984         )
9985         .ok()
9986     }
GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference>9987     pub unsafe fn GetFontFaceReference(&self) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
9988         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
9989         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
9990     }
GetPanose(&self, panose: *mut DWRITE_PANOSE)9991     pub unsafe fn GetPanose(&self, panose: *mut DWRITE_PANOSE) {
9992         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(panose)))
9993     }
GetWeight(&self) -> DWRITE_FONT_WEIGHT9994     pub unsafe fn GetWeight(&self) -> DWRITE_FONT_WEIGHT {
9995         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self)))
9996     }
GetStretch(&self) -> DWRITE_FONT_STRETCH9997     pub unsafe fn GetStretch(&self) -> DWRITE_FONT_STRETCH {
9998         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self)))
9999     }
GetStyle(&self) -> DWRITE_FONT_STYLE10000     pub unsafe fn GetStyle(&self) -> DWRITE_FONT_STYLE {
10001         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self)))
10002     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>10003     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
10004         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10005         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
10006     }
GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>10007     pub unsafe fn GetFaceNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
10008         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10009         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
10010     }
10011     #[cfg(feature = "Win32_Foundation")]
GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>10012     pub unsafe fn GetInformationalStrings(&self, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::std::option::Option<IDWriteLocalizedStrings>, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
10013         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(informationalstringid), ::std::mem::transmute(informationalstrings), ::std::mem::transmute(exists)).ok()
10014     }
10015     #[cfg(feature = "Win32_Foundation")]
HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL10016     pub unsafe fn HasCharacter(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
10017         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
10018     }
10019     #[cfg(feature = "Win32_Foundation")]
GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>( &self, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: Param4, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: Param7, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE, ) -> ::windows::runtime::Result<()>10020     pub unsafe fn GetRecommendedRenderingMode4<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(
10021         &self,
10022         fontemsize: f32,
10023         dpix: f32,
10024         dpiy: f32,
10025         transform: *const DWRITE_MATRIX,
10026         issideways: Param4,
10027         outlinethreshold: DWRITE_OUTLINE_THRESHOLD,
10028         measuringmode: DWRITE_MEASURING_MODE,
10029         renderingparams: Param7,
10030         renderingmode: *mut DWRITE_RENDERING_MODE1,
10031         gridfitmode: *mut DWRITE_GRID_FIT_MODE,
10032     ) -> ::windows::runtime::Result<()> {
10033         (::windows::runtime::Interface::vtable(self).44)(
10034             ::std::mem::transmute_copy(self),
10035             ::std::mem::transmute(fontemsize),
10036             ::std::mem::transmute(dpix),
10037             ::std::mem::transmute(dpiy),
10038             ::std::mem::transmute(transform),
10039             issideways.into_param().abi(),
10040             ::std::mem::transmute(outlinethreshold),
10041             ::std::mem::transmute(measuringmode),
10042             renderingparams.into_param().abi(),
10043             ::std::mem::transmute(renderingmode),
10044             ::std::mem::transmute(gridfitmode),
10045         )
10046         .ok()
10047     }
10048     #[cfg(feature = "Win32_Foundation")]
IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL10049     pub unsafe fn IsCharacterLocal(&self, unicodevalue: u32) -> super::super::Foundation::BOOL {
10050         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(unicodevalue)))
10051     }
10052     #[cfg(feature = "Win32_Foundation")]
IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL10053     pub unsafe fn IsGlyphLocal(&self, glyphid: u16) -> super::super::Foundation::BOOL {
10054         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid)))
10055     }
10056     #[cfg(feature = "Win32_Foundation")]
AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>10057     pub unsafe fn AreCharactersLocal<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, characters: Param0, charactercount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
10058         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10059         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), characters.into_param().abi(), ::std::mem::transmute(charactercount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
10060     }
10061     #[cfg(feature = "Win32_Foundation")]
AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL>10062     pub unsafe fn AreGlyphsLocal<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: Param2) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
10063         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10064         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount), enqueueifnotlocal.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
10065     }
GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::runtime::Result<DWRITE_GLYPH_IMAGE_FORMATS>10066     pub unsafe fn GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::runtime::Result<DWRITE_GLYPH_IMAGE_FORMATS> {
10067         let mut result__: <DWRITE_GLYPH_IMAGE_FORMATS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10068         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid), ::std::mem::transmute(pixelsperemfirst), ::std::mem::transmute(pixelsperemlast), &mut result__).from_abi::<DWRITE_GLYPH_IMAGE_FORMATS>(result__)
10069     }
GetGlyphImageFormats2(&self) -> DWRITE_GLYPH_IMAGE_FORMATS10070     pub unsafe fn GetGlyphImageFormats2(&self) -> DWRITE_GLYPH_IMAGE_FORMATS {
10071         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self)))
10072     }
10073     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))]
GetGlyphImageData(&self, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>10074     pub unsafe fn GetGlyphImageData(&self, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
10075         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphid), ::std::mem::transmute(pixelsperem), ::std::mem::transmute(glyphimageformat), ::std::mem::transmute(glyphdata), ::std::mem::transmute(glyphdatacontext)).ok()
10076     }
ReleaseGlyphImageData(&self, glyphdatacontext: *mut ::std::ffi::c_void)10077     pub unsafe fn ReleaseGlyphImageData(&self, glyphdatacontext: *mut ::std::ffi::c_void) {
10078         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphdatacontext)))
10079     }
GetFontAxisValueCount(&self) -> u3210080     pub unsafe fn GetFontAxisValueCount(&self) -> u32 {
10081         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self)))
10082     }
GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()>10083     pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()> {
10084         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount)).ok()
10085     }
10086     #[cfg(feature = "Win32_Foundation")]
HasVariations(&self) -> super::super::Foundation::BOOL10087     pub unsafe fn HasVariations(&self) -> super::super::Foundation::BOOL {
10088         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self)))
10089     }
GetFontResource(&self) -> ::windows::runtime::Result<IDWriteFontResource>10090     pub unsafe fn GetFontResource(&self) -> ::windows::runtime::Result<IDWriteFontResource> {
10091         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10092         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontResource>(result__)
10093     }
10094     #[cfg(feature = "Win32_Foundation")]
Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> super::super::Foundation::BOOL10095     pub unsafe fn Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> super::super::Foundation::BOOL {
10096         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), fontface.into_param().abi()))
10097     }
GetFamilyNames2(&self, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteLocalizedStrings>10098     pub unsafe fn GetFamilyNames2(&self, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
10099         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10100         (::windows::runtime::Interface::vtable(self).58)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
10101     }
GetFaceNames2(&self, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteLocalizedStrings>10102     pub unsafe fn GetFaceNames2(&self, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
10103         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10104         (::windows::runtime::Interface::vtable(self).59)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilymodel), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
10105     }
10106 }
10107 unsafe impl ::windows::runtime::Interface for IDWriteFontFace6 {
10108     type Vtable = IDWriteFontFace6_abi;
10109     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3299999259, 28292, 18389, [181, 76, 165, 151, 152, 27, 6, 173]);
10110 }
10111 impl ::std::convert::From<IDWriteFontFace6> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFace6) -> Self10112     fn from(value: IDWriteFontFace6) -> Self {
10113         unsafe { ::std::mem::transmute(value) }
10114     }
10115 }
10116 impl ::std::convert::From<&IDWriteFontFace6> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFace6) -> Self10117     fn from(value: &IDWriteFontFace6) -> Self {
10118         ::std::convert::From::from(::std::clone::Clone::clone(value))
10119     }
10120 }
10121 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10122     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10123         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10124     }
10125 }
10126 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10127     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10128         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10129     }
10130 }
10131 impl ::std::convert::From<IDWriteFontFace6> for IDWriteFontFace5 {
from(value: IDWriteFontFace6) -> Self10132     fn from(value: IDWriteFontFace6) -> Self {
10133         unsafe { ::std::mem::transmute(value) }
10134     }
10135 }
10136 impl ::std::convert::From<&IDWriteFontFace6> for IDWriteFontFace5 {
from(value: &IDWriteFontFace6) -> Self10137     fn from(value: &IDWriteFontFace6) -> Self {
10138         ::std::convert::From::from(::std::clone::Clone::clone(value))
10139     }
10140 }
10141 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace5> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace5>10142     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace5> {
10143         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace5>::into(self))
10144     }
10145 }
10146 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace5> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace5>10147     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace5> {
10148         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace5>::into(::std::clone::Clone::clone(self)))
10149     }
10150 }
10151 impl ::std::convert::From<IDWriteFontFace6> for IDWriteFontFace4 {
from(value: IDWriteFontFace6) -> Self10152     fn from(value: IDWriteFontFace6) -> Self {
10153         unsafe { ::std::mem::transmute(value) }
10154     }
10155 }
10156 impl ::std::convert::From<&IDWriteFontFace6> for IDWriteFontFace4 {
from(value: &IDWriteFontFace6) -> Self10157     fn from(value: &IDWriteFontFace6) -> Self {
10158         ::std::convert::From::from(::std::clone::Clone::clone(value))
10159     }
10160 }
10161 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace4> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4>10162     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4> {
10163         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace4>::into(self))
10164     }
10165 }
10166 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace4> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4>10167     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace4> {
10168         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace4>::into(::std::clone::Clone::clone(self)))
10169     }
10170 }
10171 impl ::std::convert::From<IDWriteFontFace6> for IDWriteFontFace3 {
from(value: IDWriteFontFace6) -> Self10172     fn from(value: IDWriteFontFace6) -> Self {
10173         unsafe { ::std::mem::transmute(value) }
10174     }
10175 }
10176 impl ::std::convert::From<&IDWriteFontFace6> for IDWriteFontFace3 {
from(value: &IDWriteFontFace6) -> Self10177     fn from(value: &IDWriteFontFace6) -> Self {
10178         ::std::convert::From::from(::std::clone::Clone::clone(value))
10179     }
10180 }
10181 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace3> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3>10182     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3> {
10183         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace3>::into(self))
10184     }
10185 }
10186 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace3> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3>10187     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace3> {
10188         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace3>::into(::std::clone::Clone::clone(self)))
10189     }
10190 }
10191 impl ::std::convert::From<IDWriteFontFace6> for IDWriteFontFace2 {
from(value: IDWriteFontFace6) -> Self10192     fn from(value: IDWriteFontFace6) -> Self {
10193         unsafe { ::std::mem::transmute(value) }
10194     }
10195 }
10196 impl ::std::convert::From<&IDWriteFontFace6> for IDWriteFontFace2 {
from(value: &IDWriteFontFace6) -> Self10197     fn from(value: &IDWriteFontFace6) -> Self {
10198         ::std::convert::From::from(::std::clone::Clone::clone(value))
10199     }
10200 }
10201 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>10202     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
10203         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(self))
10204     }
10205 }
10206 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace2> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2>10207     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace2> {
10208         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace2>::into(::std::clone::Clone::clone(self)))
10209     }
10210 }
10211 impl ::std::convert::From<IDWriteFontFace6> for IDWriteFontFace1 {
from(value: IDWriteFontFace6) -> Self10212     fn from(value: IDWriteFontFace6) -> Self {
10213         unsafe { ::std::mem::transmute(value) }
10214     }
10215 }
10216 impl ::std::convert::From<&IDWriteFontFace6> for IDWriteFontFace1 {
from(value: &IDWriteFontFace6) -> Self10217     fn from(value: &IDWriteFontFace6) -> Self {
10218         ::std::convert::From::from(::std::clone::Clone::clone(value))
10219     }
10220 }
10221 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>10222     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
10223         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(self))
10224     }
10225 }
10226 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace1> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1>10227     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace1> {
10228         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace1>::into(::std::clone::Clone::clone(self)))
10229     }
10230 }
10231 impl ::std::convert::From<IDWriteFontFace6> for IDWriteFontFace {
from(value: IDWriteFontFace6) -> Self10232     fn from(value: IDWriteFontFace6) -> Self {
10233         unsafe { ::std::mem::transmute(value) }
10234     }
10235 }
10236 impl ::std::convert::From<&IDWriteFontFace6> for IDWriteFontFace {
from(value: &IDWriteFontFace6) -> Self10237     fn from(value: &IDWriteFontFace6) -> Self {
10238         ::std::convert::From::from(::std::clone::Clone::clone(value))
10239     }
10240 }
10241 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>10242     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
10243         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(self))
10244     }
10245 }
10246 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFace> for &IDWriteFontFace6 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace>10247     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFace> {
10248         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFace>::into(::std::clone::Clone::clone(self)))
10249     }
10250 }
10251 #[repr(C)]
10252 #[doc(hidden)]
10253 pub struct IDWriteFontFace6_abi(
10254     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10255     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10256     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10257     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_FACE_TYPE,
10258     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, numberoffiles: *mut u32, fontfiles: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
10261     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10262     #[cfg(not(feature = "Win32_Foundation"))] usize,
10263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacemetrics: *mut DWRITE_FONT_METRICS),
10264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u16,
10265     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10266     #[cfg(not(feature = "Win32_Foundation"))] usize,
10267     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
10268     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opentypetabletag: u32, tabledata: *mut *mut ::std::ffi::c_void, tablesize: *mut u32, tablecontext: *mut *mut ::std::ffi::c_void, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10269     #[cfg(not(feature = "Win32_Foundation"))] usize,
10270     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, tablecontext: *const ::std::ffi::c_void),
10271     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, geometrysink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10272     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
10273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
10274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontfacemetrics: *mut DWRITE_FONT_METRICS) -> ::windows::runtime::HRESULT,
10275     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10276     #[cfg(not(feature = "Win32_Foundation"))] usize,
10277     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontmetrics: *mut DWRITE_FONT_METRICS1),
10278     #[cfg(not(feature = "Win32_Foundation"))] usize,
10279     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, fontmetrics: *mut DWRITE_FONT_METRICS1) -> ::windows::runtime::HRESULT,
10280     #[cfg(not(feature = "Win32_Foundation"))] usize,
10281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, caretmetrics: *mut DWRITE_CARET_METRICS),
10282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxrangecount: u32, unicoderanges: *mut DWRITE_UNICODE_RANGE, actualrangecount: *mut u32) -> ::windows::runtime::HRESULT,
10283     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10284     #[cfg(not(feature = "Win32_Foundation"))] usize,
10285     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10286     #[cfg(not(feature = "Win32_Foundation"))] usize,
10287     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, emsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: super::super::Foundation::BOOL, issideways: super::super::Foundation::BOOL, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::runtime::HRESULT,
10288     #[cfg(not(feature = "Win32_Foundation"))] usize,
10289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::runtime::HRESULT,
10290     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10291     #[cfg(not(feature = "Win32_Foundation"))] usize,
10292     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingmode: *mut DWRITE_RENDERING_MODE) -> ::windows::runtime::HRESULT,
10293     #[cfg(not(feature = "Win32_Foundation"))] usize,
10294     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::runtime::HRESULT,
10295     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10296     #[cfg(not(feature = "Win32_Foundation"))] usize,
10297     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10298     #[cfg(not(feature = "Win32_Foundation"))] usize,
10299     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, colorpaletteindex: u32, firstentryindex: u32, entrycount: u32, paletteentries: *mut DWRITE_COLOR_F) -> ::windows::runtime::HRESULT,
10302     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
10303     #[cfg(not(feature = "Win32_Foundation"))] usize,
10304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, panose: *mut DWRITE_PANOSE),
10306     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
10307     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
10308     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
10309     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10310     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10311     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, informationalstringid: DWRITE_INFORMATIONAL_STRING_ID, informationalstrings: *mut ::windows::runtime::RawPtr, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10312     #[cfg(not(feature = "Win32_Foundation"))] usize,
10313     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
10314     #[cfg(not(feature = "Win32_Foundation"))] usize,
10315     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontemsize: f32, dpix: f32, dpiy: f32, transform: *const DWRITE_MATRIX, issideways: super::super::Foundation::BOOL, outlinethreshold: DWRITE_OUTLINE_THRESHOLD, measuringmode: DWRITE_MEASURING_MODE, renderingparams: ::windows::runtime::RawPtr, renderingmode: *mut DWRITE_RENDERING_MODE1, gridfitmode: *mut DWRITE_GRID_FIT_MODE) -> ::windows::runtime::HRESULT,
10316     #[cfg(not(feature = "Win32_Foundation"))] usize,
10317     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, unicodevalue: u32) -> super::super::Foundation::BOOL,
10318     #[cfg(not(feature = "Win32_Foundation"))] usize,
10319     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16) -> super::super::Foundation::BOOL,
10320     #[cfg(not(feature = "Win32_Foundation"))] usize,
10321     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, characters: super::super::Foundation::PWSTR, charactercount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10322     #[cfg(not(feature = "Win32_Foundation"))] usize,
10323     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32, enqueueifnotlocal: super::super::Foundation::BOOL, islocal: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
10324     #[cfg(not(feature = "Win32_Foundation"))] usize,
10325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32, glyphimageformats: *mut DWRITE_GLYPH_IMAGE_FORMATS) -> ::windows::runtime::HRESULT,
10326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_GLYPH_IMAGE_FORMATS,
10327     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphid: u16, pixelsperem: u32, glyphimageformat: DWRITE_GLYPH_IMAGE_FORMATS, glyphdata: *mut DWRITE_GLYPH_IMAGE_DATA, glyphdatacontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
10328     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D")))] usize,
10329     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphdatacontext: *mut ::std::ffi::c_void),
10330     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::HRESULT,
10332     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10333     #[cfg(not(feature = "Win32_Foundation"))] usize,
10334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10335     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10336     #[cfg(not(feature = "Win32_Foundation"))] usize,
10337     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilymodel: DWRITE_FONT_FAMILY_MODEL, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10339 );
10340 #[repr(transparent)]
10341 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10342 pub struct IDWriteFontFaceReference(::windows::runtime::IUnknown);
10343 impl IDWriteFontFaceReference {
CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace3>10344     pub unsafe fn CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace3> {
10345         let mut result__: <IDWriteFontFace3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10346         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace3>(result__)
10347     }
CreateFontFaceWithSimulations(&self, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace3>10348     pub unsafe fn CreateFontFaceWithSimulations(&self, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace3> {
10349         let mut result__: <IDWriteFontFace3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10350         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace3>(result__)
10351     }
10352     #[cfg(feature = "Win32_Foundation")]
Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> super::super::Foundation::BOOL10353     pub unsafe fn Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> super::super::Foundation::BOOL {
10354         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi()))
10355     }
GetFontFaceIndex(&self) -> u3210356     pub unsafe fn GetFontFaceIndex(&self) -> u32 {
10357         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
10358     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS10359     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
10360         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
10361     }
GetFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile>10362     pub unsafe fn GetFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile> {
10363         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10364         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFile>(result__)
10365     }
GetLocalFileSize(&self) -> u6410366     pub unsafe fn GetLocalFileSize(&self) -> u64 {
10367         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
10368     }
GetFileSize(&self) -> u6410369     pub unsafe fn GetFileSize(&self) -> u64 {
10370         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
10371     }
10372     #[cfg(feature = "Win32_Foundation")]
GetFileTime(&self) -> ::windows::runtime::Result<super::super::Foundation::FILETIME>10373     pub unsafe fn GetFileTime(&self) -> ::windows::runtime::Result<super::super::Foundation::FILETIME> {
10374         let mut result__: <super::super::Foundation::FILETIME as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10375         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::FILETIME>(result__)
10376     }
GetLocality(&self) -> DWRITE_LOCALITY10377     pub unsafe fn GetLocality(&self) -> DWRITE_LOCALITY {
10378         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
10379     }
EnqueueFontDownloadRequest(&self) -> ::windows::runtime::Result<()>10380     pub unsafe fn EnqueueFontDownloadRequest(&self) -> ::windows::runtime::Result<()> {
10381         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)).ok()
10382     }
10383     #[cfg(feature = "Win32_Foundation")]
EnqueueCharacterDownloadRequest<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, characters: Param0, charactercount: u32) -> ::windows::runtime::Result<()>10384     pub unsafe fn EnqueueCharacterDownloadRequest<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, characters: Param0, charactercount: u32) -> ::windows::runtime::Result<()> {
10385         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), characters.into_param().abi(), ::std::mem::transmute(charactercount)).ok()
10386     }
EnqueueGlyphDownloadRequest(&self, glyphindices: *const u16, glyphcount: u32) -> ::windows::runtime::Result<()>10387     pub unsafe fn EnqueueGlyphDownloadRequest(&self, glyphindices: *const u16, glyphcount: u32) -> ::windows::runtime::Result<()> {
10388         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount)).ok()
10389     }
EnqueueFileFragmentDownloadRequest(&self, fileoffset: u64, fragmentsize: u64) -> ::windows::runtime::Result<()>10390     pub unsafe fn EnqueueFileFragmentDownloadRequest(&self, fileoffset: u64, fragmentsize: u64) -> ::windows::runtime::Result<()> {
10391         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(fileoffset), ::std::mem::transmute(fragmentsize)).ok()
10392     }
10393 }
10394 unsafe impl ::windows::runtime::Interface for IDWriteFontFaceReference {
10395     type Vtable = IDWriteFontFaceReference_abi;
10396     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1585424330, 56803, 16972, [137, 240, 159, 205, 111, 237, 88, 205]);
10397 }
10398 impl ::std::convert::From<IDWriteFontFaceReference> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFaceReference) -> Self10399     fn from(value: IDWriteFontFaceReference) -> Self {
10400         unsafe { ::std::mem::transmute(value) }
10401     }
10402 }
10403 impl ::std::convert::From<&IDWriteFontFaceReference> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFaceReference) -> Self10404     fn from(value: &IDWriteFontFaceReference) -> Self {
10405         ::std::convert::From::from(::std::clone::Clone::clone(value))
10406     }
10407 }
10408 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFaceReference {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10409     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10410         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10411     }
10412 }
10413 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFaceReference {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10414     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10415         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10416     }
10417 }
10418 #[repr(C)]
10419 #[doc(hidden)]
10420 pub struct IDWriteFontFaceReference_abi(
10421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10423     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10426     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10427     #[cfg(not(feature = "Win32_Foundation"))] usize,
10428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
10430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u64,
10432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u64,
10433     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lastwritetime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
10434     #[cfg(not(feature = "Win32_Foundation"))] usize,
10435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_LOCALITY,
10436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10437     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, characters: super::super::Foundation::PWSTR, charactercount: u32) -> ::windows::runtime::HRESULT,
10438     #[cfg(not(feature = "Win32_Foundation"))] usize,
10439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32) -> ::windows::runtime::HRESULT,
10440     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fileoffset: u64, fragmentsize: u64) -> ::windows::runtime::HRESULT,
10441 );
10442 #[repr(transparent)]
10443 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10444 pub struct IDWriteFontFaceReference1(::windows::runtime::IUnknown);
10445 impl IDWriteFontFaceReference1 {
CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace3>10446     pub unsafe fn CreateFontFace(&self) -> ::windows::runtime::Result<IDWriteFontFace3> {
10447         let mut result__: <IDWriteFontFace3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10448         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace3>(result__)
10449     }
CreateFontFaceWithSimulations(&self, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace3>10450     pub unsafe fn CreateFontFaceWithSimulations(&self, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::runtime::Result<IDWriteFontFace3> {
10451         let mut result__: <IDWriteFontFace3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10452         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfacesimulationflags), &mut result__).from_abi::<IDWriteFontFace3>(result__)
10453     }
10454     #[cfg(feature = "Win32_Foundation")]
Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> super::super::Foundation::BOOL10455     pub unsafe fn Equals<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> super::super::Foundation::BOOL {
10456         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi()))
10457     }
GetFontFaceIndex(&self) -> u3210458     pub unsafe fn GetFontFaceIndex(&self) -> u32 {
10459         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
10460     }
GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS10461     pub unsafe fn GetSimulations(&self) -> DWRITE_FONT_SIMULATIONS {
10462         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
10463     }
GetFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile>10464     pub unsafe fn GetFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile> {
10465         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10466         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFile>(result__)
10467     }
GetLocalFileSize(&self) -> u6410468     pub unsafe fn GetLocalFileSize(&self) -> u64 {
10469         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
10470     }
GetFileSize(&self) -> u6410471     pub unsafe fn GetFileSize(&self) -> u64 {
10472         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
10473     }
10474     #[cfg(feature = "Win32_Foundation")]
GetFileTime(&self) -> ::windows::runtime::Result<super::super::Foundation::FILETIME>10475     pub unsafe fn GetFileTime(&self) -> ::windows::runtime::Result<super::super::Foundation::FILETIME> {
10476         let mut result__: <super::super::Foundation::FILETIME as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10477         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::FILETIME>(result__)
10478     }
GetLocality(&self) -> DWRITE_LOCALITY10479     pub unsafe fn GetLocality(&self) -> DWRITE_LOCALITY {
10480         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
10481     }
EnqueueFontDownloadRequest(&self) -> ::windows::runtime::Result<()>10482     pub unsafe fn EnqueueFontDownloadRequest(&self) -> ::windows::runtime::Result<()> {
10483         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)).ok()
10484     }
10485     #[cfg(feature = "Win32_Foundation")]
EnqueueCharacterDownloadRequest<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, characters: Param0, charactercount: u32) -> ::windows::runtime::Result<()>10486     pub unsafe fn EnqueueCharacterDownloadRequest<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, characters: Param0, charactercount: u32) -> ::windows::runtime::Result<()> {
10487         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), characters.into_param().abi(), ::std::mem::transmute(charactercount)).ok()
10488     }
EnqueueGlyphDownloadRequest(&self, glyphindices: *const u16, glyphcount: u32) -> ::windows::runtime::Result<()>10489     pub unsafe fn EnqueueGlyphDownloadRequest(&self, glyphindices: *const u16, glyphcount: u32) -> ::windows::runtime::Result<()> {
10490         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphindices), ::std::mem::transmute(glyphcount)).ok()
10491     }
EnqueueFileFragmentDownloadRequest(&self, fileoffset: u64, fragmentsize: u64) -> ::windows::runtime::Result<()>10492     pub unsafe fn EnqueueFileFragmentDownloadRequest(&self, fileoffset: u64, fragmentsize: u64) -> ::windows::runtime::Result<()> {
10493         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(fileoffset), ::std::mem::transmute(fragmentsize)).ok()
10494     }
CreateFontFace2(&self) -> ::windows::runtime::Result<IDWriteFontFace5>10495     pub unsafe fn CreateFontFace2(&self) -> ::windows::runtime::Result<IDWriteFontFace5> {
10496         let mut result__: <IDWriteFontFace5 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10497         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFace5>(result__)
10498     }
GetFontAxisValueCount(&self) -> u3210499     pub unsafe fn GetFontAxisValueCount(&self) -> u32 {
10500         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self)))
10501     }
GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()>10502     pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()> {
10503         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount)).ok()
10504     }
10505 }
10506 unsafe impl ::windows::runtime::Interface for IDWriteFontFaceReference1 {
10507     type Vtable = IDWriteFontFaceReference1_abi;
10508     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3229744759, 12241, 16812, [165, 163, 52, 152, 60, 75, 166, 26]);
10509 }
10510 impl ::std::convert::From<IDWriteFontFaceReference1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFaceReference1) -> Self10511     fn from(value: IDWriteFontFaceReference1) -> Self {
10512         unsafe { ::std::mem::transmute(value) }
10513     }
10514 }
10515 impl ::std::convert::From<&IDWriteFontFaceReference1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFaceReference1) -> Self10516     fn from(value: &IDWriteFontFaceReference1) -> Self {
10517         ::std::convert::From::from(::std::clone::Clone::clone(value))
10518     }
10519 }
10520 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFaceReference1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10521     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10522         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10523     }
10524 }
10525 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFaceReference1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10526     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10527         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10528     }
10529 }
10530 impl ::std::convert::From<IDWriteFontFaceReference1> for IDWriteFontFaceReference {
from(value: IDWriteFontFaceReference1) -> Self10531     fn from(value: IDWriteFontFaceReference1) -> Self {
10532         unsafe { ::std::mem::transmute(value) }
10533     }
10534 }
10535 impl ::std::convert::From<&IDWriteFontFaceReference1> for IDWriteFontFaceReference {
from(value: &IDWriteFontFaceReference1) -> Self10536     fn from(value: &IDWriteFontFaceReference1) -> Self {
10537         ::std::convert::From::from(::std::clone::Clone::clone(value))
10538     }
10539 }
10540 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference> for IDWriteFontFaceReference1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFaceReference>10541     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFaceReference> {
10542         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFaceReference>::into(self))
10543     }
10544 }
10545 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference> for &IDWriteFontFaceReference1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFaceReference>10546     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFaceReference> {
10547         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFaceReference>::into(::std::clone::Clone::clone(self)))
10548     }
10549 }
10550 #[repr(C)]
10551 #[doc(hidden)]
10552 pub struct IDWriteFontFaceReference1_abi(
10553     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10554     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10557     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10558     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
10559     #[cfg(not(feature = "Win32_Foundation"))] usize,
10560     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10561     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_SIMULATIONS,
10562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u64,
10564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u64,
10565     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lastwritetime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
10566     #[cfg(not(feature = "Win32_Foundation"))] usize,
10567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_LOCALITY,
10568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10569     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, characters: super::super::Foundation::PWSTR, charactercount: u32) -> ::windows::runtime::HRESULT,
10570     #[cfg(not(feature = "Win32_Foundation"))] usize,
10571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphindices: *const u16, glyphcount: u32) -> ::windows::runtime::HRESULT,
10572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fileoffset: u64, fragmentsize: u64) -> ::windows::runtime::HRESULT,
10573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10575     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::HRESULT,
10576 );
10577 #[repr(transparent)]
10578 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10579 pub struct IDWriteFontFallback(::windows::runtime::IUnknown);
10580 impl IDWriteFontFallback {
10581     #[cfg(feature = "Win32_Foundation")]
MapCharacters<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, analysissource: Param0, textposition: u32, textlength: u32, basefontcollection: Param3, basefamilyname: Param4, baseweight: DWRITE_FONT_WEIGHT, basestyle: DWRITE_FONT_STYLE, basestretch: DWRITE_FONT_STRETCH, mappedlength: *mut u32, mappedfont: *mut ::std::option::Option<IDWriteFont>, scale: *mut f32, ) -> ::windows::runtime::Result<()>10582     pub unsafe fn MapCharacters<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
10583         &self,
10584         analysissource: Param0,
10585         textposition: u32,
10586         textlength: u32,
10587         basefontcollection: Param3,
10588         basefamilyname: Param4,
10589         baseweight: DWRITE_FONT_WEIGHT,
10590         basestyle: DWRITE_FONT_STYLE,
10591         basestretch: DWRITE_FONT_STRETCH,
10592         mappedlength: *mut u32,
10593         mappedfont: *mut ::std::option::Option<IDWriteFont>,
10594         scale: *mut f32,
10595     ) -> ::windows::runtime::Result<()> {
10596         (::windows::runtime::Interface::vtable(self).3)(
10597             ::std::mem::transmute_copy(self),
10598             analysissource.into_param().abi(),
10599             ::std::mem::transmute(textposition),
10600             ::std::mem::transmute(textlength),
10601             basefontcollection.into_param().abi(),
10602             basefamilyname.into_param().abi(),
10603             ::std::mem::transmute(baseweight),
10604             ::std::mem::transmute(basestyle),
10605             ::std::mem::transmute(basestretch),
10606             ::std::mem::transmute(mappedlength),
10607             ::std::mem::transmute(mappedfont),
10608             ::std::mem::transmute(scale),
10609         )
10610         .ok()
10611     }
10612 }
10613 unsafe impl ::windows::runtime::Interface for IDWriteFontFallback {
10614     type Vtable = IDWriteFontFallback_abi;
10615     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4020242681, 63393, 18623, [176, 92, 242, 36, 113, 60, 192, 255]);
10616 }
10617 impl ::std::convert::From<IDWriteFontFallback> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFallback) -> Self10618     fn from(value: IDWriteFontFallback) -> Self {
10619         unsafe { ::std::mem::transmute(value) }
10620     }
10621 }
10622 impl ::std::convert::From<&IDWriteFontFallback> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFallback) -> Self10623     fn from(value: &IDWriteFontFallback) -> Self {
10624         ::std::convert::From::from(::std::clone::Clone::clone(value))
10625     }
10626 }
10627 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFallback {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10628     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10629         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10630     }
10631 }
10632 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFallback {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10633     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10634         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10635     }
10636 }
10637 #[repr(C)]
10638 #[doc(hidden)]
10639 pub struct IDWriteFontFallback_abi(
10640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10643     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, basefontcollection: ::windows::runtime::RawPtr, basefamilyname: super::super::Foundation::PWSTR, baseweight: DWRITE_FONT_WEIGHT, basestyle: DWRITE_FONT_STYLE, basestretch: DWRITE_FONT_STRETCH, mappedlength: *mut u32, mappedfont: *mut ::windows::runtime::RawPtr, scale: *mut f32) -> ::windows::runtime::HRESULT,
10644     #[cfg(not(feature = "Win32_Foundation"))] usize,
10645 );
10646 #[repr(transparent)]
10647 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10648 pub struct IDWriteFontFallback1(::windows::runtime::IUnknown);
10649 impl IDWriteFontFallback1 {
10650     #[cfg(feature = "Win32_Foundation")]
MapCharacters<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, analysissource: Param0, textposition: u32, textlength: u32, basefontcollection: Param3, basefamilyname: Param4, baseweight: DWRITE_FONT_WEIGHT, basestyle: DWRITE_FONT_STYLE, basestretch: DWRITE_FONT_STRETCH, mappedlength: *mut u32, mappedfont: *mut ::std::option::Option<IDWriteFont>, scale: *mut f32, ) -> ::windows::runtime::Result<()>10651     pub unsafe fn MapCharacters<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
10652         &self,
10653         analysissource: Param0,
10654         textposition: u32,
10655         textlength: u32,
10656         basefontcollection: Param3,
10657         basefamilyname: Param4,
10658         baseweight: DWRITE_FONT_WEIGHT,
10659         basestyle: DWRITE_FONT_STYLE,
10660         basestretch: DWRITE_FONT_STRETCH,
10661         mappedlength: *mut u32,
10662         mappedfont: *mut ::std::option::Option<IDWriteFont>,
10663         scale: *mut f32,
10664     ) -> ::windows::runtime::Result<()> {
10665         (::windows::runtime::Interface::vtable(self).3)(
10666             ::std::mem::transmute_copy(self),
10667             analysissource.into_param().abi(),
10668             ::std::mem::transmute(textposition),
10669             ::std::mem::transmute(textlength),
10670             basefontcollection.into_param().abi(),
10671             basefamilyname.into_param().abi(),
10672             ::std::mem::transmute(baseweight),
10673             ::std::mem::transmute(basestyle),
10674             ::std::mem::transmute(basestretch),
10675             ::std::mem::transmute(mappedlength),
10676             ::std::mem::transmute(mappedfont),
10677             ::std::mem::transmute(scale),
10678         )
10679         .ok()
10680     }
10681     #[cfg(feature = "Win32_Foundation")]
MapCharacters2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, analysissource: Param0, textposition: u32, textlength: u32, basefontcollection: Param3, basefamilyname: Param4, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, mappedlength: *mut u32, scale: *mut f32, mappedfontface: *mut ::std::option::Option<IDWriteFontFace5>, ) -> ::windows::runtime::Result<()>10682     pub unsafe fn MapCharacters2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
10683         &self,
10684         analysissource: Param0,
10685         textposition: u32,
10686         textlength: u32,
10687         basefontcollection: Param3,
10688         basefamilyname: Param4,
10689         fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE,
10690         fontaxisvaluecount: u32,
10691         mappedlength: *mut u32,
10692         scale: *mut f32,
10693         mappedfontface: *mut ::std::option::Option<IDWriteFontFace5>,
10694     ) -> ::windows::runtime::Result<()> {
10695         (::windows::runtime::Interface::vtable(self).4)(
10696             ::std::mem::transmute_copy(self),
10697             analysissource.into_param().abi(),
10698             ::std::mem::transmute(textposition),
10699             ::std::mem::transmute(textlength),
10700             basefontcollection.into_param().abi(),
10701             basefamilyname.into_param().abi(),
10702             ::std::mem::transmute(fontaxisvalues),
10703             ::std::mem::transmute(fontaxisvaluecount),
10704             ::std::mem::transmute(mappedlength),
10705             ::std::mem::transmute(scale),
10706             ::std::mem::transmute(mappedfontface),
10707         )
10708         .ok()
10709     }
10710 }
10711 unsafe impl ::windows::runtime::Interface for IDWriteFontFallback1 {
10712     type Vtable = IDWriteFontFallback1_abi;
10713     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(597121437, 56589, 18049, [189, 106, 244, 243, 30, 170, 222, 119]);
10714 }
10715 impl ::std::convert::From<IDWriteFontFallback1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFallback1) -> Self10716     fn from(value: IDWriteFontFallback1) -> Self {
10717         unsafe { ::std::mem::transmute(value) }
10718     }
10719 }
10720 impl ::std::convert::From<&IDWriteFontFallback1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFallback1) -> Self10721     fn from(value: &IDWriteFontFallback1) -> Self {
10722         ::std::convert::From::from(::std::clone::Clone::clone(value))
10723     }
10724 }
10725 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFallback1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10726     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10727         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10728     }
10729 }
10730 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFallback1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10731     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10732         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10733     }
10734 }
10735 impl ::std::convert::From<IDWriteFontFallback1> for IDWriteFontFallback {
from(value: IDWriteFontFallback1) -> Self10736     fn from(value: IDWriteFontFallback1) -> Self {
10737         unsafe { ::std::mem::transmute(value) }
10738     }
10739 }
10740 impl ::std::convert::From<&IDWriteFontFallback1> for IDWriteFontFallback {
from(value: &IDWriteFontFallback1) -> Self10741     fn from(value: &IDWriteFontFallback1) -> Self {
10742         ::std::convert::From::from(::std::clone::Clone::clone(value))
10743     }
10744 }
10745 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFallback> for IDWriteFontFallback1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFallback>10746     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFallback> {
10747         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFallback>::into(self))
10748     }
10749 }
10750 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFallback> for &IDWriteFontFallback1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFallback>10751     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFallback> {
10752         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFallback>::into(::std::clone::Clone::clone(self)))
10753     }
10754 }
10755 #[repr(C)]
10756 #[doc(hidden)]
10757 pub struct IDWriteFontFallback1_abi(
10758     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10759     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10760     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10761     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, basefontcollection: ::windows::runtime::RawPtr, basefamilyname: super::super::Foundation::PWSTR, baseweight: DWRITE_FONT_WEIGHT, basestyle: DWRITE_FONT_STYLE, basestretch: DWRITE_FONT_STRETCH, mappedlength: *mut u32, mappedfont: *mut ::windows::runtime::RawPtr, scale: *mut f32) -> ::windows::runtime::HRESULT,
10762     #[cfg(not(feature = "Win32_Foundation"))] usize,
10763     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, basefontcollection: ::windows::runtime::RawPtr, basefamilyname: super::super::Foundation::PWSTR, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, mappedlength: *mut u32, scale: *mut f32, mappedfontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10764     #[cfg(not(feature = "Win32_Foundation"))] usize,
10765 );
10766 #[repr(transparent)]
10767 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10768 pub struct IDWriteFontFallbackBuilder(::windows::runtime::IUnknown);
10769 impl IDWriteFontFallbackBuilder {
10770     #[cfg(feature = "Win32_Foundation")]
AddMapping<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, ranges: *const DWRITE_UNICODE_RANGE, rangescount: u32, targetfamilynames: *const *const u16, targetfamilynamescount: u32, fontcollection: Param4, localename: Param5, basefamilyname: Param6, scale: f32) -> ::windows::runtime::Result<()>10771     pub unsafe fn AddMapping<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, ranges: *const DWRITE_UNICODE_RANGE, rangescount: u32, targetfamilynames: *const *const u16, targetfamilynamescount: u32, fontcollection: Param4, localename: Param5, basefamilyname: Param6, scale: f32) -> ::windows::runtime::Result<()> {
10772         (::windows::runtime::Interface::vtable(self).3)(
10773             ::std::mem::transmute_copy(self),
10774             ::std::mem::transmute(ranges),
10775             ::std::mem::transmute(rangescount),
10776             ::std::mem::transmute(targetfamilynames),
10777             ::std::mem::transmute(targetfamilynamescount),
10778             fontcollection.into_param().abi(),
10779             localename.into_param().abi(),
10780             basefamilyname.into_param().abi(),
10781             ::std::mem::transmute(scale),
10782         )
10783         .ok()
10784     }
AddMappings<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>10785     pub unsafe fn AddMappings<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
10786         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
10787     }
CreateFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>10788     pub unsafe fn CreateFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
10789         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10790         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
10791     }
10792 }
10793 unsafe impl ::windows::runtime::Interface for IDWriteFontFallbackBuilder {
10794     type Vtable = IDWriteFontFallbackBuilder_abi;
10795     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4253560070, 35514, 20408, [184, 73, 139, 232, 183, 62, 20, 222]);
10796 }
10797 impl ::std::convert::From<IDWriteFontFallbackBuilder> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFallbackBuilder) -> Self10798     fn from(value: IDWriteFontFallbackBuilder) -> Self {
10799         unsafe { ::std::mem::transmute(value) }
10800     }
10801 }
10802 impl ::std::convert::From<&IDWriteFontFallbackBuilder> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFallbackBuilder) -> Self10803     fn from(value: &IDWriteFontFallbackBuilder) -> Self {
10804         ::std::convert::From::from(::std::clone::Clone::clone(value))
10805     }
10806 }
10807 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFallbackBuilder {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10808     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10809         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10810     }
10811 }
10812 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFallbackBuilder {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10813     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10814         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10815     }
10816 }
10817 #[repr(C)]
10818 #[doc(hidden)]
10819 pub struct IDWriteFontFallbackBuilder_abi(
10820     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10821     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10823     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ranges: *const DWRITE_UNICODE_RANGE, rangescount: u32, targetfamilynames: *const *const u16, targetfamilynamescount: u32, fontcollection: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, basefamilyname: super::super::Foundation::PWSTR, scale: f32) -> ::windows::runtime::HRESULT,
10824     #[cfg(not(feature = "Win32_Foundation"))] usize,
10825     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10826     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10827 );
10828 #[repr(transparent)]
10829 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10830 pub struct IDWriteFontFamily(::windows::runtime::IUnknown);
10831 impl IDWriteFontFamily {
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>10832     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
10833         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10834         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
10835     }
GetFontCount(&self) -> u3210836     pub unsafe fn GetFontCount(&self) -> u32 {
10837         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
10838     }
GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont>10839     pub unsafe fn GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont> {
10840         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10841         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFont>(result__)
10842     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>10843     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
10844         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10845         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
10846     }
GetFirstMatchingFont(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFont>10847     pub unsafe fn GetFirstMatchingFont(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFont> {
10848         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10849         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(weight), ::std::mem::transmute(stretch), ::std::mem::transmute(style), &mut result__).from_abi::<IDWriteFont>(result__)
10850     }
GetMatchingFonts(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontList>10851     pub unsafe fn GetMatchingFonts(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontList> {
10852         let mut result__: <IDWriteFontList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10853         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(weight), ::std::mem::transmute(stretch), ::std::mem::transmute(style), &mut result__).from_abi::<IDWriteFontList>(result__)
10854     }
10855 }
10856 unsafe impl ::windows::runtime::Interface for IDWriteFontFamily {
10857     type Vtable = IDWriteFontFamily_abi;
10858     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3659585775, 33066, 19523, [152, 2, 98, 236, 74, 189, 122, 221]);
10859 }
10860 impl ::std::convert::From<IDWriteFontFamily> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFamily) -> Self10861     fn from(value: IDWriteFontFamily) -> Self {
10862         unsafe { ::std::mem::transmute(value) }
10863     }
10864 }
10865 impl ::std::convert::From<&IDWriteFontFamily> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFamily) -> Self10866     fn from(value: &IDWriteFontFamily) -> Self {
10867         ::std::convert::From::from(::std::clone::Clone::clone(value))
10868     }
10869 }
10870 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFamily {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10871     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10872         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10873     }
10874 }
10875 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFamily {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10876     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10877         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10878     }
10879 }
10880 impl ::std::convert::From<IDWriteFontFamily> for IDWriteFontList {
from(value: IDWriteFontFamily) -> Self10881     fn from(value: IDWriteFontFamily) -> Self {
10882         unsafe { ::std::mem::transmute(value) }
10883     }
10884 }
10885 impl ::std::convert::From<&IDWriteFontFamily> for IDWriteFontList {
from(value: &IDWriteFontFamily) -> Self10886     fn from(value: &IDWriteFontFamily) -> Self {
10887         ::std::convert::From::from(::std::clone::Clone::clone(value))
10888     }
10889 }
10890 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for IDWriteFontFamily {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>10891     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
10892         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(self))
10893     }
10894 }
10895 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for &IDWriteFontFamily {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>10896     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
10897         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(::std::clone::Clone::clone(self)))
10898     }
10899 }
10900 #[repr(C)]
10901 #[doc(hidden)]
10902 pub struct IDWriteFontFamily_abi(
10903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10907     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
10908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingfont: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
10912 );
10913 #[repr(transparent)]
10914 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
10915 pub struct IDWriteFontFamily1(::windows::runtime::IUnknown);
10916 impl IDWriteFontFamily1 {
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>10917     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
10918         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10919         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
10920     }
GetFontCount(&self) -> u3210921     pub unsafe fn GetFontCount(&self) -> u32 {
10922         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
10923     }
GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont>10924     pub unsafe fn GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont> {
10925         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10926         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFont>(result__)
10927     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>10928     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
10929         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10930         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
10931     }
GetFirstMatchingFont(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFont>10932     pub unsafe fn GetFirstMatchingFont(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFont> {
10933         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10934         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(weight), ::std::mem::transmute(stretch), ::std::mem::transmute(style), &mut result__).from_abi::<IDWriteFont>(result__)
10935     }
GetMatchingFonts(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontList>10936     pub unsafe fn GetMatchingFonts(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontList> {
10937         let mut result__: <IDWriteFontList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10938         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(weight), ::std::mem::transmute(stretch), ::std::mem::transmute(style), &mut result__).from_abi::<IDWriteFontList>(result__)
10939     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY10940     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
10941         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
10942     }
GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3>10943     pub unsafe fn GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3> {
10944         let mut result__: <IDWriteFont3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10945         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFont3>(result__)
10946     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>10947     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
10948         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
10949         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
10950     }
10951 }
10952 unsafe impl ::windows::runtime::Interface for IDWriteFontFamily1 {
10953     type Vtable = IDWriteFontFamily1_abi;
10954     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3659585775, 33066, 19523, [152, 2, 98, 236, 74, 189, 122, 223]);
10955 }
10956 impl ::std::convert::From<IDWriteFontFamily1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFamily1) -> Self10957     fn from(value: IDWriteFontFamily1) -> Self {
10958         unsafe { ::std::mem::transmute(value) }
10959     }
10960 }
10961 impl ::std::convert::From<&IDWriteFontFamily1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFamily1) -> Self10962     fn from(value: &IDWriteFontFamily1) -> Self {
10963         ::std::convert::From::from(::std::clone::Clone::clone(value))
10964     }
10965 }
10966 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFamily1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10967     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10968         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
10969     }
10970 }
10971 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFamily1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>10972     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
10973         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
10974     }
10975 }
10976 impl ::std::convert::From<IDWriteFontFamily1> for IDWriteFontFamily {
from(value: IDWriteFontFamily1) -> Self10977     fn from(value: IDWriteFontFamily1) -> Self {
10978         unsafe { ::std::mem::transmute(value) }
10979     }
10980 }
10981 impl ::std::convert::From<&IDWriteFontFamily1> for IDWriteFontFamily {
from(value: &IDWriteFontFamily1) -> Self10982     fn from(value: &IDWriteFontFamily1) -> Self {
10983         ::std::convert::From::from(::std::clone::Clone::clone(value))
10984     }
10985 }
10986 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFamily> for IDWriteFontFamily1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily>10987     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily> {
10988         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFamily>::into(self))
10989     }
10990 }
10991 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFamily> for &IDWriteFontFamily1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily>10992     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily> {
10993         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFamily>::into(::std::clone::Clone::clone(self)))
10994     }
10995 }
10996 impl ::std::convert::From<IDWriteFontFamily1> for IDWriteFontList {
from(value: IDWriteFontFamily1) -> Self10997     fn from(value: IDWriteFontFamily1) -> Self {
10998         unsafe { ::std::mem::transmute(value) }
10999     }
11000 }
11001 impl ::std::convert::From<&IDWriteFontFamily1> for IDWriteFontList {
from(value: &IDWriteFontFamily1) -> Self11002     fn from(value: &IDWriteFontFamily1) -> Self {
11003         ::std::convert::From::from(::std::clone::Clone::clone(value))
11004     }
11005 }
11006 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for IDWriteFontFamily1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11007     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11008         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(self))
11009     }
11010 }
11011 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for &IDWriteFontFamily1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11012     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11013         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(::std::clone::Clone::clone(self)))
11014     }
11015 }
11016 #[repr(C)]
11017 #[doc(hidden)]
11018 pub struct IDWriteFontFamily1_abi(
11019     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11020     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11021     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11022     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11023     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11024     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11025     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11026     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingfont: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11027     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11028     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
11029     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11030     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11031 );
11032 #[repr(transparent)]
11033 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11034 pub struct IDWriteFontFamily2(::windows::runtime::IUnknown);
11035 impl IDWriteFontFamily2 {
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>11036     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
11037         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11038         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
11039     }
GetFontCount(&self) -> u3211040     pub unsafe fn GetFontCount(&self) -> u32 {
11041         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
11042     }
GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont>11043     pub unsafe fn GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont> {
11044         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11045         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFont>(result__)
11046     }
GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings>11047     pub unsafe fn GetFamilyNames(&self) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
11048         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11049         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
11050     }
GetFirstMatchingFont(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFont>11051     pub unsafe fn GetFirstMatchingFont(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFont> {
11052         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11053         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(weight), ::std::mem::transmute(stretch), ::std::mem::transmute(style), &mut result__).from_abi::<IDWriteFont>(result__)
11054     }
GetMatchingFonts(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontList>11055     pub unsafe fn GetMatchingFonts(&self, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontList> {
11056         let mut result__: <IDWriteFontList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11057         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(weight), ::std::mem::transmute(stretch), ::std::mem::transmute(style), &mut result__).from_abi::<IDWriteFontList>(result__)
11058     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY11059     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
11060         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
11061     }
GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3>11062     pub unsafe fn GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3> {
11063         let mut result__: <IDWriteFont3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11064         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFont3>(result__)
11065     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>11066     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
11067         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11068         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
11069     }
GetMatchingFonts2(&self, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontList2>11070     pub unsafe fn GetMatchingFonts2(&self, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontList2> {
11071         let mut result__: <IDWriteFontList2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11072         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontList2>(result__)
11073     }
GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet1>11074     pub unsafe fn GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
11075         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11076         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11077     }
11078 }
11079 unsafe impl ::windows::runtime::Interface for IDWriteFontFamily2 {
11080     type Vtable = IDWriteFontFamily2_abi;
11081     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1054121591, 41880, 16993, [185, 207, 193, 38, 194, 19, 30, 243]);
11082 }
11083 impl ::std::convert::From<IDWriteFontFamily2> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFamily2) -> Self11084     fn from(value: IDWriteFontFamily2) -> Self {
11085         unsafe { ::std::mem::transmute(value) }
11086     }
11087 }
11088 impl ::std::convert::From<&IDWriteFontFamily2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFamily2) -> Self11089     fn from(value: &IDWriteFontFamily2) -> Self {
11090         ::std::convert::From::from(::std::clone::Clone::clone(value))
11091     }
11092 }
11093 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11094     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11095         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11096     }
11097 }
11098 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11099     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11100         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11101     }
11102 }
11103 impl ::std::convert::From<IDWriteFontFamily2> for IDWriteFontFamily1 {
from(value: IDWriteFontFamily2) -> Self11104     fn from(value: IDWriteFontFamily2) -> Self {
11105         unsafe { ::std::mem::transmute(value) }
11106     }
11107 }
11108 impl ::std::convert::From<&IDWriteFontFamily2> for IDWriteFontFamily1 {
from(value: &IDWriteFontFamily2) -> Self11109     fn from(value: &IDWriteFontFamily2) -> Self {
11110         ::std::convert::From::from(::std::clone::Clone::clone(value))
11111     }
11112 }
11113 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFamily1> for IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily1>11114     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily1> {
11115         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFamily1>::into(self))
11116     }
11117 }
11118 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFamily1> for &IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily1>11119     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily1> {
11120         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFamily1>::into(::std::clone::Clone::clone(self)))
11121     }
11122 }
11123 impl ::std::convert::From<IDWriteFontFamily2> for IDWriteFontFamily {
from(value: IDWriteFontFamily2) -> Self11124     fn from(value: IDWriteFontFamily2) -> Self {
11125         unsafe { ::std::mem::transmute(value) }
11126     }
11127 }
11128 impl ::std::convert::From<&IDWriteFontFamily2> for IDWriteFontFamily {
from(value: &IDWriteFontFamily2) -> Self11129     fn from(value: &IDWriteFontFamily2) -> Self {
11130         ::std::convert::From::from(::std::clone::Clone::clone(value))
11131     }
11132 }
11133 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFamily> for IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily>11134     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily> {
11135         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFamily>::into(self))
11136     }
11137 }
11138 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFamily> for &IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily>11139     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFamily> {
11140         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFamily>::into(::std::clone::Clone::clone(self)))
11141     }
11142 }
11143 impl ::std::convert::From<IDWriteFontFamily2> for IDWriteFontList {
from(value: IDWriteFontFamily2) -> Self11144     fn from(value: IDWriteFontFamily2) -> Self {
11145         unsafe { ::std::mem::transmute(value) }
11146     }
11147 }
11148 impl ::std::convert::From<&IDWriteFontFamily2> for IDWriteFontList {
from(value: &IDWriteFontFamily2) -> Self11149     fn from(value: &IDWriteFontFamily2) -> Self {
11150         ::std::convert::From::from(::std::clone::Clone::clone(value))
11151     }
11152 }
11153 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11154     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11155         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(self))
11156     }
11157 }
11158 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for &IDWriteFontFamily2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11159     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11160         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(::std::clone::Clone::clone(self)))
11161     }
11162 }
11163 #[repr(C)]
11164 #[doc(hidden)]
11165 pub struct IDWriteFontFamily2_abi(
11166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11169     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11171     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11173     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingfont: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11174     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
11176     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11177     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11178     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11179     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11180 );
11181 #[repr(transparent)]
11182 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11183 pub struct IDWriteFontFile(::windows::runtime::IUnknown);
11184 impl IDWriteFontFile {
GetReferenceKey(&self, fontfilereferencekey: *mut *mut ::std::ffi::c_void, fontfilereferencekeysize: *mut u32) -> ::windows::runtime::Result<()>11185     pub unsafe fn GetReferenceKey(&self, fontfilereferencekey: *mut *mut ::std::ffi::c_void, fontfilereferencekeysize: *mut u32) -> ::windows::runtime::Result<()> {
11186         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize)).ok()
11187     }
GetLoader(&self) -> ::windows::runtime::Result<IDWriteFontFileLoader>11188     pub unsafe fn GetLoader(&self) -> ::windows::runtime::Result<IDWriteFontFileLoader> {
11189         let mut result__: <IDWriteFontFileLoader as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11190         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFileLoader>(result__)
11191     }
11192     #[cfg(feature = "Win32_Foundation")]
Analyze(&self, issupportedfonttype: *mut super::super::Foundation::BOOL, fontfiletype: *mut DWRITE_FONT_FILE_TYPE, fontfacetype: *mut DWRITE_FONT_FACE_TYPE, numberoffaces: *mut u32) -> ::windows::runtime::Result<()>11193     pub unsafe fn Analyze(&self, issupportedfonttype: *mut super::super::Foundation::BOOL, fontfiletype: *mut DWRITE_FONT_FILE_TYPE, fontfacetype: *mut DWRITE_FONT_FACE_TYPE, numberoffaces: *mut u32) -> ::windows::runtime::Result<()> {
11194         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(issupportedfonttype), ::std::mem::transmute(fontfiletype), ::std::mem::transmute(fontfacetype), ::std::mem::transmute(numberoffaces)).ok()
11195     }
11196 }
11197 unsafe impl ::windows::runtime::Interface for IDWriteFontFile {
11198     type Vtable = IDWriteFontFile_abi;
11199     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1939703914, 52981, 18396, [135, 105, 26, 139, 65, 190, 187, 176]);
11200 }
11201 impl ::std::convert::From<IDWriteFontFile> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFile) -> Self11202     fn from(value: IDWriteFontFile) -> Self {
11203         unsafe { ::std::mem::transmute(value) }
11204     }
11205 }
11206 impl ::std::convert::From<&IDWriteFontFile> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFile) -> Self11207     fn from(value: &IDWriteFontFile) -> Self {
11208         ::std::convert::From::from(::std::clone::Clone::clone(value))
11209     }
11210 }
11211 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFile {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11212     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11213         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11214     }
11215 }
11216 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFile {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11217     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11218         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11219     }
11220 }
11221 #[repr(C)]
11222 #[doc(hidden)]
11223 pub struct IDWriteFontFile_abi(
11224     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11225     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11226     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11227     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *mut *mut ::std::ffi::c_void, fontfilereferencekeysize: *mut u32) -> ::windows::runtime::HRESULT,
11228     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfileloader: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11229     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, issupportedfonttype: *mut super::super::Foundation::BOOL, fontfiletype: *mut DWRITE_FONT_FILE_TYPE, fontfacetype: *mut DWRITE_FONT_FACE_TYPE, numberoffaces: *mut u32) -> ::windows::runtime::HRESULT,
11230     #[cfg(not(feature = "Win32_Foundation"))] usize,
11231 );
11232 #[repr(transparent)]
11233 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11234 pub struct IDWriteFontFileEnumerator(::windows::runtime::IUnknown);
11235 impl IDWriteFontFileEnumerator {
11236     #[cfg(feature = "Win32_Foundation")]
MoveNext(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL>11237     pub unsafe fn MoveNext(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
11238         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11239         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
11240     }
GetCurrentFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile>11241     pub unsafe fn GetCurrentFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile> {
11242         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11243         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFile>(result__)
11244     }
11245 }
11246 unsafe impl ::windows::runtime::Interface for IDWriteFontFileEnumerator {
11247     type Vtable = IDWriteFontFileEnumerator_abi;
11248     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1920290889, 24567, 17245, [131, 72, 75, 233, 124, 250, 108, 124]);
11249 }
11250 impl ::std::convert::From<IDWriteFontFileEnumerator> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFileEnumerator) -> Self11251     fn from(value: IDWriteFontFileEnumerator) -> Self {
11252         unsafe { ::std::mem::transmute(value) }
11253     }
11254 }
11255 impl ::std::convert::From<&IDWriteFontFileEnumerator> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFileEnumerator) -> Self11256     fn from(value: &IDWriteFontFileEnumerator) -> Self {
11257         ::std::convert::From::from(::std::clone::Clone::clone(value))
11258     }
11259 }
11260 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFileEnumerator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11261     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11262         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11263     }
11264 }
11265 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFileEnumerator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11266     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11267         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11268     }
11269 }
11270 #[repr(C)]
11271 #[doc(hidden)]
11272 pub struct IDWriteFontFileEnumerator_abi(
11273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11276     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hascurrentfile: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
11277     #[cfg(not(feature = "Win32_Foundation"))] usize,
11278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11279 );
11280 #[repr(transparent)]
11281 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11282 pub struct IDWriteFontFileLoader(::windows::runtime::IUnknown);
11283 impl IDWriteFontFileLoader {
CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>11284     pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
11285         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11286         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
11287     }
11288 }
11289 unsafe impl ::windows::runtime::Interface for IDWriteFontFileLoader {
11290     type Vtable = IDWriteFontFileLoader_abi;
11291     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1920773454, 54959, 19614, [138, 8, 214, 149, 177, 28, 170, 73]);
11292 }
11293 impl ::std::convert::From<IDWriteFontFileLoader> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFileLoader) -> Self11294     fn from(value: IDWriteFontFileLoader) -> Self {
11295         unsafe { ::std::mem::transmute(value) }
11296     }
11297 }
11298 impl ::std::convert::From<&IDWriteFontFileLoader> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFileLoader) -> Self11299     fn from(value: &IDWriteFontFileLoader) -> Self {
11300         ::std::convert::From::from(::std::clone::Clone::clone(value))
11301     }
11302 }
11303 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11304     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11305         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11306     }
11307 }
11308 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11309     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11310         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11311     }
11312 }
11313 #[repr(C)]
11314 #[doc(hidden)]
11315 pub struct IDWriteFontFileLoader_abi(
11316     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11317     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11318     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11319     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfilestream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11320 );
11321 #[repr(transparent)]
11322 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11323 pub struct IDWriteFontFileStream(::windows::runtime::IUnknown);
11324 impl IDWriteFontFileStream {
ReadFileFragment(&self, fragmentstart: *mut *mut ::std::ffi::c_void, fileoffset: u64, fragmentsize: u64, fragmentcontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>11325     pub unsafe fn ReadFileFragment(&self, fragmentstart: *mut *mut ::std::ffi::c_void, fileoffset: u64, fragmentsize: u64, fragmentcontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
11326         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fragmentstart), ::std::mem::transmute(fileoffset), ::std::mem::transmute(fragmentsize), ::std::mem::transmute(fragmentcontext)).ok()
11327     }
ReleaseFileFragment(&self, fragmentcontext: *mut ::std::ffi::c_void)11328     pub unsafe fn ReleaseFileFragment(&self, fragmentcontext: *mut ::std::ffi::c_void) {
11329         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fragmentcontext)))
11330     }
GetFileSize(&self) -> ::windows::runtime::Result<u64>11331     pub unsafe fn GetFileSize(&self) -> ::windows::runtime::Result<u64> {
11332         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11333         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u64>(result__)
11334     }
GetLastWriteTime(&self) -> ::windows::runtime::Result<u64>11335     pub unsafe fn GetLastWriteTime(&self) -> ::windows::runtime::Result<u64> {
11336         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11337         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u64>(result__)
11338     }
11339 }
11340 unsafe impl ::windows::runtime::Interface for IDWriteFontFileStream {
11341     type Vtable = IDWriteFontFileStream_abi;
11342     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1833461246, 2744, 19857, [143, 98, 93, 214, 190, 52, 163, 224]);
11343 }
11344 impl ::std::convert::From<IDWriteFontFileStream> for ::windows::runtime::IUnknown {
from(value: IDWriteFontFileStream) -> Self11345     fn from(value: IDWriteFontFileStream) -> Self {
11346         unsafe { ::std::mem::transmute(value) }
11347     }
11348 }
11349 impl ::std::convert::From<&IDWriteFontFileStream> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontFileStream) -> Self11350     fn from(value: &IDWriteFontFileStream) -> Self {
11351         ::std::convert::From::from(::std::clone::Clone::clone(value))
11352     }
11353 }
11354 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontFileStream {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11355     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11356         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11357     }
11358 }
11359 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontFileStream {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11360     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11361         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11362     }
11363 }
11364 #[repr(C)]
11365 #[doc(hidden)]
11366 pub struct IDWriteFontFileStream_abi(
11367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fragmentstart: *mut *mut ::std::ffi::c_void, fileoffset: u64, fragmentsize: u64, fragmentcontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
11371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fragmentcontext: *mut ::std::ffi::c_void),
11372     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filesize: *mut u64) -> ::windows::runtime::HRESULT,
11373     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lastwritetime: *mut u64) -> ::windows::runtime::HRESULT,
11374 );
11375 #[repr(transparent)]
11376 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11377 pub struct IDWriteFontList(::windows::runtime::IUnknown);
11378 impl IDWriteFontList {
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>11379     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
11380         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11381         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
11382     }
GetFontCount(&self) -> u3211383     pub unsafe fn GetFontCount(&self) -> u32 {
11384         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
11385     }
GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont>11386     pub unsafe fn GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont> {
11387         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11388         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFont>(result__)
11389     }
11390 }
11391 unsafe impl ::windows::runtime::Interface for IDWriteFontList {
11392     type Vtable = IDWriteFontList_abi;
11393     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(437093432, 7575, 20161, [174, 249, 162, 251, 134, 237, 106, 203]);
11394 }
11395 impl ::std::convert::From<IDWriteFontList> for ::windows::runtime::IUnknown {
from(value: IDWriteFontList) -> Self11396     fn from(value: IDWriteFontList) -> Self {
11397         unsafe { ::std::mem::transmute(value) }
11398     }
11399 }
11400 impl ::std::convert::From<&IDWriteFontList> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontList) -> Self11401     fn from(value: &IDWriteFontList) -> Self {
11402         ::std::convert::From::from(::std::clone::Clone::clone(value))
11403     }
11404 }
11405 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontList {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11406     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11407         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11408     }
11409 }
11410 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontList {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11411     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11412         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11413     }
11414 }
11415 #[repr(C)]
11416 #[doc(hidden)]
11417 pub struct IDWriteFontList_abi(
11418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11423     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11424 );
11425 #[repr(transparent)]
11426 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11427 pub struct IDWriteFontList1(::windows::runtime::IUnknown);
11428 impl IDWriteFontList1 {
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>11429     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
11430         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11431         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
11432     }
GetFontCount(&self) -> u3211433     pub unsafe fn GetFontCount(&self) -> u32 {
11434         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
11435     }
GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont>11436     pub unsafe fn GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont> {
11437         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11438         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFont>(result__)
11439     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY11440     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
11441         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
11442     }
GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3>11443     pub unsafe fn GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3> {
11444         let mut result__: <IDWriteFont3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11445         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFont3>(result__)
11446     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>11447     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
11448         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11449         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
11450     }
11451 }
11452 unsafe impl ::windows::runtime::Interface for IDWriteFontList1 {
11453     type Vtable = IDWriteFontList1_abi;
11454     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3659585775, 33066, 19523, [152, 2, 98, 236, 74, 189, 122, 222]);
11455 }
11456 impl ::std::convert::From<IDWriteFontList1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontList1) -> Self11457     fn from(value: IDWriteFontList1) -> Self {
11458         unsafe { ::std::mem::transmute(value) }
11459     }
11460 }
11461 impl ::std::convert::From<&IDWriteFontList1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontList1) -> Self11462     fn from(value: &IDWriteFontList1) -> Self {
11463         ::std::convert::From::from(::std::clone::Clone::clone(value))
11464     }
11465 }
11466 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontList1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11467     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11468         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11469     }
11470 }
11471 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontList1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11472     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11473         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11474     }
11475 }
11476 impl ::std::convert::From<IDWriteFontList1> for IDWriteFontList {
from(value: IDWriteFontList1) -> Self11477     fn from(value: IDWriteFontList1) -> Self {
11478         unsafe { ::std::mem::transmute(value) }
11479     }
11480 }
11481 impl ::std::convert::From<&IDWriteFontList1> for IDWriteFontList {
from(value: &IDWriteFontList1) -> Self11482     fn from(value: &IDWriteFontList1) -> Self {
11483         ::std::convert::From::from(::std::clone::Clone::clone(value))
11484     }
11485 }
11486 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for IDWriteFontList1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11487     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11488         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(self))
11489     }
11490 }
11491 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for &IDWriteFontList1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11492     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11493         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(::std::clone::Clone::clone(self)))
11494     }
11495 }
11496 #[repr(C)]
11497 #[doc(hidden)]
11498 pub struct IDWriteFontList1_abi(
11499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11502     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11504     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
11506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11508 );
11509 #[repr(transparent)]
11510 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11511 pub struct IDWriteFontList2(::windows::runtime::IUnknown);
11512 impl IDWriteFontList2 {
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>11513     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
11514         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11515         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
11516     }
GetFontCount(&self) -> u3211517     pub unsafe fn GetFontCount(&self) -> u32 {
11518         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
11519     }
GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont>11520     pub unsafe fn GetFont(&self, index: u32) -> ::windows::runtime::Result<IDWriteFont> {
11521         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11522         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<IDWriteFont>(result__)
11523     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY11524     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
11525         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
11526     }
GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3>11527     pub unsafe fn GetFont2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFont3> {
11528         let mut result__: <IDWriteFont3 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11529         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFont3>(result__)
11530     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>11531     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
11532         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11533         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
11534     }
GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet1>11535     pub unsafe fn GetFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
11536         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11537         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11538     }
11539 }
11540 unsafe impl ::windows::runtime::Interface for IDWriteFontList2 {
11541     type Vtable = IDWriteFontList2_abi;
11542     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3228973620, 30639, 17498, [183, 53, 8, 195, 123, 10, 91, 245]);
11543 }
11544 impl ::std::convert::From<IDWriteFontList2> for ::windows::runtime::IUnknown {
from(value: IDWriteFontList2) -> Self11545     fn from(value: IDWriteFontList2) -> Self {
11546         unsafe { ::std::mem::transmute(value) }
11547     }
11548 }
11549 impl ::std::convert::From<&IDWriteFontList2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontList2) -> Self11550     fn from(value: &IDWriteFontList2) -> Self {
11551         ::std::convert::From::from(::std::clone::Clone::clone(value))
11552     }
11553 }
11554 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontList2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11555     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11556         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11557     }
11558 }
11559 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontList2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11560     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11561         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11562     }
11563 }
11564 impl ::std::convert::From<IDWriteFontList2> for IDWriteFontList1 {
from(value: IDWriteFontList2) -> Self11565     fn from(value: IDWriteFontList2) -> Self {
11566         unsafe { ::std::mem::transmute(value) }
11567     }
11568 }
11569 impl ::std::convert::From<&IDWriteFontList2> for IDWriteFontList1 {
from(value: &IDWriteFontList2) -> Self11570     fn from(value: &IDWriteFontList2) -> Self {
11571         ::std::convert::From::from(::std::clone::Clone::clone(value))
11572     }
11573 }
11574 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList1> for IDWriteFontList2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList1>11575     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList1> {
11576         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList1>::into(self))
11577     }
11578 }
11579 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList1> for &IDWriteFontList2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList1>11580     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList1> {
11581         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList1>::into(::std::clone::Clone::clone(self)))
11582     }
11583 }
11584 impl ::std::convert::From<IDWriteFontList2> for IDWriteFontList {
from(value: IDWriteFontList2) -> Self11585     fn from(value: IDWriteFontList2) -> Self {
11586         unsafe { ::std::mem::transmute(value) }
11587     }
11588 }
11589 impl ::std::convert::From<&IDWriteFontList2> for IDWriteFontList {
from(value: &IDWriteFontList2) -> Self11590     fn from(value: &IDWriteFontList2) -> Self {
11591         ::std::convert::From::from(::std::clone::Clone::clone(value))
11592     }
11593 }
11594 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for IDWriteFontList2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11595     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11596         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(self))
11597     }
11598 }
11599 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontList> for &IDWriteFontList2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList>11600     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontList> {
11601         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontList>::into(::std::clone::Clone::clone(self)))
11602     }
11603 }
11604 #[repr(C)]
11605 #[doc(hidden)]
11606 pub struct IDWriteFontList2_abi(
11607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11612     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11613     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
11614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11617 );
11618 #[repr(transparent)]
11619 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11620 pub struct IDWriteFontResource(::windows::runtime::IUnknown);
11621 impl IDWriteFontResource {
GetFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile>11622     pub unsafe fn GetFontFile(&self) -> ::windows::runtime::Result<IDWriteFontFile> {
11623         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11624         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFile>(result__)
11625     }
GetFontFaceIndex(&self) -> u3211626     pub unsafe fn GetFontFaceIndex(&self) -> u32 {
11627         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
11628     }
GetFontAxisCount(&self) -> u3211629     pub unsafe fn GetFontAxisCount(&self) -> u32 {
11630         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
11631     }
GetDefaultFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()>11632     pub unsafe fn GetDefaultFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()> {
11633         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount)).ok()
11634     }
GetFontAxisRanges(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32) -> ::windows::runtime::Result<()>11635     pub unsafe fn GetFontAxisRanges(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32) -> ::windows::runtime::Result<()> {
11636         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount)).ok()
11637     }
GetFontAxisAttributes(&self, axisindex: u32) -> DWRITE_FONT_AXIS_ATTRIBUTES11638     pub unsafe fn GetFontAxisAttributes(&self, axisindex: u32) -> DWRITE_FONT_AXIS_ATTRIBUTES {
11639         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisindex)))
11640     }
GetAxisNames(&self, axisindex: u32) -> ::windows::runtime::Result<IDWriteLocalizedStrings>11641     pub unsafe fn GetAxisNames(&self, axisindex: u32) -> ::windows::runtime::Result<IDWriteLocalizedStrings> {
11642         let mut result__: <IDWriteLocalizedStrings as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11643         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisindex), &mut result__).from_abi::<IDWriteLocalizedStrings>(result__)
11644     }
GetAxisValueNameCount(&self, axisindex: u32) -> u3211645     pub unsafe fn GetAxisValueNameCount(&self, axisindex: u32) -> u32 {
11646         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisindex)))
11647     }
GetAxisValueNames(&self, axisindex: u32, axisvalueindex: u32, fontaxisrange: *mut DWRITE_FONT_AXIS_RANGE, names: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()>11648     pub unsafe fn GetAxisValueNames(&self, axisindex: u32, axisvalueindex: u32, fontaxisrange: *mut DWRITE_FONT_AXIS_RANGE, names: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()> {
11649         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(axisindex), ::std::mem::transmute(axisvalueindex), ::std::mem::transmute(fontaxisrange), ::std::mem::transmute(names)).ok()
11650     }
11651     #[cfg(feature = "Win32_Foundation")]
HasVariations(&self) -> super::super::Foundation::BOOL11652     pub unsafe fn HasVariations(&self) -> super::super::Foundation::BOOL {
11653         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
11654     }
CreateFontFace(&self, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFace5>11655     pub unsafe fn CreateFontFace(&self, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFace5> {
11656         let mut result__: <IDWriteFontFace5 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11657         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsimulations), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontFace5>(result__)
11658     }
CreateFontFaceReference(&self, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1>11659     pub unsafe fn CreateFontFaceReference(&self, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1> {
11660         let mut result__: <IDWriteFontFaceReference1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11661         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsimulations), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontFaceReference1>(result__)
11662     }
11663 }
11664 unsafe impl ::windows::runtime::Interface for IDWriteFontResource {
11665     type Vtable = IDWriteFontResource_abi;
11666     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(528497270, 26737, 18664, [152, 127, 185, 117, 85, 28, 80, 242]);
11667 }
11668 impl ::std::convert::From<IDWriteFontResource> for ::windows::runtime::IUnknown {
from(value: IDWriteFontResource) -> Self11669     fn from(value: IDWriteFontResource) -> Self {
11670         unsafe { ::std::mem::transmute(value) }
11671     }
11672 }
11673 impl ::std::convert::From<&IDWriteFontResource> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontResource) -> Self11674     fn from(value: &IDWriteFontResource) -> Self {
11675         ::std::convert::From::from(::std::clone::Clone::clone(value))
11676     }
11677 }
11678 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontResource {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11679     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11680         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11681     }
11682 }
11683 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontResource {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11684     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11685         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11686     }
11687 }
11688 #[repr(C)]
11689 #[doc(hidden)]
11690 pub struct IDWriteFontResource_abi(
11691     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11692     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11693     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11694     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11695     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11696     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11697     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::HRESULT,
11698     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32) -> ::windows::runtime::HRESULT,
11699     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisindex: u32) -> DWRITE_FONT_AXIS_ATTRIBUTES,
11700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisindex: u32, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisindex: u32) -> u32,
11702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, axisindex: u32, axisvalueindex: u32, fontaxisrange: *mut DWRITE_FONT_AXIS_RANGE, names: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11703     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
11704     #[cfg(not(feature = "Win32_Foundation"))] usize,
11705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11707 );
11708 #[repr(transparent)]
11709 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11710 pub struct IDWriteFontSet(::windows::runtime::IUnknown);
11711 impl IDWriteFontSet {
GetFontCount(&self) -> u3211712     pub unsafe fn GetFontCount(&self) -> u32 {
11713         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
11714     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>11715     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
11716         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11717         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
11718     }
11719     #[cfg(feature = "Win32_Foundation")]
FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>11720     pub unsafe fn FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
11721         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
11722     }
11723     #[cfg(feature = "Win32_Foundation")]
FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>11724     pub unsafe fn FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
11725         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
11726     }
GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList>11727     pub unsafe fn GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList> {
11728         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11729         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), &mut result__).from_abi::<IDWriteStringList>(result__)
11730     }
11731     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList>11732     pub unsafe fn GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList> {
11733         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11734         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), preferredlocalenames.into_param().abi(), &mut result__).from_abi::<IDWriteStringList>(result__)
11735     }
11736     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()>11737     pub unsafe fn GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()> {
11738         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(propertyid), ::std::mem::transmute(exists), ::std::mem::transmute(values)).ok()
11739     }
11740     #[cfg(feature = "Win32_Foundation")]
GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32>11741     pub unsafe fn GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32> {
11742         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11743         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(property), &mut result__).from_abi::<u32>(result__)
11744     }
11745     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet>11746     pub unsafe fn GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet> {
11747         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11748         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontstyle), &mut result__).from_abi::<IDWriteFontSet>(result__)
11749     }
11750     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet>11751     pub unsafe fn GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet> {
11752         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11753         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), &mut result__).from_abi::<IDWriteFontSet>(result__)
11754     }
11755 }
11756 unsafe impl ::windows::runtime::Interface for IDWriteFontSet {
11757     type Vtable = IDWriteFontSet_abi;
11758     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1398296897, 55800, 16533, [131, 33, 215, 60, 246, 189, 17, 107]);
11759 }
11760 impl ::std::convert::From<IDWriteFontSet> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSet) -> Self11761     fn from(value: IDWriteFontSet) -> Self {
11762         unsafe { ::std::mem::transmute(value) }
11763     }
11764 }
11765 impl ::std::convert::From<&IDWriteFontSet> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSet) -> Self11766     fn from(value: &IDWriteFontSet) -> Self {
11767         ::std::convert::From::from(::std::clone::Clone::clone(value))
11768     }
11769 }
11770 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSet {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11771     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11772         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11773     }
11774 }
11775 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSet {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11776     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11777         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11778     }
11779 }
11780 #[repr(C)]
11781 #[doc(hidden)]
11782 pub struct IDWriteFontSet_abi(
11783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11788     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
11789     #[cfg(not(feature = "Win32_Foundation"))] usize,
11790     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
11791     #[cfg(not(feature = "Win32_Foundation"))] usize,
11792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11793     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: super::super::Foundation::PWSTR, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11794     #[cfg(not(feature = "Win32_Foundation"))] usize,
11795     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11796     #[cfg(not(feature = "Win32_Foundation"))] usize,
11797     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, property: *const DWRITE_FONT_PROPERTY, propertyoccurrencecount: *mut u32) -> ::windows::runtime::HRESULT,
11798     #[cfg(not(feature = "Win32_Foundation"))] usize,
11799     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11800     #[cfg(not(feature = "Win32_Foundation"))] usize,
11801     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11802     #[cfg(not(feature = "Win32_Foundation"))] usize,
11803 );
11804 #[repr(transparent)]
11805 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11806 pub struct IDWriteFontSet1(::windows::runtime::IUnknown);
11807 impl IDWriteFontSet1 {
GetFontCount(&self) -> u3211808     pub unsafe fn GetFontCount(&self) -> u32 {
11809         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
11810     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>11811     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
11812         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11813         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
11814     }
11815     #[cfg(feature = "Win32_Foundation")]
FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>11816     pub unsafe fn FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
11817         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
11818     }
11819     #[cfg(feature = "Win32_Foundation")]
FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>11820     pub unsafe fn FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
11821         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
11822     }
GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList>11823     pub unsafe fn GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList> {
11824         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11825         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), &mut result__).from_abi::<IDWriteStringList>(result__)
11826     }
11827     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList>11828     pub unsafe fn GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList> {
11829         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11830         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), preferredlocalenames.into_param().abi(), &mut result__).from_abi::<IDWriteStringList>(result__)
11831     }
11832     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()>11833     pub unsafe fn GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()> {
11834         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(propertyid), ::std::mem::transmute(exists), ::std::mem::transmute(values)).ok()
11835     }
11836     #[cfg(feature = "Win32_Foundation")]
GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32>11837     pub unsafe fn GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32> {
11838         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11839         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(property), &mut result__).from_abi::<u32>(result__)
11840     }
11841     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet>11842     pub unsafe fn GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet> {
11843         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11844         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontstyle), &mut result__).from_abi::<IDWriteFontSet>(result__)
11845     }
11846     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet>11847     pub unsafe fn GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet> {
11848         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11849         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), &mut result__).from_abi::<IDWriteFontSet>(result__)
11850     }
11851     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts3(&self, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontSet1>11852     pub unsafe fn GetMatchingFonts3(&self, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontSet1> {
11853         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11854         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontproperty), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11855     }
GetFirstFontResources(&self) -> ::windows::runtime::Result<IDWriteFontSet1>11856     pub unsafe fn GetFirstFontResources(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
11857         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11858         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11859     }
GetFilteredFonts(&self, indices: *const u32, indexcount: u32) -> ::windows::runtime::Result<IDWriteFontSet1>11860     pub unsafe fn GetFilteredFonts(&self, indices: *const u32, indexcount: u32) -> ::windows::runtime::Result<IDWriteFontSet1> {
11861         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11862         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(indices), ::std::mem::transmute(indexcount), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11863     }
11864     #[cfg(feature = "Win32_Foundation")]
GetFilteredFonts2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2) -> ::windows::runtime::Result<IDWriteFontSet1>11865     pub unsafe fn GetFilteredFonts2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2) -> ::windows::runtime::Result<IDWriteFontSet1> {
11866         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11867         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount), selectanyrange.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11868     }
11869     #[cfg(feature = "Win32_Foundation")]
GetFilteredFonts3<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2) -> ::windows::runtime::Result<IDWriteFontSet1>11870     pub unsafe fn GetFilteredFonts3<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2) -> ::windows::runtime::Result<IDWriteFontSet1> {
11871         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11872         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), selectanyproperty.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
11873     }
11874     #[cfg(feature = "Win32_Foundation")]
GetFilteredFontIndices<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()>11875     pub unsafe fn GetFilteredFontIndices<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()> {
11876         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount), selectanyrange.into_param().abi(), ::std::mem::transmute(indices), ::std::mem::transmute(maxindexcount), ::std::mem::transmute(actualindexcount)).ok()
11877     }
11878     #[cfg(feature = "Win32_Foundation")]
GetFilteredFontIndices2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()>11879     pub unsafe fn GetFilteredFontIndices2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()> {
11880         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), selectanyproperty.into_param().abi(), ::std::mem::transmute(indices), ::std::mem::transmute(maxindexcount), ::std::mem::transmute(actualindexcount)).ok()
11881     }
GetFontAxisRanges(&self, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()>11882     pub unsafe fn GetFontAxisRanges(&self, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()> {
11883         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(maxfontaxisrangecount), ::std::mem::transmute(actualfontaxisrangecount)).ok()
11884     }
GetFontAxisRanges2(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()>11885     pub unsafe fn GetFontAxisRanges2(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()> {
11886         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(maxfontaxisrangecount), ::std::mem::transmute(actualfontaxisrangecount)).ok()
11887     }
GetFontFaceReference2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1>11888     pub unsafe fn GetFontFaceReference2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1> {
11889         let mut result__: <IDWriteFontFaceReference1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11890         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference1>(result__)
11891     }
CreateFontResource(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontResource>11892     pub unsafe fn CreateFontResource(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontResource> {
11893         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11894         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontResource>(result__)
11895     }
CreateFontFace(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFace5>11896     pub unsafe fn CreateFontFace(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFace5> {
11897         let mut result__: <IDWriteFontFace5 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11898         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFace5>(result__)
11899     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY11900     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
11901         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
11902     }
11903 }
11904 unsafe impl ::windows::runtime::Interface for IDWriteFontSet1 {
11905     type Vtable = IDWriteFontSet1_abi;
11906     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2124405381, 27794, 16467, [188, 71, 122, 227, 83, 13, 180, 211]);
11907 }
11908 impl ::std::convert::From<IDWriteFontSet1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSet1) -> Self11909     fn from(value: IDWriteFontSet1) -> Self {
11910         unsafe { ::std::mem::transmute(value) }
11911     }
11912 }
11913 impl ::std::convert::From<&IDWriteFontSet1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSet1) -> Self11914     fn from(value: &IDWriteFontSet1) -> Self {
11915         ::std::convert::From::from(::std::clone::Clone::clone(value))
11916     }
11917 }
11918 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSet1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11919     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11920         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
11921     }
11922 }
11923 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSet1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>11924     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
11925         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
11926     }
11927 }
11928 impl ::std::convert::From<IDWriteFontSet1> for IDWriteFontSet {
from(value: IDWriteFontSet1) -> Self11929     fn from(value: IDWriteFontSet1) -> Self {
11930         unsafe { ::std::mem::transmute(value) }
11931     }
11932 }
11933 impl ::std::convert::From<&IDWriteFontSet1> for IDWriteFontSet {
from(value: &IDWriteFontSet1) -> Self11934     fn from(value: &IDWriteFontSet1) -> Self {
11935         ::std::convert::From::from(::std::clone::Clone::clone(value))
11936     }
11937 }
11938 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet> for IDWriteFontSet1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet>11939     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet> {
11940         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet>::into(self))
11941     }
11942 }
11943 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet> for &IDWriteFontSet1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet>11944     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet> {
11945         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet>::into(::std::clone::Clone::clone(self)))
11946     }
11947 }
11948 #[repr(C)]
11949 #[doc(hidden)]
11950 pub struct IDWriteFontSet1_abi(
11951     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11952     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11953     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
11955     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11956     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
11957     #[cfg(not(feature = "Win32_Foundation"))] usize,
11958     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
11959     #[cfg(not(feature = "Win32_Foundation"))] usize,
11960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11961     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: super::super::Foundation::PWSTR, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11962     #[cfg(not(feature = "Win32_Foundation"))] usize,
11963     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11964     #[cfg(not(feature = "Win32_Foundation"))] usize,
11965     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, property: *const DWRITE_FONT_PROPERTY, propertyoccurrencecount: *mut u32) -> ::windows::runtime::HRESULT,
11966     #[cfg(not(feature = "Win32_Foundation"))] usize,
11967     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11968     #[cfg(not(feature = "Win32_Foundation"))] usize,
11969     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11970     #[cfg(not(feature = "Win32_Foundation"))] usize,
11971     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11972     #[cfg(not(feature = "Win32_Foundation"))] usize,
11973     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, indices: *const u32, indexcount: u32, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11975     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: super::super::Foundation::BOOL, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11976     #[cfg(not(feature = "Win32_Foundation"))] usize,
11977     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: super::super::Foundation::BOOL, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11978     #[cfg(not(feature = "Win32_Foundation"))] usize,
11979     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: super::super::Foundation::BOOL, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::HRESULT,
11980     #[cfg(not(feature = "Win32_Foundation"))] usize,
11981     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: super::super::Foundation::BOOL, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::HRESULT,
11982     #[cfg(not(feature = "Win32_Foundation"))] usize,
11983     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::HRESULT,
11984     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::HRESULT,
11985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11986     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11987     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
11988     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
11989 );
11990 #[repr(transparent)]
11991 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
11992 pub struct IDWriteFontSet2(::windows::runtime::IUnknown);
11993 impl IDWriteFontSet2 {
GetFontCount(&self) -> u3211994     pub unsafe fn GetFontCount(&self) -> u32 {
11995         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
11996     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>11997     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
11998         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11999         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
12000     }
12001     #[cfg(feature = "Win32_Foundation")]
FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>12002     pub unsafe fn FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
12003         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
12004     }
12005     #[cfg(feature = "Win32_Foundation")]
FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>12006     pub unsafe fn FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
12007         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
12008     }
GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList>12009     pub unsafe fn GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList> {
12010         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12011         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), &mut result__).from_abi::<IDWriteStringList>(result__)
12012     }
12013     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList>12014     pub unsafe fn GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList> {
12015         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12016         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), preferredlocalenames.into_param().abi(), &mut result__).from_abi::<IDWriteStringList>(result__)
12017     }
12018     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()>12019     pub unsafe fn GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()> {
12020         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(propertyid), ::std::mem::transmute(exists), ::std::mem::transmute(values)).ok()
12021     }
12022     #[cfg(feature = "Win32_Foundation")]
GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32>12023     pub unsafe fn GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32> {
12024         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12025         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(property), &mut result__).from_abi::<u32>(result__)
12026     }
12027     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet>12028     pub unsafe fn GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet> {
12029         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12030         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontstyle), &mut result__).from_abi::<IDWriteFontSet>(result__)
12031     }
12032     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet>12033     pub unsafe fn GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet> {
12034         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12035         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), &mut result__).from_abi::<IDWriteFontSet>(result__)
12036     }
12037     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts3(&self, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontSet1>12038     pub unsafe fn GetMatchingFonts3(&self, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontSet1> {
12039         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12040         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontproperty), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12041     }
GetFirstFontResources(&self) -> ::windows::runtime::Result<IDWriteFontSet1>12042     pub unsafe fn GetFirstFontResources(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
12043         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12044         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12045     }
GetFilteredFonts(&self, indices: *const u32, indexcount: u32) -> ::windows::runtime::Result<IDWriteFontSet1>12046     pub unsafe fn GetFilteredFonts(&self, indices: *const u32, indexcount: u32) -> ::windows::runtime::Result<IDWriteFontSet1> {
12047         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12048         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(indices), ::std::mem::transmute(indexcount), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12049     }
12050     #[cfg(feature = "Win32_Foundation")]
GetFilteredFonts2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2) -> ::windows::runtime::Result<IDWriteFontSet1>12051     pub unsafe fn GetFilteredFonts2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2) -> ::windows::runtime::Result<IDWriteFontSet1> {
12052         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12053         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount), selectanyrange.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12054     }
12055     #[cfg(feature = "Win32_Foundation")]
GetFilteredFonts3<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2) -> ::windows::runtime::Result<IDWriteFontSet1>12056     pub unsafe fn GetFilteredFonts3<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2) -> ::windows::runtime::Result<IDWriteFontSet1> {
12057         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12058         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), selectanyproperty.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12059     }
12060     #[cfg(feature = "Win32_Foundation")]
GetFilteredFontIndices<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()>12061     pub unsafe fn GetFilteredFontIndices<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()> {
12062         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount), selectanyrange.into_param().abi(), ::std::mem::transmute(indices), ::std::mem::transmute(maxindexcount), ::std::mem::transmute(actualindexcount)).ok()
12063     }
12064     #[cfg(feature = "Win32_Foundation")]
GetFilteredFontIndices2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()>12065     pub unsafe fn GetFilteredFontIndices2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()> {
12066         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), selectanyproperty.into_param().abi(), ::std::mem::transmute(indices), ::std::mem::transmute(maxindexcount), ::std::mem::transmute(actualindexcount)).ok()
12067     }
GetFontAxisRanges(&self, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()>12068     pub unsafe fn GetFontAxisRanges(&self, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()> {
12069         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(maxfontaxisrangecount), ::std::mem::transmute(actualfontaxisrangecount)).ok()
12070     }
GetFontAxisRanges2(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()>12071     pub unsafe fn GetFontAxisRanges2(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()> {
12072         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(maxfontaxisrangecount), ::std::mem::transmute(actualfontaxisrangecount)).ok()
12073     }
GetFontFaceReference2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1>12074     pub unsafe fn GetFontFaceReference2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1> {
12075         let mut result__: <IDWriteFontFaceReference1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12076         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference1>(result__)
12077     }
CreateFontResource(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontResource>12078     pub unsafe fn CreateFontResource(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontResource> {
12079         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12080         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontResource>(result__)
12081     }
CreateFontFace(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFace5>12082     pub unsafe fn CreateFontFace(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFace5> {
12083         let mut result__: <IDWriteFontFace5 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12084         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFace5>(result__)
12085     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY12086     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
12087         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
12088     }
12089     #[cfg(feature = "Win32_Foundation")]
GetExpirationEvent(&self) -> super::super::Foundation::HANDLE12090     pub unsafe fn GetExpirationEvent(&self) -> super::super::Foundation::HANDLE {
12091         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
12092     }
12093 }
12094 unsafe impl ::windows::runtime::Interface for IDWriteFontSet2 {
12095     type Vtable = IDWriteFontSet2_abi;
12096     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3699289369, 58700, 17327, [178, 218, 78, 43, 121, 186, 63, 127]);
12097 }
12098 impl ::std::convert::From<IDWriteFontSet2> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSet2) -> Self12099     fn from(value: IDWriteFontSet2) -> Self {
12100         unsafe { ::std::mem::transmute(value) }
12101     }
12102 }
12103 impl ::std::convert::From<&IDWriteFontSet2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSet2) -> Self12104     fn from(value: &IDWriteFontSet2) -> Self {
12105         ::std::convert::From::from(::std::clone::Clone::clone(value))
12106     }
12107 }
12108 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSet2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12109     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12110         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12111     }
12112 }
12113 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSet2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12114     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12115         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12116     }
12117 }
12118 impl ::std::convert::From<IDWriteFontSet2> for IDWriteFontSet1 {
from(value: IDWriteFontSet2) -> Self12119     fn from(value: IDWriteFontSet2) -> Self {
12120         unsafe { ::std::mem::transmute(value) }
12121     }
12122 }
12123 impl ::std::convert::From<&IDWriteFontSet2> for IDWriteFontSet1 {
from(value: &IDWriteFontSet2) -> Self12124     fn from(value: &IDWriteFontSet2) -> Self {
12125         ::std::convert::From::from(::std::clone::Clone::clone(value))
12126     }
12127 }
12128 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet1> for IDWriteFontSet2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1>12129     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1> {
12130         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet1>::into(self))
12131     }
12132 }
12133 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet1> for &IDWriteFontSet2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1>12134     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1> {
12135         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet1>::into(::std::clone::Clone::clone(self)))
12136     }
12137 }
12138 impl ::std::convert::From<IDWriteFontSet2> for IDWriteFontSet {
from(value: IDWriteFontSet2) -> Self12139     fn from(value: IDWriteFontSet2) -> Self {
12140         unsafe { ::std::mem::transmute(value) }
12141     }
12142 }
12143 impl ::std::convert::From<&IDWriteFontSet2> for IDWriteFontSet {
from(value: &IDWriteFontSet2) -> Self12144     fn from(value: &IDWriteFontSet2) -> Self {
12145         ::std::convert::From::from(::std::clone::Clone::clone(value))
12146     }
12147 }
12148 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet> for IDWriteFontSet2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet>12149     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet> {
12150         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet>::into(self))
12151     }
12152 }
12153 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet> for &IDWriteFontSet2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet>12154     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet> {
12155         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet>::into(::std::clone::Clone::clone(self)))
12156     }
12157 }
12158 #[repr(C)]
12159 #[doc(hidden)]
12160 pub struct IDWriteFontSet2_abi(
12161     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12166     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
12167     #[cfg(not(feature = "Win32_Foundation"))] usize,
12168     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
12169     #[cfg(not(feature = "Win32_Foundation"))] usize,
12170     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12171     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: super::super::Foundation::PWSTR, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12172     #[cfg(not(feature = "Win32_Foundation"))] usize,
12173     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12174     #[cfg(not(feature = "Win32_Foundation"))] usize,
12175     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, property: *const DWRITE_FONT_PROPERTY, propertyoccurrencecount: *mut u32) -> ::windows::runtime::HRESULT,
12176     #[cfg(not(feature = "Win32_Foundation"))] usize,
12177     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12178     #[cfg(not(feature = "Win32_Foundation"))] usize,
12179     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12180     #[cfg(not(feature = "Win32_Foundation"))] usize,
12181     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12182     #[cfg(not(feature = "Win32_Foundation"))] usize,
12183     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, indices: *const u32, indexcount: u32, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12185     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: super::super::Foundation::BOOL, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12186     #[cfg(not(feature = "Win32_Foundation"))] usize,
12187     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: super::super::Foundation::BOOL, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12188     #[cfg(not(feature = "Win32_Foundation"))] usize,
12189     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: super::super::Foundation::BOOL, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::HRESULT,
12190     #[cfg(not(feature = "Win32_Foundation"))] usize,
12191     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: super::super::Foundation::BOOL, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::HRESULT,
12192     #[cfg(not(feature = "Win32_Foundation"))] usize,
12193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::HRESULT,
12194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::HRESULT,
12195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12196     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12197     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
12199     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
12200     #[cfg(not(feature = "Win32_Foundation"))] usize,
12201 );
12202 #[repr(transparent)]
12203 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12204 pub struct IDWriteFontSet3(::windows::runtime::IUnknown);
12205 impl IDWriteFontSet3 {
GetFontCount(&self) -> u3212206     pub unsafe fn GetFontCount(&self) -> u32 {
12207         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
12208     }
GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference>12209     pub unsafe fn GetFontFaceReference(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference> {
12210         let mut result__: <IDWriteFontFaceReference as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12211         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference>(result__)
12212     }
12213     #[cfg(feature = "Win32_Foundation")]
FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>12214     pub unsafe fn FindFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
12215         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
12216     }
12217     #[cfg(feature = "Win32_Foundation")]
FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>12218     pub unsafe fn FindFontFace<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
12219         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), fontface.into_param().abi(), ::std::mem::transmute(listindex), ::std::mem::transmute(exists)).ok()
12220     }
GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList>12221     pub unsafe fn GetPropertyValues(&self, propertyid: DWRITE_FONT_PROPERTY_ID) -> ::windows::runtime::Result<IDWriteStringList> {
12222         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12223         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), &mut result__).from_abi::<IDWriteStringList>(result__)
12224     }
12225     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList>12226     pub unsafe fn GetPropertyValues2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: Param1) -> ::windows::runtime::Result<IDWriteStringList> {
12227         let mut result__: <IDWriteStringList as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12228         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(propertyid), preferredlocalenames.into_param().abi(), &mut result__).from_abi::<IDWriteStringList>(result__)
12229     }
12230     #[cfg(feature = "Win32_Foundation")]
GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()>12231     pub unsafe fn GetPropertyValues3(&self, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::std::option::Option<IDWriteLocalizedStrings>) -> ::windows::runtime::Result<()> {
12232         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(propertyid), ::std::mem::transmute(exists), ::std::mem::transmute(values)).ok()
12233     }
12234     #[cfg(feature = "Win32_Foundation")]
GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32>12235     pub unsafe fn GetPropertyOccurrenceCount(&self, property: *const DWRITE_FONT_PROPERTY) -> ::windows::runtime::Result<u32> {
12236         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12237         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(property), &mut result__).from_abi::<u32>(result__)
12238     }
12239     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet>12240     pub unsafe fn GetMatchingFonts<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, familyname: Param0, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE) -> ::windows::runtime::Result<IDWriteFontSet> {
12241         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12242         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), familyname.into_param().abi(), ::std::mem::transmute(fontweight), ::std::mem::transmute(fontstretch), ::std::mem::transmute(fontstyle), &mut result__).from_abi::<IDWriteFontSet>(result__)
12243     }
12244     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet>12245     pub unsafe fn GetMatchingFonts2(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<IDWriteFontSet> {
12246         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12247         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), &mut result__).from_abi::<IDWriteFontSet>(result__)
12248     }
12249     #[cfg(feature = "Win32_Foundation")]
GetMatchingFonts3(&self, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontSet1>12250     pub unsafe fn GetMatchingFonts3(&self, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<IDWriteFontSet1> {
12251         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12252         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontproperty), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12253     }
GetFirstFontResources(&self) -> ::windows::runtime::Result<IDWriteFontSet1>12254     pub unsafe fn GetFirstFontResources(&self) -> ::windows::runtime::Result<IDWriteFontSet1> {
12255         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12256         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12257     }
GetFilteredFonts(&self, indices: *const u32, indexcount: u32) -> ::windows::runtime::Result<IDWriteFontSet1>12258     pub unsafe fn GetFilteredFonts(&self, indices: *const u32, indexcount: u32) -> ::windows::runtime::Result<IDWriteFontSet1> {
12259         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12260         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(indices), ::std::mem::transmute(indexcount), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12261     }
12262     #[cfg(feature = "Win32_Foundation")]
GetFilteredFonts2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2) -> ::windows::runtime::Result<IDWriteFontSet1>12263     pub unsafe fn GetFilteredFonts2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2) -> ::windows::runtime::Result<IDWriteFontSet1> {
12264         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12265         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount), selectanyrange.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12266     }
12267     #[cfg(feature = "Win32_Foundation")]
GetFilteredFonts3<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2) -> ::windows::runtime::Result<IDWriteFontSet1>12268     pub unsafe fn GetFilteredFonts3<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2) -> ::windows::runtime::Result<IDWriteFontSet1> {
12269         let mut result__: <IDWriteFontSet1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12270         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), selectanyproperty.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet1>(result__)
12271     }
12272     #[cfg(feature = "Win32_Foundation")]
GetFilteredFontIndices<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()>12273     pub unsafe fn GetFilteredFontIndices<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()> {
12274         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(fontaxisrangecount), selectanyrange.into_param().abi(), ::std::mem::transmute(indices), ::std::mem::transmute(maxindexcount), ::std::mem::transmute(actualindexcount)).ok()
12275     }
12276     #[cfg(feature = "Win32_Foundation")]
GetFilteredFontIndices2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()>12277     pub unsafe fn GetFilteredFontIndices2<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: Param2, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::Result<()> {
12278         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount), selectanyproperty.into_param().abi(), ::std::mem::transmute(indices), ::std::mem::transmute(maxindexcount), ::std::mem::transmute(actualindexcount)).ok()
12279     }
GetFontAxisRanges(&self, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()>12280     pub unsafe fn GetFontAxisRanges(&self, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()> {
12281         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(maxfontaxisrangecount), ::std::mem::transmute(actualfontaxisrangecount)).ok()
12282     }
GetFontAxisRanges2(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()>12283     pub unsafe fn GetFontAxisRanges2(&self, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::Result<()> {
12284         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisranges), ::std::mem::transmute(maxfontaxisrangecount), ::std::mem::transmute(actualfontaxisrangecount)).ok()
12285     }
GetFontFaceReference2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1>12286     pub unsafe fn GetFontFaceReference2(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFaceReference1> {
12287         let mut result__: <IDWriteFontFaceReference1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12288         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFaceReference1>(result__)
12289     }
CreateFontResource(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontResource>12290     pub unsafe fn CreateFontResource(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontResource> {
12291         let mut result__: <IDWriteFontResource as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12292         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontResource>(result__)
12293     }
CreateFontFace(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFace5>12294     pub unsafe fn CreateFontFace(&self, listindex: u32) -> ::windows::runtime::Result<IDWriteFontFace5> {
12295         let mut result__: <IDWriteFontFace5 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12296         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<IDWriteFontFace5>(result__)
12297     }
GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY12298     pub unsafe fn GetFontLocality(&self, listindex: u32) -> DWRITE_LOCALITY {
12299         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
12300     }
12301     #[cfg(feature = "Win32_Foundation")]
GetExpirationEvent(&self) -> super::super::Foundation::HANDLE12302     pub unsafe fn GetExpirationEvent(&self) -> super::super::Foundation::HANDLE {
12303         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
12304     }
GetFontSourceType(&self, fontindex: u32) -> DWRITE_FONT_SOURCE_TYPE12305     pub unsafe fn GetFontSourceType(&self, fontindex: u32) -> DWRITE_FONT_SOURCE_TYPE {
12306         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontindex)))
12307     }
GetFontSourceNameLength(&self, listindex: u32) -> u3212308     pub unsafe fn GetFontSourceNameLength(&self, listindex: u32) -> u32 {
12309         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex)))
12310     }
12311     #[cfg(feature = "Win32_Foundation")]
GetFontSourceName(&self, listindex: u32, stringbuffer: super::super::Foundation::PWSTR, stringbuffersize: u32) -> ::windows::runtime::Result<()>12312     pub unsafe fn GetFontSourceName(&self, listindex: u32, stringbuffer: super::super::Foundation::PWSTR, stringbuffersize: u32) -> ::windows::runtime::Result<()> {
12313         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(stringbuffer), ::std::mem::transmute(stringbuffersize)).ok()
12314     }
12315 }
12316 unsafe impl ::windows::runtime::Interface for IDWriteFontSet3 {
12317     type Vtable = IDWriteFontSet3_abi;
12318     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2080849650, 42996, 16453, [140, 50, 138, 184, 174, 100, 15, 144]);
12319 }
12320 impl ::std::convert::From<IDWriteFontSet3> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSet3) -> Self12321     fn from(value: IDWriteFontSet3) -> Self {
12322         unsafe { ::std::mem::transmute(value) }
12323     }
12324 }
12325 impl ::std::convert::From<&IDWriteFontSet3> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSet3) -> Self12326     fn from(value: &IDWriteFontSet3) -> Self {
12327         ::std::convert::From::from(::std::clone::Clone::clone(value))
12328     }
12329 }
12330 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12331     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12332         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12333     }
12334 }
12335 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12336     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12337         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12338     }
12339 }
12340 impl ::std::convert::From<IDWriteFontSet3> for IDWriteFontSet2 {
from(value: IDWriteFontSet3) -> Self12341     fn from(value: IDWriteFontSet3) -> Self {
12342         unsafe { ::std::mem::transmute(value) }
12343     }
12344 }
12345 impl ::std::convert::From<&IDWriteFontSet3> for IDWriteFontSet2 {
from(value: &IDWriteFontSet3) -> Self12346     fn from(value: &IDWriteFontSet3) -> Self {
12347         ::std::convert::From::from(::std::clone::Clone::clone(value))
12348     }
12349 }
12350 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet2> for IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet2>12351     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet2> {
12352         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet2>::into(self))
12353     }
12354 }
12355 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet2> for &IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet2>12356     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet2> {
12357         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet2>::into(::std::clone::Clone::clone(self)))
12358     }
12359 }
12360 impl ::std::convert::From<IDWriteFontSet3> for IDWriteFontSet1 {
from(value: IDWriteFontSet3) -> Self12361     fn from(value: IDWriteFontSet3) -> Self {
12362         unsafe { ::std::mem::transmute(value) }
12363     }
12364 }
12365 impl ::std::convert::From<&IDWriteFontSet3> for IDWriteFontSet1 {
from(value: &IDWriteFontSet3) -> Self12366     fn from(value: &IDWriteFontSet3) -> Self {
12367         ::std::convert::From::from(::std::clone::Clone::clone(value))
12368     }
12369 }
12370 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet1> for IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1>12371     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1> {
12372         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet1>::into(self))
12373     }
12374 }
12375 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet1> for &IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1>12376     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet1> {
12377         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet1>::into(::std::clone::Clone::clone(self)))
12378     }
12379 }
12380 impl ::std::convert::From<IDWriteFontSet3> for IDWriteFontSet {
from(value: IDWriteFontSet3) -> Self12381     fn from(value: IDWriteFontSet3) -> Self {
12382         unsafe { ::std::mem::transmute(value) }
12383     }
12384 }
12385 impl ::std::convert::From<&IDWriteFontSet3> for IDWriteFontSet {
from(value: &IDWriteFontSet3) -> Self12386     fn from(value: &IDWriteFontSet3) -> Self {
12387         ::std::convert::From::from(::std::clone::Clone::clone(value))
12388     }
12389 }
12390 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet> for IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet>12391     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet> {
12392         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet>::into(self))
12393     }
12394 }
12395 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSet> for &IDWriteFontSet3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet>12396     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSet> {
12397         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSet>::into(::std::clone::Clone::clone(self)))
12398     }
12399 }
12400 #[repr(C)]
12401 #[doc(hidden)]
12402 pub struct IDWriteFontSet3_abi(
12403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
12409     #[cfg(not(feature = "Win32_Foundation"))] usize,
12410     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, listindex: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
12411     #[cfg(not(feature = "Win32_Foundation"))] usize,
12412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12413     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertyid: DWRITE_FONT_PROPERTY_ID, preferredlocalenames: super::super::Foundation::PWSTR, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12414     #[cfg(not(feature = "Win32_Foundation"))] usize,
12415     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, propertyid: DWRITE_FONT_PROPERTY_ID, exists: *mut super::super::Foundation::BOOL, values: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12416     #[cfg(not(feature = "Win32_Foundation"))] usize,
12417     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, property: *const DWRITE_FONT_PROPERTY, propertyoccurrencecount: *mut u32) -> ::windows::runtime::HRESULT,
12418     #[cfg(not(feature = "Win32_Foundation"))] usize,
12419     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, familyname: super::super::Foundation::PWSTR, fontweight: DWRITE_FONT_WEIGHT, fontstretch: DWRITE_FONT_STRETCH, fontstyle: DWRITE_FONT_STYLE, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12420     #[cfg(not(feature = "Win32_Foundation"))] usize,
12421     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12422     #[cfg(not(feature = "Win32_Foundation"))] usize,
12423     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontproperty: *const DWRITE_FONT_PROPERTY, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, matchingfonts: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12424     #[cfg(not(feature = "Win32_Foundation"))] usize,
12425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12426     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, indices: *const u32, indexcount: u32, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12427     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: super::super::Foundation::BOOL, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12428     #[cfg(not(feature = "Win32_Foundation"))] usize,
12429     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: super::super::Foundation::BOOL, filteredfontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12430     #[cfg(not(feature = "Win32_Foundation"))] usize,
12431     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, selectanyrange: super::super::Foundation::BOOL, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::HRESULT,
12432     #[cfg(not(feature = "Win32_Foundation"))] usize,
12433     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32, selectanyproperty: super::super::Foundation::BOOL, indices: *mut u32, maxindexcount: u32, actualindexcount: *mut u32) -> ::windows::runtime::HRESULT,
12434     #[cfg(not(feature = "Win32_Foundation"))] usize,
12435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::HRESULT,
12436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisranges: *mut DWRITE_FONT_AXIS_RANGE, maxfontaxisrangecount: u32, actualfontaxisrangecount: *mut u32) -> ::windows::runtime::HRESULT,
12437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontfacereference: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontresource: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12440     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> DWRITE_LOCALITY,
12441     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::HANDLE,
12442     #[cfg(not(feature = "Win32_Foundation"))] usize,
12443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontindex: u32) -> DWRITE_FONT_SOURCE_TYPE,
12444     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32) -> u32,
12445     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, stringbuffer: super::super::Foundation::PWSTR, stringbuffersize: u32) -> ::windows::runtime::HRESULT,
12446     #[cfg(not(feature = "Win32_Foundation"))] usize,
12447 );
12448 #[repr(transparent)]
12449 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12450 pub struct IDWriteFontSetBuilder(::windows::runtime::IUnknown);
12451 impl IDWriteFontSetBuilder {
12452     #[cfg(feature = "Win32_Foundation")]
AddFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()>12453     pub unsafe fn AddFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()> {
12454         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount)).ok()
12455     }
AddFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> ::windows::runtime::Result<()>12456     pub unsafe fn AddFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> ::windows::runtime::Result<()> {
12457         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi()).ok()
12458     }
AddFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<()>12459     pub unsafe fn AddFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<()> {
12460         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontset.into_param().abi()).ok()
12461     }
CreateFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>12462     pub unsafe fn CreateFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
12463         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12464         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
12465     }
12466 }
12467 unsafe impl ::windows::runtime::Interface for IDWriteFontSetBuilder {
12468     type Vtable = IDWriteFontSetBuilder_abi;
12469     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(795093758, 40040, 20288, [184, 190, 69, 116, 1, 175, 203, 61]);
12470 }
12471 impl ::std::convert::From<IDWriteFontSetBuilder> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSetBuilder) -> Self12472     fn from(value: IDWriteFontSetBuilder) -> Self {
12473         unsafe { ::std::mem::transmute(value) }
12474     }
12475 }
12476 impl ::std::convert::From<&IDWriteFontSetBuilder> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSetBuilder) -> Self12477     fn from(value: &IDWriteFontSetBuilder) -> Self {
12478         ::std::convert::From::from(::std::clone::Clone::clone(value))
12479     }
12480 }
12481 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSetBuilder {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12482     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12483         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12484     }
12485 }
12486 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSetBuilder {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12487     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12488         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12489     }
12490 }
12491 #[repr(C)]
12492 #[doc(hidden)]
12493 pub struct IDWriteFontSetBuilder_abi(
12494     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12495     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12496     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12497     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::HRESULT,
12498     #[cfg(not(feature = "Win32_Foundation"))] usize,
12499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12502 );
12503 #[repr(transparent)]
12504 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12505 pub struct IDWriteFontSetBuilder1(::windows::runtime::IUnknown);
12506 impl IDWriteFontSetBuilder1 {
12507     #[cfg(feature = "Win32_Foundation")]
AddFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()>12508     pub unsafe fn AddFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()> {
12509         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount)).ok()
12510     }
AddFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> ::windows::runtime::Result<()>12511     pub unsafe fn AddFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> ::windows::runtime::Result<()> {
12512         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi()).ok()
12513     }
AddFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<()>12514     pub unsafe fn AddFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<()> {
12515         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontset.into_param().abi()).ok()
12516     }
CreateFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>12517     pub unsafe fn CreateFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
12518         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12519         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
12520     }
AddFontFile<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0) -> ::windows::runtime::Result<()>12521     pub unsafe fn AddFontFile<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0) -> ::windows::runtime::Result<()> {
12522         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), fontfile.into_param().abi()).ok()
12523     }
12524 }
12525 unsafe impl ::windows::runtime::Interface for IDWriteFontSetBuilder1 {
12526     type Vtable = IDWriteFontSetBuilder1_abi;
12527     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1073181023, 15580, 19910, [155, 114, 236, 86, 33, 220, 202, 253]);
12528 }
12529 impl ::std::convert::From<IDWriteFontSetBuilder1> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSetBuilder1) -> Self12530     fn from(value: IDWriteFontSetBuilder1) -> Self {
12531         unsafe { ::std::mem::transmute(value) }
12532     }
12533 }
12534 impl ::std::convert::From<&IDWriteFontSetBuilder1> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSetBuilder1) -> Self12535     fn from(value: &IDWriteFontSetBuilder1) -> Self {
12536         ::std::convert::From::from(::std::clone::Clone::clone(value))
12537     }
12538 }
12539 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSetBuilder1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12540     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12541         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12542     }
12543 }
12544 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSetBuilder1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12545     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12546         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12547     }
12548 }
12549 impl ::std::convert::From<IDWriteFontSetBuilder1> for IDWriteFontSetBuilder {
from(value: IDWriteFontSetBuilder1) -> Self12550     fn from(value: IDWriteFontSetBuilder1) -> Self {
12551         unsafe { ::std::mem::transmute(value) }
12552     }
12553 }
12554 impl ::std::convert::From<&IDWriteFontSetBuilder1> for IDWriteFontSetBuilder {
from(value: &IDWriteFontSetBuilder1) -> Self12555     fn from(value: &IDWriteFontSetBuilder1) -> Self {
12556         ::std::convert::From::from(::std::clone::Clone::clone(value))
12557     }
12558 }
12559 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSetBuilder> for IDWriteFontSetBuilder1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder>12560     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder> {
12561         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSetBuilder>::into(self))
12562     }
12563 }
12564 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSetBuilder> for &IDWriteFontSetBuilder1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder>12565     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder> {
12566         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSetBuilder>::into(::std::clone::Clone::clone(self)))
12567     }
12568 }
12569 #[repr(C)]
12570 #[doc(hidden)]
12571 pub struct IDWriteFontSetBuilder1_abi(
12572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12575     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::HRESULT,
12576     #[cfg(not(feature = "Win32_Foundation"))] usize,
12577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12580     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12581 );
12582 #[repr(transparent)]
12583 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12584 pub struct IDWriteFontSetBuilder2(::windows::runtime::IUnknown);
12585 impl IDWriteFontSetBuilder2 {
12586     #[cfg(feature = "Win32_Foundation")]
AddFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()>12587     pub unsafe fn AddFontFaceReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()> {
12588         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi(), ::std::mem::transmute(properties), ::std::mem::transmute(propertycount)).ok()
12589     }
AddFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> ::windows::runtime::Result<()>12590     pub unsafe fn AddFontFaceReference2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFaceReference>>(&self, fontfacereference: Param0) -> ::windows::runtime::Result<()> {
12591         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), fontfacereference.into_param().abi()).ok()
12592     }
AddFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<()>12593     pub unsafe fn AddFontSet<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, fontset: Param0) -> ::windows::runtime::Result<()> {
12594         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), fontset.into_param().abi()).ok()
12595     }
CreateFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet>12596     pub unsafe fn CreateFontSet(&self) -> ::windows::runtime::Result<IDWriteFontSet> {
12597         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12598         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontSet>(result__)
12599     }
AddFontFile<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0) -> ::windows::runtime::Result<()>12600     pub unsafe fn AddFontFile<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0) -> ::windows::runtime::Result<()> {
12601         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), fontfile.into_param().abi()).ok()
12602     }
12603     #[cfg(feature = "Win32_Foundation")]
AddFont<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, fontfaceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()>12604     pub unsafe fn AddFont<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFile>>(&self, fontfile: Param0, fontfaceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::Result<()> {
12605         (::windows::runtime::Interface::vtable(self).8)(
12606             ::std::mem::transmute_copy(self),
12607             fontfile.into_param().abi(),
12608             ::std::mem::transmute(fontfaceindex),
12609             ::std::mem::transmute(fontsimulations),
12610             ::std::mem::transmute(fontaxisvalues),
12611             ::std::mem::transmute(fontaxisvaluecount),
12612             ::std::mem::transmute(fontaxisranges),
12613             ::std::mem::transmute(fontaxisrangecount),
12614             ::std::mem::transmute(properties),
12615             ::std::mem::transmute(propertycount),
12616         )
12617         .ok()
12618     }
12619     #[cfg(feature = "Win32_Foundation")]
AddFontFile2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0) -> ::windows::runtime::Result<()>12620     pub unsafe fn AddFontFile2<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, filepath: Param0) -> ::windows::runtime::Result<()> {
12621         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), filepath.into_param().abi()).ok()
12622     }
12623 }
12624 unsafe impl ::windows::runtime::Interface for IDWriteFontSetBuilder2 {
12625     type Vtable = IDWriteFontSetBuilder2_abi;
12626     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3998983698, 45361, 17980, [143, 79, 49, 137, 185, 64, 30, 69]);
12627 }
12628 impl ::std::convert::From<IDWriteFontSetBuilder2> for ::windows::runtime::IUnknown {
from(value: IDWriteFontSetBuilder2) -> Self12629     fn from(value: IDWriteFontSetBuilder2) -> Self {
12630         unsafe { ::std::mem::transmute(value) }
12631     }
12632 }
12633 impl ::std::convert::From<&IDWriteFontSetBuilder2> for ::windows::runtime::IUnknown {
from(value: &IDWriteFontSetBuilder2) -> Self12634     fn from(value: &IDWriteFontSetBuilder2) -> Self {
12635         ::std::convert::From::from(::std::clone::Clone::clone(value))
12636     }
12637 }
12638 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteFontSetBuilder2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12639     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12640         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12641     }
12642 }
12643 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteFontSetBuilder2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12644     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12645         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12646     }
12647 }
12648 impl ::std::convert::From<IDWriteFontSetBuilder2> for IDWriteFontSetBuilder1 {
from(value: IDWriteFontSetBuilder2) -> Self12649     fn from(value: IDWriteFontSetBuilder2) -> Self {
12650         unsafe { ::std::mem::transmute(value) }
12651     }
12652 }
12653 impl ::std::convert::From<&IDWriteFontSetBuilder2> for IDWriteFontSetBuilder1 {
from(value: &IDWriteFontSetBuilder2) -> Self12654     fn from(value: &IDWriteFontSetBuilder2) -> Self {
12655         ::std::convert::From::from(::std::clone::Clone::clone(value))
12656     }
12657 }
12658 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSetBuilder1> for IDWriteFontSetBuilder2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder1>12659     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder1> {
12660         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSetBuilder1>::into(self))
12661     }
12662 }
12663 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSetBuilder1> for &IDWriteFontSetBuilder2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder1>12664     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder1> {
12665         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSetBuilder1>::into(::std::clone::Clone::clone(self)))
12666     }
12667 }
12668 impl ::std::convert::From<IDWriteFontSetBuilder2> for IDWriteFontSetBuilder {
from(value: IDWriteFontSetBuilder2) -> Self12669     fn from(value: IDWriteFontSetBuilder2) -> Self {
12670         unsafe { ::std::mem::transmute(value) }
12671     }
12672 }
12673 impl ::std::convert::From<&IDWriteFontSetBuilder2> for IDWriteFontSetBuilder {
from(value: &IDWriteFontSetBuilder2) -> Self12674     fn from(value: &IDWriteFontSetBuilder2) -> Self {
12675         ::std::convert::From::from(::std::clone::Clone::clone(value))
12676     }
12677 }
12678 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSetBuilder> for IDWriteFontSetBuilder2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder>12679     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder> {
12680         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSetBuilder>::into(self))
12681     }
12682 }
12683 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontSetBuilder> for &IDWriteFontSetBuilder2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder>12684     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontSetBuilder> {
12685         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontSetBuilder>::into(::std::clone::Clone::clone(self)))
12686     }
12687 }
12688 #[repr(C)]
12689 #[doc(hidden)]
12690 pub struct IDWriteFontSetBuilder2_abi(
12691     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12692     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12693     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12694     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::HRESULT,
12695     #[cfg(not(feature = "Win32_Foundation"))] usize,
12696     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfacereference: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12697     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12698     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12699     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12700     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfile: ::windows::runtime::RawPtr, fontfaceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, fontaxisranges: *const DWRITE_FONT_AXIS_RANGE, fontaxisrangecount: u32, properties: *const DWRITE_FONT_PROPERTY, propertycount: u32) -> ::windows::runtime::HRESULT,
12701     #[cfg(not(feature = "Win32_Foundation"))] usize,
12702     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filepath: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
12703     #[cfg(not(feature = "Win32_Foundation"))] usize,
12704 );
12705 #[repr(transparent)]
12706 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12707 pub struct IDWriteGdiInterop(::windows::runtime::IUnknown);
12708 impl IDWriteGdiInterop {
12709     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateFontFromLOGFONT(&self, logfont: *const super::Gdi::LOGFONTW) -> ::windows::runtime::Result<IDWriteFont>12710     pub unsafe fn CreateFontFromLOGFONT(&self, logfont: *const super::Gdi::LOGFONTW) -> ::windows::runtime::Result<IDWriteFont> {
12711         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12712         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(logfont), &mut result__).from_abi::<IDWriteFont>(result__)
12713     }
12714     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
ConvertFontToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0, logfont: *mut super::Gdi::LOGFONTW, issystemfont: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>12715     pub unsafe fn ConvertFontToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0, logfont: *mut super::Gdi::LOGFONTW, issystemfont: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
12716         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), font.into_param().abi(), ::std::mem::transmute(logfont), ::std::mem::transmute(issystemfont)).ok()
12717     }
12718     #[cfg(feature = "Win32_Graphics_Gdi")]
ConvertFontFaceToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, font: Param0) -> ::windows::runtime::Result<super::Gdi::LOGFONTW>12719     pub unsafe fn ConvertFontFaceToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, font: Param0) -> ::windows::runtime::Result<super::Gdi::LOGFONTW> {
12720         let mut result__: <super::Gdi::LOGFONTW as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12721         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), font.into_param().abi(), &mut result__).from_abi::<super::Gdi::LOGFONTW>(result__)
12722     }
12723     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateFontFaceFromHdc<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0) -> ::windows::runtime::Result<IDWriteFontFace>12724     pub unsafe fn CreateFontFaceFromHdc<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0) -> ::windows::runtime::Result<IDWriteFontFace> {
12725         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12726         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), hdc.into_param().abi(), &mut result__).from_abi::<IDWriteFontFace>(result__)
12727     }
12728     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateBitmapRenderTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0, width: u32, height: u32) -> ::windows::runtime::Result<IDWriteBitmapRenderTarget>12729     pub unsafe fn CreateBitmapRenderTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0, width: u32, height: u32) -> ::windows::runtime::Result<IDWriteBitmapRenderTarget> {
12730         let mut result__: <IDWriteBitmapRenderTarget as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12731         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), hdc.into_param().abi(), ::std::mem::transmute(width), ::std::mem::transmute(height), &mut result__).from_abi::<IDWriteBitmapRenderTarget>(result__)
12732     }
12733 }
12734 unsafe impl ::windows::runtime::Interface for IDWriteGdiInterop {
12735     type Vtable = IDWriteGdiInterop_abi;
12736     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(517837969, 38995, 17049, [137, 143, 100, 50, 152, 59, 111, 58]);
12737 }
12738 impl ::std::convert::From<IDWriteGdiInterop> for ::windows::runtime::IUnknown {
from(value: IDWriteGdiInterop) -> Self12739     fn from(value: IDWriteGdiInterop) -> Self {
12740         unsafe { ::std::mem::transmute(value) }
12741     }
12742 }
12743 impl ::std::convert::From<&IDWriteGdiInterop> for ::windows::runtime::IUnknown {
from(value: &IDWriteGdiInterop) -> Self12744     fn from(value: &IDWriteGdiInterop) -> Self {
12745         ::std::convert::From::from(::std::clone::Clone::clone(value))
12746     }
12747 }
12748 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteGdiInterop {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12749     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12750         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12751     }
12752 }
12753 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteGdiInterop {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12754     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12755         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12756     }
12757 }
12758 #[repr(C)]
12759 #[doc(hidden)]
12760 pub struct IDWriteGdiInterop_abi(
12761     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12764     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, logfont: *const super::Gdi::LOGFONTW, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12765     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12766     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, font: ::windows::runtime::RawPtr, logfont: *mut super::Gdi::LOGFONTW, issystemfont: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
12767     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
12768     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, font: ::windows::runtime::RawPtr, logfont: *mut super::Gdi::LOGFONTW) -> ::windows::runtime::HRESULT,
12769     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12770     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hdc: super::Gdi::HDC, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12771     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12772     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hdc: super::Gdi::HDC, width: u32, height: u32, rendertarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12773     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12774 );
12775 #[repr(transparent)]
12776 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12777 pub struct IDWriteGdiInterop1(::windows::runtime::IUnknown);
12778 impl IDWriteGdiInterop1 {
12779     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateFontFromLOGFONT(&self, logfont: *const super::Gdi::LOGFONTW) -> ::windows::runtime::Result<IDWriteFont>12780     pub unsafe fn CreateFontFromLOGFONT(&self, logfont: *const super::Gdi::LOGFONTW) -> ::windows::runtime::Result<IDWriteFont> {
12781         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12782         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(logfont), &mut result__).from_abi::<IDWriteFont>(result__)
12783     }
12784     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
ConvertFontToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0, logfont: *mut super::Gdi::LOGFONTW, issystemfont: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>12785     pub unsafe fn ConvertFontToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0, logfont: *mut super::Gdi::LOGFONTW, issystemfont: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
12786         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), font.into_param().abi(), ::std::mem::transmute(logfont), ::std::mem::transmute(issystemfont)).ok()
12787     }
12788     #[cfg(feature = "Win32_Graphics_Gdi")]
ConvertFontFaceToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, font: Param0) -> ::windows::runtime::Result<super::Gdi::LOGFONTW>12789     pub unsafe fn ConvertFontFaceToLOGFONT<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, font: Param0) -> ::windows::runtime::Result<super::Gdi::LOGFONTW> {
12790         let mut result__: <super::Gdi::LOGFONTW as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12791         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), font.into_param().abi(), &mut result__).from_abi::<super::Gdi::LOGFONTW>(result__)
12792     }
12793     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateFontFaceFromHdc<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0) -> ::windows::runtime::Result<IDWriteFontFace>12794     pub unsafe fn CreateFontFaceFromHdc<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0) -> ::windows::runtime::Result<IDWriteFontFace> {
12795         let mut result__: <IDWriteFontFace as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12796         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), hdc.into_param().abi(), &mut result__).from_abi::<IDWriteFontFace>(result__)
12797     }
12798     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateBitmapRenderTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0, width: u32, height: u32) -> ::windows::runtime::Result<IDWriteBitmapRenderTarget>12799     pub unsafe fn CreateBitmapRenderTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::Gdi::HDC>>(&self, hdc: Param0, width: u32, height: u32) -> ::windows::runtime::Result<IDWriteBitmapRenderTarget> {
12800         let mut result__: <IDWriteBitmapRenderTarget as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12801         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), hdc.into_param().abi(), ::std::mem::transmute(width), ::std::mem::transmute(height), &mut result__).from_abi::<IDWriteBitmapRenderTarget>(result__)
12802     }
12803     #[cfg(feature = "Win32_Graphics_Gdi")]
CreateFontFromLOGFONT2<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>>(&self, logfont: *const super::Gdi::LOGFONTW, fontcollection: Param1) -> ::windows::runtime::Result<IDWriteFont>12804     pub unsafe fn CreateFontFromLOGFONT2<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>>(&self, logfont: *const super::Gdi::LOGFONTW, fontcollection: Param1) -> ::windows::runtime::Result<IDWriteFont> {
12805         let mut result__: <IDWriteFont as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12806         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(logfont), fontcollection.into_param().abi(), &mut result__).from_abi::<IDWriteFont>(result__)
12807     }
12808     #[cfg(feature = "Win32_Globalization")]
GetFontSignature<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<super::super::Globalization::FONTSIGNATURE>12809     pub unsafe fn GetFontSignature<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, fontface: Param0) -> ::windows::runtime::Result<super::super::Globalization::FONTSIGNATURE> {
12810         let mut result__: <super::super::Globalization::FONTSIGNATURE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12811         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), fontface.into_param().abi(), &mut result__).from_abi::<super::super::Globalization::FONTSIGNATURE>(result__)
12812     }
12813     #[cfg(feature = "Win32_Globalization")]
GetFontSignature2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0) -> ::windows::runtime::Result<super::super::Globalization::FONTSIGNATURE>12814     pub unsafe fn GetFontSignature2<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFont>>(&self, font: Param0) -> ::windows::runtime::Result<super::super::Globalization::FONTSIGNATURE> {
12815         let mut result__: <super::super::Globalization::FONTSIGNATURE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12816         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), font.into_param().abi(), &mut result__).from_abi::<super::super::Globalization::FONTSIGNATURE>(result__)
12817     }
12818     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
GetMatchingFontsByLOGFONT<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, logfont: *const super::Gdi::LOGFONTA, fontset: Param1) -> ::windows::runtime::Result<IDWriteFontSet>12819     pub unsafe fn GetMatchingFontsByLOGFONT<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteFontSet>>(&self, logfont: *const super::Gdi::LOGFONTA, fontset: Param1) -> ::windows::runtime::Result<IDWriteFontSet> {
12820         let mut result__: <IDWriteFontSet as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12821         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(logfont), fontset.into_param().abi(), &mut result__).from_abi::<IDWriteFontSet>(result__)
12822     }
12823 }
12824 unsafe impl ::windows::runtime::Interface for IDWriteGdiInterop1 {
12825     type Vtable = IDWriteGdiInterop1_abi;
12826     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1163312752, 15037, 20336, [144, 190, 66, 23, 128, 166, 245, 21]);
12827 }
12828 impl ::std::convert::From<IDWriteGdiInterop1> for ::windows::runtime::IUnknown {
from(value: IDWriteGdiInterop1) -> Self12829     fn from(value: IDWriteGdiInterop1) -> Self {
12830         unsafe { ::std::mem::transmute(value) }
12831     }
12832 }
12833 impl ::std::convert::From<&IDWriteGdiInterop1> for ::windows::runtime::IUnknown {
from(value: &IDWriteGdiInterop1) -> Self12834     fn from(value: &IDWriteGdiInterop1) -> Self {
12835         ::std::convert::From::from(::std::clone::Clone::clone(value))
12836     }
12837 }
12838 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteGdiInterop1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12839     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12840         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12841     }
12842 }
12843 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteGdiInterop1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12844     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12845         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12846     }
12847 }
12848 impl ::std::convert::From<IDWriteGdiInterop1> for IDWriteGdiInterop {
from(value: IDWriteGdiInterop1) -> Self12849     fn from(value: IDWriteGdiInterop1) -> Self {
12850         unsafe { ::std::mem::transmute(value) }
12851     }
12852 }
12853 impl ::std::convert::From<&IDWriteGdiInterop1> for IDWriteGdiInterop {
from(value: &IDWriteGdiInterop1) -> Self12854     fn from(value: &IDWriteGdiInterop1) -> Self {
12855         ::std::convert::From::from(::std::clone::Clone::clone(value))
12856     }
12857 }
12858 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteGdiInterop> for IDWriteGdiInterop1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteGdiInterop>12859     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteGdiInterop> {
12860         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteGdiInterop>::into(self))
12861     }
12862 }
12863 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteGdiInterop> for &IDWriteGdiInterop1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteGdiInterop>12864     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteGdiInterop> {
12865         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteGdiInterop>::into(::std::clone::Clone::clone(self)))
12866     }
12867 }
12868 #[repr(C)]
12869 #[doc(hidden)]
12870 pub struct IDWriteGdiInterop1_abi(
12871     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12872     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12873     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12874     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, logfont: *const super::Gdi::LOGFONTW, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12875     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12876     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, font: ::windows::runtime::RawPtr, logfont: *mut super::Gdi::LOGFONTW, issystemfont: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
12877     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
12878     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, font: ::windows::runtime::RawPtr, logfont: *mut super::Gdi::LOGFONTW) -> ::windows::runtime::HRESULT,
12879     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12880     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hdc: super::Gdi::HDC, fontface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12881     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12882     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hdc: super::Gdi::HDC, width: u32, height: u32, rendertarget: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12883     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12884     #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, logfont: *const super::Gdi::LOGFONTW, fontcollection: ::windows::runtime::RawPtr, font: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12885     #[cfg(not(feature = "Win32_Graphics_Gdi"))] usize,
12886     #[cfg(feature = "Win32_Globalization")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, fontsignature: *mut super::super::Globalization::FONTSIGNATURE) -> ::windows::runtime::HRESULT,
12887     #[cfg(not(feature = "Win32_Globalization"))] usize,
12888     #[cfg(feature = "Win32_Globalization")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, font: ::windows::runtime::RawPtr, fontsignature: *mut super::super::Globalization::FONTSIGNATURE) -> ::windows::runtime::HRESULT,
12889     #[cfg(not(feature = "Win32_Globalization"))] usize,
12890     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, logfont: *const super::Gdi::LOGFONTA, fontset: ::windows::runtime::RawPtr, filteredset: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12891     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
12892 );
12893 #[repr(transparent)]
12894 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12895 pub struct IDWriteGlyphRunAnalysis(::windows::runtime::IUnknown);
12896 impl IDWriteGlyphRunAnalysis {
12897     #[cfg(feature = "Win32_Foundation")]
GetAlphaTextureBounds(&self, texturetype: DWRITE_TEXTURE_TYPE) -> ::windows::runtime::Result<super::super::Foundation::RECT>12898     pub unsafe fn GetAlphaTextureBounds(&self, texturetype: DWRITE_TEXTURE_TYPE) -> ::windows::runtime::Result<super::super::Foundation::RECT> {
12899         let mut result__: <super::super::Foundation::RECT as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12900         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(texturetype), &mut result__).from_abi::<super::super::Foundation::RECT>(result__)
12901     }
12902     #[cfg(feature = "Win32_Foundation")]
CreateAlphaTexture(&self, texturetype: DWRITE_TEXTURE_TYPE, texturebounds: *const super::super::Foundation::RECT, alphavalues: *mut u8, buffersize: u32) -> ::windows::runtime::Result<()>12903     pub unsafe fn CreateAlphaTexture(&self, texturetype: DWRITE_TEXTURE_TYPE, texturebounds: *const super::super::Foundation::RECT, alphavalues: *mut u8, buffersize: u32) -> ::windows::runtime::Result<()> {
12904         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(texturetype), ::std::mem::transmute(texturebounds), ::std::mem::transmute(alphavalues), ::std::mem::transmute(buffersize)).ok()
12905     }
GetAlphaBlendParams<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, renderingparams: Param0, blendgamma: *mut f32, blendenhancedcontrast: *mut f32, blendcleartypelevel: *mut f32) -> ::windows::runtime::Result<()>12906     pub unsafe fn GetAlphaBlendParams<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteRenderingParams>>(&self, renderingparams: Param0, blendgamma: *mut f32, blendenhancedcontrast: *mut f32, blendcleartypelevel: *mut f32) -> ::windows::runtime::Result<()> {
12907         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), renderingparams.into_param().abi(), ::std::mem::transmute(blendgamma), ::std::mem::transmute(blendenhancedcontrast), ::std::mem::transmute(blendcleartypelevel)).ok()
12908     }
12909 }
12910 unsafe impl ::windows::runtime::Interface for IDWriteGlyphRunAnalysis {
12911     type Vtable = IDWriteGlyphRunAnalysis_abi;
12912     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2107104247, 57477, 17108, [129, 227, 106, 136, 59, 222, 209, 24]);
12913 }
12914 impl ::std::convert::From<IDWriteGlyphRunAnalysis> for ::windows::runtime::IUnknown {
from(value: IDWriteGlyphRunAnalysis) -> Self12915     fn from(value: IDWriteGlyphRunAnalysis) -> Self {
12916         unsafe { ::std::mem::transmute(value) }
12917     }
12918 }
12919 impl ::std::convert::From<&IDWriteGlyphRunAnalysis> for ::windows::runtime::IUnknown {
from(value: &IDWriteGlyphRunAnalysis) -> Self12920     fn from(value: &IDWriteGlyphRunAnalysis) -> Self {
12921         ::std::convert::From::from(::std::clone::Clone::clone(value))
12922     }
12923 }
12924 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteGlyphRunAnalysis {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12925     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12926         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12927     }
12928 }
12929 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteGlyphRunAnalysis {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12930     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12931         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12932     }
12933 }
12934 #[repr(C)]
12935 #[doc(hidden)]
12936 pub struct IDWriteGlyphRunAnalysis_abi(
12937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
12938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
12940     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, texturetype: DWRITE_TEXTURE_TYPE, texturebounds: *mut super::super::Foundation::RECT) -> ::windows::runtime::HRESULT,
12941     #[cfg(not(feature = "Win32_Foundation"))] usize,
12942     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, texturetype: DWRITE_TEXTURE_TYPE, texturebounds: *const super::super::Foundation::RECT, alphavalues: *mut u8, buffersize: u32) -> ::windows::runtime::HRESULT,
12943     #[cfg(not(feature = "Win32_Foundation"))] usize,
12944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, renderingparams: ::windows::runtime::RawPtr, blendgamma: *mut f32, blendenhancedcontrast: *mut f32, blendcleartypelevel: *mut f32) -> ::windows::runtime::HRESULT,
12945 );
12946 #[repr(transparent)]
12947 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
12948 pub struct IDWriteInMemoryFontFileLoader(::windows::runtime::IUnknown);
12949 impl IDWriteInMemoryFontFileLoader {
CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>12950     pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
12951         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12952         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
12953     }
CreateInMemoryFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFactory>, Param3: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, factory: Param0, fontdata: *const ::std::ffi::c_void, fontdatasize: u32, ownerobject: Param3) -> ::windows::runtime::Result<IDWriteFontFile>12954     pub unsafe fn CreateInMemoryFontFileReference<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFactory>, Param3: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, factory: Param0, fontdata: *const ::std::ffi::c_void, fontdatasize: u32, ownerobject: Param3) -> ::windows::runtime::Result<IDWriteFontFile> {
12955         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
12956         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), factory.into_param().abi(), ::std::mem::transmute(fontdata), ::std::mem::transmute(fontdatasize), ownerobject.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
12957     }
GetFileCount(&self) -> u3212958     pub unsafe fn GetFileCount(&self) -> u32 {
12959         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
12960     }
12961 }
12962 unsafe impl ::windows::runtime::Interface for IDWriteInMemoryFontFileLoader {
12963     type Vtable = IDWriteInMemoryFontFileLoader_abi;
12964     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3692048199, 41261, 19228, [130, 45, 158, 17, 126, 51, 4, 63]);
12965 }
12966 impl ::std::convert::From<IDWriteInMemoryFontFileLoader> for ::windows::runtime::IUnknown {
from(value: IDWriteInMemoryFontFileLoader) -> Self12967     fn from(value: IDWriteInMemoryFontFileLoader) -> Self {
12968         unsafe { ::std::mem::transmute(value) }
12969     }
12970 }
12971 impl ::std::convert::From<&IDWriteInMemoryFontFileLoader> for ::windows::runtime::IUnknown {
from(value: &IDWriteInMemoryFontFileLoader) -> Self12972     fn from(value: &IDWriteInMemoryFontFileLoader) -> Self {
12973         ::std::convert::From::from(::std::clone::Clone::clone(value))
12974     }
12975 }
12976 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteInMemoryFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12977     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12978         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
12979     }
12980 }
12981 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteInMemoryFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>12982     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
12983         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
12984     }
12985 }
12986 impl ::std::convert::From<IDWriteInMemoryFontFileLoader> for IDWriteFontFileLoader {
from(value: IDWriteInMemoryFontFileLoader) -> Self12987     fn from(value: IDWriteInMemoryFontFileLoader) -> Self {
12988         unsafe { ::std::mem::transmute(value) }
12989     }
12990 }
12991 impl ::std::convert::From<&IDWriteInMemoryFontFileLoader> for IDWriteFontFileLoader {
from(value: &IDWriteInMemoryFontFileLoader) -> Self12992     fn from(value: &IDWriteInMemoryFontFileLoader) -> Self {
12993         ::std::convert::From::from(::std::clone::Clone::clone(value))
12994     }
12995 }
12996 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader> for IDWriteInMemoryFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader>12997     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader> {
12998         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileLoader>::into(self))
12999     }
13000 }
13001 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader> for &IDWriteInMemoryFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader>13002     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader> {
13003         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileLoader>::into(::std::clone::Clone::clone(self)))
13004     }
13005 }
13006 #[repr(C)]
13007 #[doc(hidden)]
13008 pub struct IDWriteInMemoryFontFileLoader_abi(
13009     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13010     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13011     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13012     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfilestream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13013     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, factory: ::windows::runtime::RawPtr, fontdata: *const ::std::ffi::c_void, fontdatasize: u32, ownerobject: ::windows::runtime::RawPtr, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13014     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13015 );
13016 #[repr(transparent)]
13017 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13018 pub struct IDWriteInlineObject(::windows::runtime::IUnknown);
13019 impl IDWriteInlineObject {
13020     #[cfg(feature = "Win32_Foundation")]
Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>( &self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32, issideways: Param4, isrighttoleft: Param5, clientdrawingeffect: Param6, ) -> ::windows::runtime::Result<()>13021     pub unsafe fn Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(
13022         &self,
13023         clientdrawingcontext: *const ::std::ffi::c_void,
13024         renderer: Param1,
13025         originx: f32,
13026         originy: f32,
13027         issideways: Param4,
13028         isrighttoleft: Param5,
13029         clientdrawingeffect: Param6,
13030     ) -> ::windows::runtime::Result<()> {
13031         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), renderer.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy), issideways.into_param().abi(), isrighttoleft.into_param().abi(), clientdrawingeffect.into_param().abi()).ok()
13032     }
13033     #[cfg(feature = "Win32_Foundation")]
GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_INLINE_OBJECT_METRICS>13034     pub unsafe fn GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_INLINE_OBJECT_METRICS> {
13035         let mut result__: <DWRITE_INLINE_OBJECT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13036         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_INLINE_OBJECT_METRICS>(result__)
13037     }
GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS>13038     pub unsafe fn GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS> {
13039         let mut result__: <DWRITE_OVERHANG_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13040         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_OVERHANG_METRICS>(result__)
13041     }
GetBreakConditions(&self, breakconditionbefore: *mut DWRITE_BREAK_CONDITION, breakconditionafter: *mut DWRITE_BREAK_CONDITION) -> ::windows::runtime::Result<()>13042     pub unsafe fn GetBreakConditions(&self, breakconditionbefore: *mut DWRITE_BREAK_CONDITION, breakconditionafter: *mut DWRITE_BREAK_CONDITION) -> ::windows::runtime::Result<()> {
13043         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(breakconditionbefore), ::std::mem::transmute(breakconditionafter)).ok()
13044     }
13045 }
13046 unsafe impl ::windows::runtime::Interface for IDWriteInlineObject {
13047     type Vtable = IDWriteInlineObject_abi;
13048     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2201615843, 4207, 18347, [131, 115, 28, 98, 149, 235, 16, 179]);
13049 }
13050 impl ::std::convert::From<IDWriteInlineObject> for ::windows::runtime::IUnknown {
from(value: IDWriteInlineObject) -> Self13051     fn from(value: IDWriteInlineObject) -> Self {
13052         unsafe { ::std::mem::transmute(value) }
13053     }
13054 }
13055 impl ::std::convert::From<&IDWriteInlineObject> for ::windows::runtime::IUnknown {
from(value: &IDWriteInlineObject) -> Self13056     fn from(value: &IDWriteInlineObject) -> Self {
13057         ::std::convert::From::from(::std::clone::Clone::clone(value))
13058     }
13059 }
13060 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteInlineObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13061     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13062         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13063     }
13064 }
13065 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteInlineObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13066     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13067         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13068     }
13069 }
13070 #[repr(C)]
13071 #[doc(hidden)]
13072 pub struct IDWriteInlineObject_abi(
13073     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13074     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13075     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13076     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, renderer: ::windows::runtime::RawPtr, originx: f32, originy: f32, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13077     #[cfg(not(feature = "Win32_Foundation"))] usize,
13078     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, metrics: *mut DWRITE_INLINE_OBJECT_METRICS) -> ::windows::runtime::HRESULT,
13079     #[cfg(not(feature = "Win32_Foundation"))] usize,
13080     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, overhangs: *mut DWRITE_OVERHANG_METRICS) -> ::windows::runtime::HRESULT,
13081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, breakconditionbefore: *mut DWRITE_BREAK_CONDITION, breakconditionafter: *mut DWRITE_BREAK_CONDITION) -> ::windows::runtime::HRESULT,
13082 );
13083 #[repr(transparent)]
13084 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13085 pub struct IDWriteLocalFontFileLoader(::windows::runtime::IUnknown);
13086 impl IDWriteLocalFontFileLoader {
CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>13087     pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
13088         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13089         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
13090     }
GetFilePathLengthFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<u32>13091     pub unsafe fn GetFilePathLengthFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<u32> {
13092         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13093         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<u32>(result__)
13094     }
13095     #[cfg(feature = "Win32_Foundation")]
GetFilePathFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, filepath: super::super::Foundation::PWSTR, filepathsize: u32) -> ::windows::runtime::Result<()>13096     pub unsafe fn GetFilePathFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, filepath: super::super::Foundation::PWSTR, filepathsize: u32) -> ::windows::runtime::Result<()> {
13097         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), ::std::mem::transmute(filepath), ::std::mem::transmute(filepathsize)).ok()
13098     }
13099     #[cfg(feature = "Win32_Foundation")]
GetLastWriteTimeFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<super::super::Foundation::FILETIME>13100     pub unsafe fn GetLastWriteTimeFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<super::super::Foundation::FILETIME> {
13101         let mut result__: <super::super::Foundation::FILETIME as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13102         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<super::super::Foundation::FILETIME>(result__)
13103     }
13104 }
13105 unsafe impl ::windows::runtime::Interface for IDWriteLocalFontFileLoader {
13106     type Vtable = IDWriteLocalFontFileLoader_abi;
13107     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3000628204, 51710, 18961, [162, 236, 216, 98, 8, 247, 192, 162]);
13108 }
13109 impl ::std::convert::From<IDWriteLocalFontFileLoader> for ::windows::runtime::IUnknown {
from(value: IDWriteLocalFontFileLoader) -> Self13110     fn from(value: IDWriteLocalFontFileLoader) -> Self {
13111         unsafe { ::std::mem::transmute(value) }
13112     }
13113 }
13114 impl ::std::convert::From<&IDWriteLocalFontFileLoader> for ::windows::runtime::IUnknown {
from(value: &IDWriteLocalFontFileLoader) -> Self13115     fn from(value: &IDWriteLocalFontFileLoader) -> Self {
13116         ::std::convert::From::from(::std::clone::Clone::clone(value))
13117     }
13118 }
13119 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteLocalFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13120     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13121         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13122     }
13123 }
13124 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteLocalFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13125     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13126         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13127     }
13128 }
13129 impl ::std::convert::From<IDWriteLocalFontFileLoader> for IDWriteFontFileLoader {
from(value: IDWriteLocalFontFileLoader) -> Self13130     fn from(value: IDWriteLocalFontFileLoader) -> Self {
13131         unsafe { ::std::mem::transmute(value) }
13132     }
13133 }
13134 impl ::std::convert::From<&IDWriteLocalFontFileLoader> for IDWriteFontFileLoader {
from(value: &IDWriteLocalFontFileLoader) -> Self13135     fn from(value: &IDWriteLocalFontFileLoader) -> Self {
13136         ::std::convert::From::from(::std::clone::Clone::clone(value))
13137     }
13138 }
13139 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader> for IDWriteLocalFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader>13140     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader> {
13141         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileLoader>::into(self))
13142     }
13143 }
13144 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader> for &IDWriteLocalFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader>13145     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader> {
13146         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileLoader>::into(::std::clone::Clone::clone(self)))
13147     }
13148 }
13149 #[repr(C)]
13150 #[doc(hidden)]
13151 pub struct IDWriteLocalFontFileLoader_abi(
13152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfilestream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, filepathlength: *mut u32) -> ::windows::runtime::HRESULT,
13157     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, filepath: super::super::Foundation::PWSTR, filepathsize: u32) -> ::windows::runtime::HRESULT,
13158     #[cfg(not(feature = "Win32_Foundation"))] usize,
13159     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, lastwritetime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
13160     #[cfg(not(feature = "Win32_Foundation"))] usize,
13161 );
13162 #[repr(transparent)]
13163 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13164 pub struct IDWriteLocalizedStrings(::windows::runtime::IUnknown);
13165 impl IDWriteLocalizedStrings {
GetCount(&self) -> u3213166     pub unsafe fn GetCount(&self) -> u32 {
13167         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
13168     }
13169     #[cfg(feature = "Win32_Foundation")]
FindLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, localename: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>13170     pub unsafe fn FindLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, localename: Param0, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
13171         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), localename.into_param().abi(), ::std::mem::transmute(index), ::std::mem::transmute(exists)).ok()
13172     }
GetLocaleNameLength(&self, index: u32) -> ::windows::runtime::Result<u32>13173     pub unsafe fn GetLocaleNameLength(&self, index: u32) -> ::windows::runtime::Result<u32> {
13174         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13175         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<u32>(result__)
13176     }
13177     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, index: u32, localename: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::Result<()>13178     pub unsafe fn GetLocaleName(&self, index: u32, localename: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::Result<()> {
13179         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), ::std::mem::transmute(localename), ::std::mem::transmute(size)).ok()
13180     }
GetStringLength(&self, index: u32) -> ::windows::runtime::Result<u32>13181     pub unsafe fn GetStringLength(&self, index: u32) -> ::windows::runtime::Result<u32> {
13182         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13183         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), &mut result__).from_abi::<u32>(result__)
13184     }
13185     #[cfg(feature = "Win32_Foundation")]
GetString(&self, index: u32, stringbuffer: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::Result<()>13186     pub unsafe fn GetString(&self, index: u32, stringbuffer: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::Result<()> {
13187         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(index), ::std::mem::transmute(stringbuffer), ::std::mem::transmute(size)).ok()
13188     }
13189 }
13190 unsafe impl ::windows::runtime::Interface for IDWriteLocalizedStrings {
13191     type Vtable = IDWriteLocalizedStrings_abi;
13192     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(136667657, 2458, 19252, [184, 109, 194, 43, 17, 14, 119, 113]);
13193 }
13194 impl ::std::convert::From<IDWriteLocalizedStrings> for ::windows::runtime::IUnknown {
from(value: IDWriteLocalizedStrings) -> Self13195     fn from(value: IDWriteLocalizedStrings) -> Self {
13196         unsafe { ::std::mem::transmute(value) }
13197     }
13198 }
13199 impl ::std::convert::From<&IDWriteLocalizedStrings> for ::windows::runtime::IUnknown {
from(value: &IDWriteLocalizedStrings) -> Self13200     fn from(value: &IDWriteLocalizedStrings) -> Self {
13201         ::std::convert::From::from(::std::clone::Clone::clone(value))
13202     }
13203 }
13204 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteLocalizedStrings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13205     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13206         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13207     }
13208 }
13209 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteLocalizedStrings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13210     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13211         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13212     }
13213 }
13214 #[repr(C)]
13215 #[doc(hidden)]
13216 pub struct IDWriteLocalizedStrings_abi(
13217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13219     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13220     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13221     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, index: *mut u32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
13222     #[cfg(not(feature = "Win32_Foundation"))] usize,
13223     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, length: *mut u32) -> ::windows::runtime::HRESULT,
13224     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, localename: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::HRESULT,
13225     #[cfg(not(feature = "Win32_Foundation"))] usize,
13226     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, length: *mut u32) -> ::windows::runtime::HRESULT,
13227     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, index: u32, stringbuffer: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::HRESULT,
13228     #[cfg(not(feature = "Win32_Foundation"))] usize,
13229 );
13230 #[repr(transparent)]
13231 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13232 pub struct IDWriteNumberSubstitution(::windows::runtime::IUnknown);
13233 impl IDWriteNumberSubstitution {}
13234 unsafe impl ::windows::runtime::Interface for IDWriteNumberSubstitution {
13235     type Vtable = IDWriteNumberSubstitution_abi;
13236     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(344480969, 47792, 20368, [182, 237, 92, 54, 106, 44, 208, 61]);
13237 }
13238 impl ::std::convert::From<IDWriteNumberSubstitution> for ::windows::runtime::IUnknown {
from(value: IDWriteNumberSubstitution) -> Self13239     fn from(value: IDWriteNumberSubstitution) -> Self {
13240         unsafe { ::std::mem::transmute(value) }
13241     }
13242 }
13243 impl ::std::convert::From<&IDWriteNumberSubstitution> for ::windows::runtime::IUnknown {
from(value: &IDWriteNumberSubstitution) -> Self13244     fn from(value: &IDWriteNumberSubstitution) -> Self {
13245         ::std::convert::From::from(::std::clone::Clone::clone(value))
13246     }
13247 }
13248 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteNumberSubstitution {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13249     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13250         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13251     }
13252 }
13253 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteNumberSubstitution {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13254     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13255         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13256     }
13257 }
13258 #[repr(C)]
13259 #[doc(hidden)]
13260 pub struct IDWriteNumberSubstitution_abi(
13261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13262     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13264 );
13265 #[repr(transparent)]
13266 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13267 pub struct IDWritePixelSnapping(::windows::runtime::IUnknown);
13268 impl IDWritePixelSnapping {
13269     #[cfg(feature = "Win32_Foundation")]
IsPixelSnappingDisabled(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<super::super::Foundation::BOOL>13270     pub unsafe fn IsPixelSnappingDisabled(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
13271         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13272         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
13273     }
GetCurrentTransform(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<DWRITE_MATRIX>13274     pub unsafe fn GetCurrentTransform(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<DWRITE_MATRIX> {
13275         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13276         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
13277     }
GetPixelsPerDip(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<f32>13278     pub unsafe fn GetPixelsPerDip(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<f32> {
13279         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13280         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<f32>(result__)
13281     }
13282 }
13283 unsafe impl ::windows::runtime::Interface for IDWritePixelSnapping {
13284     type Vtable = IDWritePixelSnapping_abi;
13285     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3941835482, 60660, 19748, [182, 68, 179, 79, 104, 66, 2, 75]);
13286 }
13287 impl ::std::convert::From<IDWritePixelSnapping> for ::windows::runtime::IUnknown {
from(value: IDWritePixelSnapping) -> Self13288     fn from(value: IDWritePixelSnapping) -> Self {
13289         unsafe { ::std::mem::transmute(value) }
13290     }
13291 }
13292 impl ::std::convert::From<&IDWritePixelSnapping> for ::windows::runtime::IUnknown {
from(value: &IDWritePixelSnapping) -> Self13293     fn from(value: &IDWritePixelSnapping) -> Self {
13294         ::std::convert::From::from(::std::clone::Clone::clone(value))
13295     }
13296 }
13297 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWritePixelSnapping {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13298     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13299         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13300     }
13301 }
13302 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWritePixelSnapping {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13303     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13304         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13305     }
13306 }
13307 #[repr(C)]
13308 #[doc(hidden)]
13309 pub struct IDWritePixelSnapping_abi(
13310     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13313     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, isdisabled: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
13314     #[cfg(not(feature = "Win32_Foundation"))] usize,
13315     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
13316     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, pixelsperdip: *mut f32) -> ::windows::runtime::HRESULT,
13317 );
13318 #[repr(transparent)]
13319 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13320 pub struct IDWriteRemoteFontFileLoader(::windows::runtime::IUnknown);
13321 impl IDWriteRemoteFontFileLoader {
CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream>13322     pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteFontFileStream> {
13323         let mut result__: <IDWriteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13324         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<IDWriteFontFileStream>(result__)
13325     }
CreateRemoteStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteRemoteFontFileStream>13326     pub unsafe fn CreateRemoteStreamFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<IDWriteRemoteFontFileStream> {
13327         let mut result__: <IDWriteRemoteFontFileStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13328         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<IDWriteRemoteFontFileStream>(result__)
13329     }
GetLocalityFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<DWRITE_LOCALITY>13330     pub unsafe fn GetLocalityFromKey(&self, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::runtime::Result<DWRITE_LOCALITY> {
13331         let mut result__: <DWRITE_LOCALITY as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13332         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfilereferencekey), ::std::mem::transmute(fontfilereferencekeysize), &mut result__).from_abi::<DWRITE_LOCALITY>(result__)
13333     }
13334     #[cfg(feature = "Win32_Foundation")]
CreateFontFileReferenceFromUrl<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFactory>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, factory: Param0, baseurl: Param1, fontfileurl: Param2) -> ::windows::runtime::Result<IDWriteFontFile>13335     pub unsafe fn CreateFontFileReferenceFromUrl<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFactory>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, factory: Param0, baseurl: Param1, fontfileurl: Param2) -> ::windows::runtime::Result<IDWriteFontFile> {
13336         let mut result__: <IDWriteFontFile as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13337         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), factory.into_param().abi(), baseurl.into_param().abi(), fontfileurl.into_param().abi(), &mut result__).from_abi::<IDWriteFontFile>(result__)
13338     }
13339 }
13340 unsafe impl ::windows::runtime::Interface for IDWriteRemoteFontFileLoader {
13341     type Vtable = IDWriteRemoteFontFileLoader_abi;
13342     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1751420035, 28382, 18112, [171, 70, 32, 8, 58, 136, 127, 222]);
13343 }
13344 impl ::std::convert::From<IDWriteRemoteFontFileLoader> for ::windows::runtime::IUnknown {
from(value: IDWriteRemoteFontFileLoader) -> Self13345     fn from(value: IDWriteRemoteFontFileLoader) -> Self {
13346         unsafe { ::std::mem::transmute(value) }
13347     }
13348 }
13349 impl ::std::convert::From<&IDWriteRemoteFontFileLoader> for ::windows::runtime::IUnknown {
from(value: &IDWriteRemoteFontFileLoader) -> Self13350     fn from(value: &IDWriteRemoteFontFileLoader) -> Self {
13351         ::std::convert::From::from(::std::clone::Clone::clone(value))
13352     }
13353 }
13354 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteRemoteFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13355     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13356         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13357     }
13358 }
13359 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteRemoteFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13360     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13361         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13362     }
13363 }
13364 impl ::std::convert::From<IDWriteRemoteFontFileLoader> for IDWriteFontFileLoader {
from(value: IDWriteRemoteFontFileLoader) -> Self13365     fn from(value: IDWriteRemoteFontFileLoader) -> Self {
13366         unsafe { ::std::mem::transmute(value) }
13367     }
13368 }
13369 impl ::std::convert::From<&IDWriteRemoteFontFileLoader> for IDWriteFontFileLoader {
from(value: &IDWriteRemoteFontFileLoader) -> Self13370     fn from(value: &IDWriteRemoteFontFileLoader) -> Self {
13371         ::std::convert::From::from(::std::clone::Clone::clone(value))
13372     }
13373 }
13374 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader> for IDWriteRemoteFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader>13375     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader> {
13376         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileLoader>::into(self))
13377     }
13378 }
13379 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileLoader> for &IDWriteRemoteFontFileLoader {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader>13380     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileLoader> {
13381         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileLoader>::into(::std::clone::Clone::clone(self)))
13382     }
13383 }
13384 #[repr(C)]
13385 #[doc(hidden)]
13386 pub struct IDWriteRemoteFontFileLoader_abi(
13387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13389     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13390     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfilestream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, fontfilestream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfilereferencekey: *const ::std::ffi::c_void, fontfilereferencekeysize: u32, locality: *mut DWRITE_LOCALITY) -> ::windows::runtime::HRESULT,
13393     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, factory: ::windows::runtime::RawPtr, baseurl: super::super::Foundation::PWSTR, fontfileurl: super::super::Foundation::PWSTR, fontfile: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13394     #[cfg(not(feature = "Win32_Foundation"))] usize,
13395 );
13396 #[repr(transparent)]
13397 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13398 pub struct IDWriteRemoteFontFileStream(::windows::runtime::IUnknown);
13399 impl IDWriteRemoteFontFileStream {
ReadFileFragment(&self, fragmentstart: *mut *mut ::std::ffi::c_void, fileoffset: u64, fragmentsize: u64, fragmentcontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()>13400     pub unsafe fn ReadFileFragment(&self, fragmentstart: *mut *mut ::std::ffi::c_void, fileoffset: u64, fragmentsize: u64, fragmentcontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
13401         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(fragmentstart), ::std::mem::transmute(fileoffset), ::std::mem::transmute(fragmentsize), ::std::mem::transmute(fragmentcontext)).ok()
13402     }
ReleaseFileFragment(&self, fragmentcontext: *mut ::std::ffi::c_void)13403     pub unsafe fn ReleaseFileFragment(&self, fragmentcontext: *mut ::std::ffi::c_void) {
13404         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(fragmentcontext)))
13405     }
GetFileSize(&self) -> ::windows::runtime::Result<u64>13406     pub unsafe fn GetFileSize(&self) -> ::windows::runtime::Result<u64> {
13407         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13408         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u64>(result__)
13409     }
GetLastWriteTime(&self) -> ::windows::runtime::Result<u64>13410     pub unsafe fn GetLastWriteTime(&self) -> ::windows::runtime::Result<u64> {
13411         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13412         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u64>(result__)
13413     }
GetLocalFileSize(&self) -> ::windows::runtime::Result<u64>13414     pub unsafe fn GetLocalFileSize(&self) -> ::windows::runtime::Result<u64> {
13415         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13416         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u64>(result__)
13417     }
13418     #[cfg(feature = "Win32_Foundation")]
GetFileFragmentLocality(&self, fileoffset: u64, fragmentsize: u64, islocal: *mut super::super::Foundation::BOOL, partialsize: *mut u64) -> ::windows::runtime::Result<()>13419     pub unsafe fn GetFileFragmentLocality(&self, fileoffset: u64, fragmentsize: u64, islocal: *mut super::super::Foundation::BOOL, partialsize: *mut u64) -> ::windows::runtime::Result<()> {
13420         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(fileoffset), ::std::mem::transmute(fragmentsize), ::std::mem::transmute(islocal), ::std::mem::transmute(partialsize)).ok()
13421     }
GetLocality(&self) -> DWRITE_LOCALITY13422     pub unsafe fn GetLocality(&self) -> DWRITE_LOCALITY {
13423         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
13424     }
BeginDownload(&self, downloadoperationid: *const ::windows::runtime::GUID, filefragments: *const DWRITE_FILE_FRAGMENT, fragmentcount: u32) -> ::windows::runtime::Result<IDWriteAsyncResult>13425     pub unsafe fn BeginDownload(&self, downloadoperationid: *const ::windows::runtime::GUID, filefragments: *const DWRITE_FILE_FRAGMENT, fragmentcount: u32) -> ::windows::runtime::Result<IDWriteAsyncResult> {
13426         let mut result__: <IDWriteAsyncResult as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13427         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(downloadoperationid), ::std::mem::transmute(filefragments), ::std::mem::transmute(fragmentcount), &mut result__).from_abi::<IDWriteAsyncResult>(result__)
13428     }
13429 }
13430 unsafe impl ::windows::runtime::Interface for IDWriteRemoteFontFileStream {
13431     type Vtable = IDWriteRemoteFontFileStream_abi;
13432     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1303606650, 11378, 20185, [178, 182, 26, 186, 190, 26, 255, 156]);
13433 }
13434 impl ::std::convert::From<IDWriteRemoteFontFileStream> for ::windows::runtime::IUnknown {
from(value: IDWriteRemoteFontFileStream) -> Self13435     fn from(value: IDWriteRemoteFontFileStream) -> Self {
13436         unsafe { ::std::mem::transmute(value) }
13437     }
13438 }
13439 impl ::std::convert::From<&IDWriteRemoteFontFileStream> for ::windows::runtime::IUnknown {
from(value: &IDWriteRemoteFontFileStream) -> Self13440     fn from(value: &IDWriteRemoteFontFileStream) -> Self {
13441         ::std::convert::From::from(::std::clone::Clone::clone(value))
13442     }
13443 }
13444 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteRemoteFontFileStream {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13445     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13446         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13447     }
13448 }
13449 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteRemoteFontFileStream {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13450     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13451         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13452     }
13453 }
13454 impl ::std::convert::From<IDWriteRemoteFontFileStream> for IDWriteFontFileStream {
from(value: IDWriteRemoteFontFileStream) -> Self13455     fn from(value: IDWriteRemoteFontFileStream) -> Self {
13456         unsafe { ::std::mem::transmute(value) }
13457     }
13458 }
13459 impl ::std::convert::From<&IDWriteRemoteFontFileStream> for IDWriteFontFileStream {
from(value: &IDWriteRemoteFontFileStream) -> Self13460     fn from(value: &IDWriteRemoteFontFileStream) -> Self {
13461         ::std::convert::From::from(::std::clone::Clone::clone(value))
13462     }
13463 }
13464 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileStream> for IDWriteRemoteFontFileStream {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileStream>13465     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileStream> {
13466         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileStream>::into(self))
13467     }
13468 }
13469 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteFontFileStream> for &IDWriteRemoteFontFileStream {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileStream>13470     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteFontFileStream> {
13471         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteFontFileStream>::into(::std::clone::Clone::clone(self)))
13472     }
13473 }
13474 #[repr(C)]
13475 #[doc(hidden)]
13476 pub struct IDWriteRemoteFontFileStream_abi(
13477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13480     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fragmentstart: *mut *mut ::std::ffi::c_void, fileoffset: u64, fragmentsize: u64, fragmentcontext: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
13481     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fragmentcontext: *mut ::std::ffi::c_void),
13482     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, filesize: *mut u64) -> ::windows::runtime::HRESULT,
13483     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lastwritetime: *mut u64) -> ::windows::runtime::HRESULT,
13484     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localfilesize: *mut u64) -> ::windows::runtime::HRESULT,
13485     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fileoffset: u64, fragmentsize: u64, islocal: *mut super::super::Foundation::BOOL, partialsize: *mut u64) -> ::windows::runtime::HRESULT,
13486     #[cfg(not(feature = "Win32_Foundation"))] usize,
13487     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_LOCALITY,
13488     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, downloadoperationid: *const ::windows::runtime::GUID, filefragments: *const DWRITE_FILE_FRAGMENT, fragmentcount: u32, asyncresult: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13489 );
13490 #[repr(transparent)]
13491 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13492 pub struct IDWriteRenderingParams(::windows::runtime::IUnknown);
13493 impl IDWriteRenderingParams {
GetGamma(&self) -> f3213494     pub unsafe fn GetGamma(&self) -> f32 {
13495         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
13496     }
GetEnhancedContrast(&self) -> f3213497     pub unsafe fn GetEnhancedContrast(&self) -> f32 {
13498         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
13499     }
GetClearTypeLevel(&self) -> f3213500     pub unsafe fn GetClearTypeLevel(&self) -> f32 {
13501         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
13502     }
GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY13503     pub unsafe fn GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY {
13504         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
13505     }
GetRenderingMode(&self) -> DWRITE_RENDERING_MODE13506     pub unsafe fn GetRenderingMode(&self) -> DWRITE_RENDERING_MODE {
13507         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
13508     }
13509 }
13510 unsafe impl ::windows::runtime::Interface for IDWriteRenderingParams {
13511     type Vtable = IDWriteRenderingParams_abi;
13512     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(789423418, 10973, 18381, [130, 238, 217, 236, 52, 104, 142, 117]);
13513 }
13514 impl ::std::convert::From<IDWriteRenderingParams> for ::windows::runtime::IUnknown {
from(value: IDWriteRenderingParams) -> Self13515     fn from(value: IDWriteRenderingParams) -> Self {
13516         unsafe { ::std::mem::transmute(value) }
13517     }
13518 }
13519 impl ::std::convert::From<&IDWriteRenderingParams> for ::windows::runtime::IUnknown {
from(value: &IDWriteRenderingParams) -> Self13520     fn from(value: &IDWriteRenderingParams) -> Self {
13521         ::std::convert::From::from(::std::clone::Clone::clone(value))
13522     }
13523 }
13524 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteRenderingParams {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13525     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13526         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13527     }
13528 }
13529 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteRenderingParams {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13530     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13531         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13532     }
13533 }
13534 #[repr(C)]
13535 #[doc(hidden)]
13536 pub struct IDWriteRenderingParams_abi(
13537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13539     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13541     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13542     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13543     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PIXEL_GEOMETRY,
13544     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_RENDERING_MODE,
13545 );
13546 #[repr(transparent)]
13547 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13548 pub struct IDWriteRenderingParams1(::windows::runtime::IUnknown);
13549 impl IDWriteRenderingParams1 {
GetGamma(&self) -> f3213550     pub unsafe fn GetGamma(&self) -> f32 {
13551         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
13552     }
GetEnhancedContrast(&self) -> f3213553     pub unsafe fn GetEnhancedContrast(&self) -> f32 {
13554         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
13555     }
GetClearTypeLevel(&self) -> f3213556     pub unsafe fn GetClearTypeLevel(&self) -> f32 {
13557         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
13558     }
GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY13559     pub unsafe fn GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY {
13560         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
13561     }
GetRenderingMode(&self) -> DWRITE_RENDERING_MODE13562     pub unsafe fn GetRenderingMode(&self) -> DWRITE_RENDERING_MODE {
13563         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
13564     }
GetGrayscaleEnhancedContrast(&self) -> f3213565     pub unsafe fn GetGrayscaleEnhancedContrast(&self) -> f32 {
13566         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)))
13567     }
13568 }
13569 unsafe impl ::windows::runtime::Interface for IDWriteRenderingParams1 {
13570     type Vtable = IDWriteRenderingParams1_abi;
13571     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2487303412, 42748, 16968, [139, 80, 102, 116, 52, 143, 202, 211]);
13572 }
13573 impl ::std::convert::From<IDWriteRenderingParams1> for ::windows::runtime::IUnknown {
from(value: IDWriteRenderingParams1) -> Self13574     fn from(value: IDWriteRenderingParams1) -> Self {
13575         unsafe { ::std::mem::transmute(value) }
13576     }
13577 }
13578 impl ::std::convert::From<&IDWriteRenderingParams1> for ::windows::runtime::IUnknown {
from(value: &IDWriteRenderingParams1) -> Self13579     fn from(value: &IDWriteRenderingParams1) -> Self {
13580         ::std::convert::From::from(::std::clone::Clone::clone(value))
13581     }
13582 }
13583 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteRenderingParams1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13584     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13585         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13586     }
13587 }
13588 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteRenderingParams1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13589     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13590         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13591     }
13592 }
13593 impl ::std::convert::From<IDWriteRenderingParams1> for IDWriteRenderingParams {
from(value: IDWriteRenderingParams1) -> Self13594     fn from(value: IDWriteRenderingParams1) -> Self {
13595         unsafe { ::std::mem::transmute(value) }
13596     }
13597 }
13598 impl ::std::convert::From<&IDWriteRenderingParams1> for IDWriteRenderingParams {
from(value: &IDWriteRenderingParams1) -> Self13599     fn from(value: &IDWriteRenderingParams1) -> Self {
13600         ::std::convert::From::from(::std::clone::Clone::clone(value))
13601     }
13602 }
13603 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams> for IDWriteRenderingParams1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams>13604     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams> {
13605         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams>::into(self))
13606     }
13607 }
13608 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams> for &IDWriteRenderingParams1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams>13609     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams> {
13610         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams>::into(::std::clone::Clone::clone(self)))
13611     }
13612 }
13613 #[repr(C)]
13614 #[doc(hidden)]
13615 pub struct IDWriteRenderingParams1_abi(
13616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PIXEL_GEOMETRY,
13623     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_RENDERING_MODE,
13624     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13625 );
13626 #[repr(transparent)]
13627 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13628 pub struct IDWriteRenderingParams2(::windows::runtime::IUnknown);
13629 impl IDWriteRenderingParams2 {
GetGamma(&self) -> f3213630     pub unsafe fn GetGamma(&self) -> f32 {
13631         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
13632     }
GetEnhancedContrast(&self) -> f3213633     pub unsafe fn GetEnhancedContrast(&self) -> f32 {
13634         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
13635     }
GetClearTypeLevel(&self) -> f3213636     pub unsafe fn GetClearTypeLevel(&self) -> f32 {
13637         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
13638     }
GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY13639     pub unsafe fn GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY {
13640         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
13641     }
GetRenderingMode(&self) -> DWRITE_RENDERING_MODE13642     pub unsafe fn GetRenderingMode(&self) -> DWRITE_RENDERING_MODE {
13643         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
13644     }
GetGrayscaleEnhancedContrast(&self) -> f3213645     pub unsafe fn GetGrayscaleEnhancedContrast(&self) -> f32 {
13646         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)))
13647     }
GetGridFitMode(&self) -> DWRITE_GRID_FIT_MODE13648     pub unsafe fn GetGridFitMode(&self) -> DWRITE_GRID_FIT_MODE {
13649         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
13650     }
13651 }
13652 unsafe impl ::windows::runtime::Interface for IDWriteRenderingParams2 {
13653     type Vtable = IDWriteRenderingParams2_abi;
13654     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4191621571, 38775, 16558, [135, 232, 62, 90, 249, 191, 9, 72]);
13655 }
13656 impl ::std::convert::From<IDWriteRenderingParams2> for ::windows::runtime::IUnknown {
from(value: IDWriteRenderingParams2) -> Self13657     fn from(value: IDWriteRenderingParams2) -> Self {
13658         unsafe { ::std::mem::transmute(value) }
13659     }
13660 }
13661 impl ::std::convert::From<&IDWriteRenderingParams2> for ::windows::runtime::IUnknown {
from(value: &IDWriteRenderingParams2) -> Self13662     fn from(value: &IDWriteRenderingParams2) -> Self {
13663         ::std::convert::From::from(::std::clone::Clone::clone(value))
13664     }
13665 }
13666 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteRenderingParams2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13667     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13668         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13669     }
13670 }
13671 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteRenderingParams2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13672     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13673         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13674     }
13675 }
13676 impl ::std::convert::From<IDWriteRenderingParams2> for IDWriteRenderingParams1 {
from(value: IDWriteRenderingParams2) -> Self13677     fn from(value: IDWriteRenderingParams2) -> Self {
13678         unsafe { ::std::mem::transmute(value) }
13679     }
13680 }
13681 impl ::std::convert::From<&IDWriteRenderingParams2> for IDWriteRenderingParams1 {
from(value: &IDWriteRenderingParams2) -> Self13682     fn from(value: &IDWriteRenderingParams2) -> Self {
13683         ::std::convert::From::from(::std::clone::Clone::clone(value))
13684     }
13685 }
13686 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams1> for IDWriteRenderingParams2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1>13687     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1> {
13688         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams1>::into(self))
13689     }
13690 }
13691 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams1> for &IDWriteRenderingParams2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1>13692     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1> {
13693         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams1>::into(::std::clone::Clone::clone(self)))
13694     }
13695 }
13696 impl ::std::convert::From<IDWriteRenderingParams2> for IDWriteRenderingParams {
from(value: IDWriteRenderingParams2) -> Self13697     fn from(value: IDWriteRenderingParams2) -> Self {
13698         unsafe { ::std::mem::transmute(value) }
13699     }
13700 }
13701 impl ::std::convert::From<&IDWriteRenderingParams2> for IDWriteRenderingParams {
from(value: &IDWriteRenderingParams2) -> Self13702     fn from(value: &IDWriteRenderingParams2) -> Self {
13703         ::std::convert::From::from(::std::clone::Clone::clone(value))
13704     }
13705 }
13706 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams> for IDWriteRenderingParams2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams>13707     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams> {
13708         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams>::into(self))
13709     }
13710 }
13711 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams> for &IDWriteRenderingParams2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams>13712     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams> {
13713         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams>::into(::std::clone::Clone::clone(self)))
13714     }
13715 }
13716 #[repr(C)]
13717 #[doc(hidden)]
13718 pub struct IDWriteRenderingParams2_abi(
13719     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13721     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PIXEL_GEOMETRY,
13726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_RENDERING_MODE,
13727     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_GRID_FIT_MODE,
13729 );
13730 #[repr(transparent)]
13731 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13732 pub struct IDWriteRenderingParams3(::windows::runtime::IUnknown);
13733 impl IDWriteRenderingParams3 {
GetGamma(&self) -> f3213734     pub unsafe fn GetGamma(&self) -> f32 {
13735         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
13736     }
GetEnhancedContrast(&self) -> f3213737     pub unsafe fn GetEnhancedContrast(&self) -> f32 {
13738         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
13739     }
GetClearTypeLevel(&self) -> f3213740     pub unsafe fn GetClearTypeLevel(&self) -> f32 {
13741         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
13742     }
GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY13743     pub unsafe fn GetPixelGeometry(&self) -> DWRITE_PIXEL_GEOMETRY {
13744         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
13745     }
GetRenderingMode(&self) -> DWRITE_RENDERING_MODE13746     pub unsafe fn GetRenderingMode(&self) -> DWRITE_RENDERING_MODE {
13747         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
13748     }
GetGrayscaleEnhancedContrast(&self) -> f3213749     pub unsafe fn GetGrayscaleEnhancedContrast(&self) -> f32 {
13750         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)))
13751     }
GetGridFitMode(&self) -> DWRITE_GRID_FIT_MODE13752     pub unsafe fn GetGridFitMode(&self) -> DWRITE_GRID_FIT_MODE {
13753         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self)))
13754     }
GetRenderingMode1(&self) -> DWRITE_RENDERING_MODE113755     pub unsafe fn GetRenderingMode1(&self) -> DWRITE_RENDERING_MODE1 {
13756         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)))
13757     }
13758 }
13759 unsafe impl ::windows::runtime::Interface for IDWriteRenderingParams3 {
13760     type Vtable = IDWriteRenderingParams3_abi;
13761     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3079818154, 14619, 16682, [140, 92, 228, 76, 194, 216, 103, 220]);
13762 }
13763 impl ::std::convert::From<IDWriteRenderingParams3> for ::windows::runtime::IUnknown {
from(value: IDWriteRenderingParams3) -> Self13764     fn from(value: IDWriteRenderingParams3) -> Self {
13765         unsafe { ::std::mem::transmute(value) }
13766     }
13767 }
13768 impl ::std::convert::From<&IDWriteRenderingParams3> for ::windows::runtime::IUnknown {
from(value: &IDWriteRenderingParams3) -> Self13769     fn from(value: &IDWriteRenderingParams3) -> Self {
13770         ::std::convert::From::from(::std::clone::Clone::clone(value))
13771     }
13772 }
13773 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13774     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13775         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13776     }
13777 }
13778 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13779     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13780         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13781     }
13782 }
13783 impl ::std::convert::From<IDWriteRenderingParams3> for IDWriteRenderingParams2 {
from(value: IDWriteRenderingParams3) -> Self13784     fn from(value: IDWriteRenderingParams3) -> Self {
13785         unsafe { ::std::mem::transmute(value) }
13786     }
13787 }
13788 impl ::std::convert::From<&IDWriteRenderingParams3> for IDWriteRenderingParams2 {
from(value: &IDWriteRenderingParams3) -> Self13789     fn from(value: &IDWriteRenderingParams3) -> Self {
13790         ::std::convert::From::from(::std::clone::Clone::clone(value))
13791     }
13792 }
13793 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams2> for IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams2>13794     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams2> {
13795         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams2>::into(self))
13796     }
13797 }
13798 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams2> for &IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams2>13799     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams2> {
13800         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams2>::into(::std::clone::Clone::clone(self)))
13801     }
13802 }
13803 impl ::std::convert::From<IDWriteRenderingParams3> for IDWriteRenderingParams1 {
from(value: IDWriteRenderingParams3) -> Self13804     fn from(value: IDWriteRenderingParams3) -> Self {
13805         unsafe { ::std::mem::transmute(value) }
13806     }
13807 }
13808 impl ::std::convert::From<&IDWriteRenderingParams3> for IDWriteRenderingParams1 {
from(value: &IDWriteRenderingParams3) -> Self13809     fn from(value: &IDWriteRenderingParams3) -> Self {
13810         ::std::convert::From::from(::std::clone::Clone::clone(value))
13811     }
13812 }
13813 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams1> for IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1>13814     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1> {
13815         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams1>::into(self))
13816     }
13817 }
13818 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams1> for &IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1>13819     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams1> {
13820         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams1>::into(::std::clone::Clone::clone(self)))
13821     }
13822 }
13823 impl ::std::convert::From<IDWriteRenderingParams3> for IDWriteRenderingParams {
from(value: IDWriteRenderingParams3) -> Self13824     fn from(value: IDWriteRenderingParams3) -> Self {
13825         unsafe { ::std::mem::transmute(value) }
13826     }
13827 }
13828 impl ::std::convert::From<&IDWriteRenderingParams3> for IDWriteRenderingParams {
from(value: &IDWriteRenderingParams3) -> Self13829     fn from(value: &IDWriteRenderingParams3) -> Self {
13830         ::std::convert::From::from(::std::clone::Clone::clone(value))
13831     }
13832 }
13833 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams> for IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams>13834     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams> {
13835         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams>::into(self))
13836     }
13837 }
13838 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteRenderingParams> for &IDWriteRenderingParams3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams>13839     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteRenderingParams> {
13840         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteRenderingParams>::into(::std::clone::Clone::clone(self)))
13841     }
13842 }
13843 #[repr(C)]
13844 #[doc(hidden)]
13845 pub struct IDWriteRenderingParams3_abi(
13846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PIXEL_GEOMETRY,
13853     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_RENDERING_MODE,
13854     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
13855     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_GRID_FIT_MODE,
13856     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_RENDERING_MODE1,
13857 );
13858 #[repr(transparent)]
13859 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13860 pub struct IDWriteStringList(::windows::runtime::IUnknown);
13861 impl IDWriteStringList {
GetCount(&self) -> u3213862     pub unsafe fn GetCount(&self) -> u32 {
13863         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)))
13864     }
GetLocaleNameLength(&self, listindex: u32) -> ::windows::runtime::Result<u32>13865     pub unsafe fn GetLocaleNameLength(&self, listindex: u32) -> ::windows::runtime::Result<u32> {
13866         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13867         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<u32>(result__)
13868     }
13869     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, listindex: u32, localename: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::Result<()>13870     pub unsafe fn GetLocaleName(&self, listindex: u32, localename: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::Result<()> {
13871         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(localename), ::std::mem::transmute(size)).ok()
13872     }
GetStringLength(&self, listindex: u32) -> ::windows::runtime::Result<u32>13873     pub unsafe fn GetStringLength(&self, listindex: u32) -> ::windows::runtime::Result<u32> {
13874         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
13875         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), &mut result__).from_abi::<u32>(result__)
13876     }
13877     #[cfg(feature = "Win32_Foundation")]
GetString(&self, listindex: u32, stringbuffer: super::super::Foundation::PWSTR, stringbuffersize: u32) -> ::windows::runtime::Result<()>13878     pub unsafe fn GetString(&self, listindex: u32, stringbuffer: super::super::Foundation::PWSTR, stringbuffersize: u32) -> ::windows::runtime::Result<()> {
13879         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(listindex), ::std::mem::transmute(stringbuffer), ::std::mem::transmute(stringbuffersize)).ok()
13880     }
13881 }
13882 unsafe impl ::windows::runtime::Interface for IDWriteStringList {
13883     type Vtable = IDWriteStringList_abi;
13884     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3488493888, 4439, 18378, [139, 133, 49, 191, 207, 63, 45, 14]);
13885 }
13886 impl ::std::convert::From<IDWriteStringList> for ::windows::runtime::IUnknown {
from(value: IDWriteStringList) -> Self13887     fn from(value: IDWriteStringList) -> Self {
13888         unsafe { ::std::mem::transmute(value) }
13889     }
13890 }
13891 impl ::std::convert::From<&IDWriteStringList> for ::windows::runtime::IUnknown {
from(value: &IDWriteStringList) -> Self13892     fn from(value: &IDWriteStringList) -> Self {
13893         ::std::convert::From::from(::std::clone::Clone::clone(value))
13894     }
13895 }
13896 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteStringList {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13897     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13898         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13899     }
13900 }
13901 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteStringList {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13902     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13903         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13904     }
13905 }
13906 #[repr(C)]
13907 #[doc(hidden)]
13908 pub struct IDWriteStringList_abi(
13909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13913     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, length: *mut u32) -> ::windows::runtime::HRESULT,
13914     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, localename: super::super::Foundation::PWSTR, size: u32) -> ::windows::runtime::HRESULT,
13915     #[cfg(not(feature = "Win32_Foundation"))] usize,
13916     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, length: *mut u32) -> ::windows::runtime::HRESULT,
13917     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, listindex: u32, stringbuffer: super::super::Foundation::PWSTR, stringbuffersize: u32) -> ::windows::runtime::HRESULT,
13918     #[cfg(not(feature = "Win32_Foundation"))] usize,
13919 );
13920 #[repr(transparent)]
13921 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13922 pub struct IDWriteTextAnalysisSink(::windows::runtime::IUnknown);
13923 impl IDWriteTextAnalysisSink {
SetScriptAnalysis(&self, textposition: u32, textlength: u32, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS) -> ::windows::runtime::Result<()>13924     pub unsafe fn SetScriptAnalysis(&self, textposition: u32, textlength: u32, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS) -> ::windows::runtime::Result<()> {
13925         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(scriptanalysis)).ok()
13926     }
SetLineBreakpoints(&self, textposition: u32, textlength: u32, linebreakpoints: *const DWRITE_LINE_BREAKPOINT) -> ::windows::runtime::Result<()>13927     pub unsafe fn SetLineBreakpoints(&self, textposition: u32, textlength: u32, linebreakpoints: *const DWRITE_LINE_BREAKPOINT) -> ::windows::runtime::Result<()> {
13928         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(linebreakpoints)).ok()
13929     }
SetBidiLevel(&self, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::runtime::Result<()>13930     pub unsafe fn SetBidiLevel(&self, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::runtime::Result<()> {
13931         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(explicitlevel), ::std::mem::transmute(resolvedlevel)).ok()
13932     }
SetNumberSubstitution<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(&self, textposition: u32, textlength: u32, numbersubstitution: Param2) -> ::windows::runtime::Result<()>13933     pub unsafe fn SetNumberSubstitution<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(&self, textposition: u32, textlength: u32, numbersubstitution: Param2) -> ::windows::runtime::Result<()> {
13934         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), numbersubstitution.into_param().abi()).ok()
13935     }
13936 }
13937 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalysisSink {
13938     type Vtable = IDWriteTextAnalysisSink_abi;
13939     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1477496132, 3232, 18177, [179, 250, 190, 197, 24, 42, 228, 246]);
13940 }
13941 impl ::std::convert::From<IDWriteTextAnalysisSink> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalysisSink) -> Self13942     fn from(value: IDWriteTextAnalysisSink) -> Self {
13943         unsafe { ::std::mem::transmute(value) }
13944     }
13945 }
13946 impl ::std::convert::From<&IDWriteTextAnalysisSink> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalysisSink) -> Self13947     fn from(value: &IDWriteTextAnalysisSink) -> Self {
13948         ::std::convert::From::from(::std::clone::Clone::clone(value))
13949     }
13950 }
13951 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalysisSink {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13952     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13953         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
13954     }
13955 }
13956 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalysisSink {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>13957     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
13958         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
13959     }
13960 }
13961 #[repr(C)]
13962 #[doc(hidden)]
13963 pub struct IDWriteTextAnalysisSink_abi(
13964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13965     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13966     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
13967     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS) -> ::windows::runtime::HRESULT,
13968     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, linebreakpoints: *const DWRITE_LINE_BREAKPOINT) -> ::windows::runtime::HRESULT,
13969     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::runtime::HRESULT,
13970     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, numbersubstitution: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
13971 );
13972 #[repr(transparent)]
13973 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
13974 pub struct IDWriteTextAnalysisSink1(::windows::runtime::IUnknown);
13975 impl IDWriteTextAnalysisSink1 {
SetScriptAnalysis(&self, textposition: u32, textlength: u32, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS) -> ::windows::runtime::Result<()>13976     pub unsafe fn SetScriptAnalysis(&self, textposition: u32, textlength: u32, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS) -> ::windows::runtime::Result<()> {
13977         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(scriptanalysis)).ok()
13978     }
SetLineBreakpoints(&self, textposition: u32, textlength: u32, linebreakpoints: *const DWRITE_LINE_BREAKPOINT) -> ::windows::runtime::Result<()>13979     pub unsafe fn SetLineBreakpoints(&self, textposition: u32, textlength: u32, linebreakpoints: *const DWRITE_LINE_BREAKPOINT) -> ::windows::runtime::Result<()> {
13980         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(linebreakpoints)).ok()
13981     }
SetBidiLevel(&self, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::runtime::Result<()>13982     pub unsafe fn SetBidiLevel(&self, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::runtime::Result<()> {
13983         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(explicitlevel), ::std::mem::transmute(resolvedlevel)).ok()
13984     }
SetNumberSubstitution<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(&self, textposition: u32, textlength: u32, numbersubstitution: Param2) -> ::windows::runtime::Result<()>13985     pub unsafe fn SetNumberSubstitution<'a, Param2: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(&self, textposition: u32, textlength: u32, numbersubstitution: Param2) -> ::windows::runtime::Result<()> {
13986         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), numbersubstitution.into_param().abi()).ok()
13987     }
13988     #[cfg(feature = "Win32_Foundation")]
SetGlyphOrientation<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, textlength: u32, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, adjustedbidilevel: u8, issideways: Param4, isrighttoleft: Param5) -> ::windows::runtime::Result<()>13989     pub unsafe fn SetGlyphOrientation<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, textlength: u32, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, adjustedbidilevel: u8, issideways: Param4, isrighttoleft: Param5) -> ::windows::runtime::Result<()> {
13990         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(glyphorientationangle), ::std::mem::transmute(adjustedbidilevel), issideways.into_param().abi(), isrighttoleft.into_param().abi()).ok()
13991     }
13992 }
13993 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalysisSink1 {
13994     type Vtable = IDWriteTextAnalysisSink1_abi;
13995     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2967028128, 34279, 19851, [159, 211, 92, 237, 153, 52, 72, 42]);
13996 }
13997 impl ::std::convert::From<IDWriteTextAnalysisSink1> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalysisSink1) -> Self13998     fn from(value: IDWriteTextAnalysisSink1) -> Self {
13999         unsafe { ::std::mem::transmute(value) }
14000     }
14001 }
14002 impl ::std::convert::From<&IDWriteTextAnalysisSink1> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalysisSink1) -> Self14003     fn from(value: &IDWriteTextAnalysisSink1) -> Self {
14004         ::std::convert::From::from(::std::clone::Clone::clone(value))
14005     }
14006 }
14007 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalysisSink1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14008     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14009         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
14010     }
14011 }
14012 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalysisSink1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14013     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14014         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
14015     }
14016 }
14017 impl ::std::convert::From<IDWriteTextAnalysisSink1> for IDWriteTextAnalysisSink {
from(value: IDWriteTextAnalysisSink1) -> Self14018     fn from(value: IDWriteTextAnalysisSink1) -> Self {
14019         unsafe { ::std::mem::transmute(value) }
14020     }
14021 }
14022 impl ::std::convert::From<&IDWriteTextAnalysisSink1> for IDWriteTextAnalysisSink {
from(value: &IDWriteTextAnalysisSink1) -> Self14023     fn from(value: &IDWriteTextAnalysisSink1) -> Self {
14024         ::std::convert::From::from(::std::clone::Clone::clone(value))
14025     }
14026 }
14027 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink> for IDWriteTextAnalysisSink1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSink>14028     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSink> {
14029         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalysisSink>::into(self))
14030     }
14031 }
14032 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink> for &IDWriteTextAnalysisSink1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSink>14033     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSink> {
14034         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalysisSink>::into(::std::clone::Clone::clone(self)))
14035     }
14036 }
14037 #[repr(C)]
14038 #[doc(hidden)]
14039 pub struct IDWriteTextAnalysisSink1_abi(
14040     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14041     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14042     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14043     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS) -> ::windows::runtime::HRESULT,
14044     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, linebreakpoints: *const DWRITE_LINE_BREAKPOINT) -> ::windows::runtime::HRESULT,
14045     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::runtime::HRESULT,
14046     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, numbersubstitution: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14047     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, adjustedbidilevel: u8, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
14048     #[cfg(not(feature = "Win32_Foundation"))] usize,
14049 );
14050 #[repr(transparent)]
14051 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
14052 pub struct IDWriteTextAnalysisSource(::windows::runtime::IUnknown);
14053 impl IDWriteTextAnalysisSource {
GetTextAtPosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()>14054     pub unsafe fn GetTextAtPosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()> {
14055         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textstring), ::std::mem::transmute(textlength)).ok()
14056     }
GetTextBeforePosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()>14057     pub unsafe fn GetTextBeforePosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()> {
14058         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textstring), ::std::mem::transmute(textlength)).ok()
14059     }
GetParagraphReadingDirection(&self) -> DWRITE_READING_DIRECTION14060     pub unsafe fn GetParagraphReadingDirection(&self) -> DWRITE_READING_DIRECTION {
14061         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
14062     }
GetLocaleName(&self, textposition: u32, textlength: *mut u32, localename: *mut *mut u16) -> ::windows::runtime::Result<()>14063     pub unsafe fn GetLocaleName(&self, textposition: u32, textlength: *mut u32, localename: *mut *mut u16) -> ::windows::runtime::Result<()> {
14064         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(localename)).ok()
14065     }
GetNumberSubstitution(&self, textposition: u32, textlength: *mut u32, numbersubstitution: *mut ::std::option::Option<IDWriteNumberSubstitution>) -> ::windows::runtime::Result<()>14066     pub unsafe fn GetNumberSubstitution(&self, textposition: u32, textlength: *mut u32, numbersubstitution: *mut ::std::option::Option<IDWriteNumberSubstitution>) -> ::windows::runtime::Result<()> {
14067         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(numbersubstitution)).ok()
14068     }
14069 }
14070 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalysisSource {
14071     type Vtable = IDWriteTextAnalysisSource_abi;
14072     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1754143320, 20628, 18376, [173, 200, 251, 206, 166, 10, 233, 43]);
14073 }
14074 impl ::std::convert::From<IDWriteTextAnalysisSource> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalysisSource) -> Self14075     fn from(value: IDWriteTextAnalysisSource) -> Self {
14076         unsafe { ::std::mem::transmute(value) }
14077     }
14078 }
14079 impl ::std::convert::From<&IDWriteTextAnalysisSource> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalysisSource) -> Self14080     fn from(value: &IDWriteTextAnalysisSource) -> Self {
14081         ::std::convert::From::from(::std::clone::Clone::clone(value))
14082     }
14083 }
14084 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalysisSource {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14085     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14086         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
14087     }
14088 }
14089 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalysisSource {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14090     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14091         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
14092     }
14093 }
14094 #[repr(C)]
14095 #[doc(hidden)]
14096 pub struct IDWriteTextAnalysisSource_abi(
14097     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14098     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14099     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14100     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::HRESULT,
14101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::HRESULT,
14102     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
14103     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: *mut u32, localename: *mut *mut u16) -> ::windows::runtime::HRESULT,
14104     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: *mut u32, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14105 );
14106 #[repr(transparent)]
14107 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
14108 pub struct IDWriteTextAnalysisSource1(::windows::runtime::IUnknown);
14109 impl IDWriteTextAnalysisSource1 {
GetTextAtPosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()>14110     pub unsafe fn GetTextAtPosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()> {
14111         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textstring), ::std::mem::transmute(textlength)).ok()
14112     }
GetTextBeforePosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()>14113     pub unsafe fn GetTextBeforePosition(&self, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::Result<()> {
14114         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textstring), ::std::mem::transmute(textlength)).ok()
14115     }
GetParagraphReadingDirection(&self) -> DWRITE_READING_DIRECTION14116     pub unsafe fn GetParagraphReadingDirection(&self) -> DWRITE_READING_DIRECTION {
14117         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)))
14118     }
GetLocaleName(&self, textposition: u32, textlength: *mut u32, localename: *mut *mut u16) -> ::windows::runtime::Result<()>14119     pub unsafe fn GetLocaleName(&self, textposition: u32, textlength: *mut u32, localename: *mut *mut u16) -> ::windows::runtime::Result<()> {
14120         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(localename)).ok()
14121     }
GetNumberSubstitution(&self, textposition: u32, textlength: *mut u32, numbersubstitution: *mut ::std::option::Option<IDWriteNumberSubstitution>) -> ::windows::runtime::Result<()>14122     pub unsafe fn GetNumberSubstitution(&self, textposition: u32, textlength: *mut u32, numbersubstitution: *mut ::std::option::Option<IDWriteNumberSubstitution>) -> ::windows::runtime::Result<()> {
14123         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(numbersubstitution)).ok()
14124     }
GetVerticalGlyphOrientation(&self, textposition: u32, textlength: *mut u32, glyphorientation: *mut DWRITE_VERTICAL_GLYPH_ORIENTATION, bidilevel: *mut u8) -> ::windows::runtime::Result<()>14125     pub unsafe fn GetVerticalGlyphOrientation(&self, textposition: u32, textlength: *mut u32, glyphorientation: *mut DWRITE_VERTICAL_GLYPH_ORIENTATION, bidilevel: *mut u8) -> ::windows::runtime::Result<()> {
14126         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), ::std::mem::transmute(glyphorientation), ::std::mem::transmute(bidilevel)).ok()
14127     }
14128 }
14129 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalysisSource1 {
14130     type Vtable = IDWriteTextAnalysisSource1_abi;
14131     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1671232216, 4020, 19233, [165, 138, 6, 121, 32, 18, 0, 9]);
14132 }
14133 impl ::std::convert::From<IDWriteTextAnalysisSource1> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalysisSource1) -> Self14134     fn from(value: IDWriteTextAnalysisSource1) -> Self {
14135         unsafe { ::std::mem::transmute(value) }
14136     }
14137 }
14138 impl ::std::convert::From<&IDWriteTextAnalysisSource1> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalysisSource1) -> Self14139     fn from(value: &IDWriteTextAnalysisSource1) -> Self {
14140         ::std::convert::From::from(::std::clone::Clone::clone(value))
14141     }
14142 }
14143 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalysisSource1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14144     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14145         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
14146     }
14147 }
14148 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalysisSource1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14149     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14150         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
14151     }
14152 }
14153 impl ::std::convert::From<IDWriteTextAnalysisSource1> for IDWriteTextAnalysisSource {
from(value: IDWriteTextAnalysisSource1) -> Self14154     fn from(value: IDWriteTextAnalysisSource1) -> Self {
14155         unsafe { ::std::mem::transmute(value) }
14156     }
14157 }
14158 impl ::std::convert::From<&IDWriteTextAnalysisSource1> for IDWriteTextAnalysisSource {
from(value: &IDWriteTextAnalysisSource1) -> Self14159     fn from(value: &IDWriteTextAnalysisSource1) -> Self {
14160         ::std::convert::From::from(::std::clone::Clone::clone(value))
14161     }
14162 }
14163 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource> for IDWriteTextAnalysisSource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSource>14164     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSource> {
14165         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalysisSource>::into(self))
14166     }
14167 }
14168 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource> for &IDWriteTextAnalysisSource1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSource>14169     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalysisSource> {
14170         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalysisSource>::into(::std::clone::Clone::clone(self)))
14171     }
14172 }
14173 #[repr(C)]
14174 #[doc(hidden)]
14175 pub struct IDWriteTextAnalysisSource1_abi(
14176     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14177     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14178     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14179     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::HRESULT,
14180     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textstring: *mut *mut u16, textlength: *mut u32) -> ::windows::runtime::HRESULT,
14181     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
14182     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: *mut u32, localename: *mut *mut u16) -> ::windows::runtime::HRESULT,
14183     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: *mut u32, numbersubstitution: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: *mut u32, glyphorientation: *mut DWRITE_VERTICAL_GLYPH_ORIENTATION, bidilevel: *mut u8) -> ::windows::runtime::HRESULT,
14185 );
14186 #[repr(transparent)]
14187 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
14188 pub struct IDWriteTextAnalyzer(::windows::runtime::IUnknown);
14189 impl IDWriteTextAnalyzer {
AnalyzeScript<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14190     pub unsafe fn AnalyzeScript<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14191         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14192     }
AnalyzeBidi<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14193     pub unsafe fn AnalyzeBidi<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14194         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14195     }
AnalyzeNumberSubstitution<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14196     pub unsafe fn AnalyzeNumberSubstitution<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14197         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14198     }
AnalyzeLineBreakpoints<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14199     pub unsafe fn AnalyzeLineBreakpoints<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14200         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14201     }
14202     #[cfg(feature = "Win32_Foundation")]
GetGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>( &self, textstring: Param0, textlength: u32, fontface: Param2, issideways: Param3, isrighttoleft: Param4, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param6, numbersubstitution: Param7, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, maxglyphcount: u32, clustermap: *mut u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: *mut u16, glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: *mut u32, ) -> ::windows::runtime::Result<()>14203     pub unsafe fn GetGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(
14204         &self,
14205         textstring: Param0,
14206         textlength: u32,
14207         fontface: Param2,
14208         issideways: Param3,
14209         isrighttoleft: Param4,
14210         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14211         localename: Param6,
14212         numbersubstitution: Param7,
14213         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14214         featurerangelengths: *const u32,
14215         featureranges: u32,
14216         maxglyphcount: u32,
14217         clustermap: *mut u16,
14218         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14219         glyphindices: *mut u16,
14220         glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES,
14221         actualglyphcount: *mut u32,
14222     ) -> ::windows::runtime::Result<()> {
14223         (::windows::runtime::Interface::vtable(self).7)(
14224             ::std::mem::transmute_copy(self),
14225             textstring.into_param().abi(),
14226             ::std::mem::transmute(textlength),
14227             fontface.into_param().abi(),
14228             issideways.into_param().abi(),
14229             isrighttoleft.into_param().abi(),
14230             ::std::mem::transmute(scriptanalysis),
14231             localename.into_param().abi(),
14232             numbersubstitution.into_param().abi(),
14233             ::std::mem::transmute(features),
14234             ::std::mem::transmute(featurerangelengths),
14235             ::std::mem::transmute(featureranges),
14236             ::std::mem::transmute(maxglyphcount),
14237             ::std::mem::transmute(clustermap),
14238             ::std::mem::transmute(textprops),
14239             ::std::mem::transmute(glyphindices),
14240             ::std::mem::transmute(glyphprops),
14241             ::std::mem::transmute(actualglyphcount),
14242         )
14243         .ok()
14244     }
14245     #[cfg(feature = "Win32_Foundation")]
GetGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param9: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param10: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, textstring: Param0, clustermap: *const u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: Param7, fontemsize: f32, issideways: Param9, isrighttoleft: Param10, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param12, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>14246     pub unsafe fn GetGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param9: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param10: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14247         &self,
14248         textstring: Param0,
14249         clustermap: *const u16,
14250         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14251         textlength: u32,
14252         glyphindices: *const u16,
14253         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14254         glyphcount: u32,
14255         fontface: Param7,
14256         fontemsize: f32,
14257         issideways: Param9,
14258         isrighttoleft: Param10,
14259         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14260         localename: Param12,
14261         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14262         featurerangelengths: *const u32,
14263         featureranges: u32,
14264         glyphadvances: *mut f32,
14265         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14266     ) -> ::windows::runtime::Result<()> {
14267         (::windows::runtime::Interface::vtable(self).8)(
14268             ::std::mem::transmute_copy(self),
14269             textstring.into_param().abi(),
14270             ::std::mem::transmute(clustermap),
14271             ::std::mem::transmute(textprops),
14272             ::std::mem::transmute(textlength),
14273             ::std::mem::transmute(glyphindices),
14274             ::std::mem::transmute(glyphprops),
14275             ::std::mem::transmute(glyphcount),
14276             fontface.into_param().abi(),
14277             ::std::mem::transmute(fontemsize),
14278             issideways.into_param().abi(),
14279             isrighttoleft.into_param().abi(),
14280             ::std::mem::transmute(scriptanalysis),
14281             localename.into_param().abi(),
14282             ::std::mem::transmute(features),
14283             ::std::mem::transmute(featurerangelengths),
14284             ::std::mem::transmute(featureranges),
14285             ::std::mem::transmute(glyphadvances),
14286             ::std::mem::transmute(glyphoffsets),
14287         )
14288         .ok()
14289     }
14290     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param11: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param13: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param15: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, textstring: Param0, clustermap: *const u16, textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: Param7, fontemsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param11, issideways: Param12, isrighttoleft: Param13, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param15, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>14291     pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param11: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param13: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param15: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14292         &self,
14293         textstring: Param0,
14294         clustermap: *const u16,
14295         textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES,
14296         textlength: u32,
14297         glyphindices: *const u16,
14298         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14299         glyphcount: u32,
14300         fontface: Param7,
14301         fontemsize: f32,
14302         pixelsperdip: f32,
14303         transform: *const DWRITE_MATRIX,
14304         usegdinatural: Param11,
14305         issideways: Param12,
14306         isrighttoleft: Param13,
14307         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14308         localename: Param15,
14309         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14310         featurerangelengths: *const u32,
14311         featureranges: u32,
14312         glyphadvances: *mut f32,
14313         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14314     ) -> ::windows::runtime::Result<()> {
14315         (::windows::runtime::Interface::vtable(self).9)(
14316             ::std::mem::transmute_copy(self),
14317             textstring.into_param().abi(),
14318             ::std::mem::transmute(clustermap),
14319             ::std::mem::transmute(textprops),
14320             ::std::mem::transmute(textlength),
14321             ::std::mem::transmute(glyphindices),
14322             ::std::mem::transmute(glyphprops),
14323             ::std::mem::transmute(glyphcount),
14324             fontface.into_param().abi(),
14325             ::std::mem::transmute(fontemsize),
14326             ::std::mem::transmute(pixelsperdip),
14327             ::std::mem::transmute(transform),
14328             usegdinatural.into_param().abi(),
14329             issideways.into_param().abi(),
14330             isrighttoleft.into_param().abi(),
14331             ::std::mem::transmute(scriptanalysis),
14332             localename.into_param().abi(),
14333             ::std::mem::transmute(features),
14334             ::std::mem::transmute(featurerangelengths),
14335             ::std::mem::transmute(featureranges),
14336             ::std::mem::transmute(glyphadvances),
14337             ::std::mem::transmute(glyphoffsets),
14338         )
14339         .ok()
14340     }
14341 }
14342 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalyzer {
14343     type Vtable = IDWriteTextAnalyzer_abi;
14344     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3085309502, 32582, 17332, [132, 179, 228, 230, 36, 156, 54, 93]);
14345 }
14346 impl ::std::convert::From<IDWriteTextAnalyzer> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalyzer) -> Self14347     fn from(value: IDWriteTextAnalyzer) -> Self {
14348         unsafe { ::std::mem::transmute(value) }
14349     }
14350 }
14351 impl ::std::convert::From<&IDWriteTextAnalyzer> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalyzer) -> Self14352     fn from(value: &IDWriteTextAnalyzer) -> Self {
14353         ::std::convert::From::from(::std::clone::Clone::clone(value))
14354     }
14355 }
14356 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalyzer {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14357     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14358         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
14359     }
14360 }
14361 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalyzer {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14362     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14363         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
14364     }
14365 }
14366 #[repr(C)]
14367 #[doc(hidden)]
14368 pub struct IDWriteTextAnalyzer_abi(
14369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14372     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14373     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14374     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14375     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14376     #[cfg(feature = "Win32_Foundation")]
14377     pub  unsafe extern "system" fn(
14378         this: ::windows::runtime::RawPtr,
14379         textstring: super::super::Foundation::PWSTR,
14380         textlength: u32,
14381         fontface: ::windows::runtime::RawPtr,
14382         issideways: super::super::Foundation::BOOL,
14383         isrighttoleft: super::super::Foundation::BOOL,
14384         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14385         localename: super::super::Foundation::PWSTR,
14386         numbersubstitution: ::windows::runtime::RawPtr,
14387         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14388         featurerangelengths: *const u32,
14389         featureranges: u32,
14390         maxglyphcount: u32,
14391         clustermap: *mut u16,
14392         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14393         glyphindices: *mut u16,
14394         glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES,
14395         actualglyphcount: *mut u32,
14396     ) -> ::windows::runtime::HRESULT,
14397     #[cfg(not(feature = "Win32_Foundation"))] usize,
14398     #[cfg(feature = "Win32_Foundation")]
14399     pub  unsafe extern "system" fn(
14400         this: ::windows::runtime::RawPtr,
14401         textstring: super::super::Foundation::PWSTR,
14402         clustermap: *const u16,
14403         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14404         textlength: u32,
14405         glyphindices: *const u16,
14406         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14407         glyphcount: u32,
14408         fontface: ::windows::runtime::RawPtr,
14409         fontemsize: f32,
14410         issideways: super::super::Foundation::BOOL,
14411         isrighttoleft: super::super::Foundation::BOOL,
14412         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14413         localename: super::super::Foundation::PWSTR,
14414         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14415         featurerangelengths: *const u32,
14416         featureranges: u32,
14417         glyphadvances: *mut f32,
14418         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14419     ) -> ::windows::runtime::HRESULT,
14420     #[cfg(not(feature = "Win32_Foundation"))] usize,
14421     #[cfg(feature = "Win32_Foundation")]
14422     pub  unsafe extern "system" fn(
14423         this: ::windows::runtime::RawPtr,
14424         textstring: super::super::Foundation::PWSTR,
14425         clustermap: *const u16,
14426         textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES,
14427         textlength: u32,
14428         glyphindices: *const u16,
14429         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14430         glyphcount: u32,
14431         fontface: ::windows::runtime::RawPtr,
14432         fontemsize: f32,
14433         pixelsperdip: f32,
14434         transform: *const DWRITE_MATRIX,
14435         usegdinatural: super::super::Foundation::BOOL,
14436         issideways: super::super::Foundation::BOOL,
14437         isrighttoleft: super::super::Foundation::BOOL,
14438         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14439         localename: super::super::Foundation::PWSTR,
14440         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14441         featurerangelengths: *const u32,
14442         featureranges: u32,
14443         glyphadvances: *mut f32,
14444         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14445     ) -> ::windows::runtime::HRESULT,
14446     #[cfg(not(feature = "Win32_Foundation"))] usize,
14447 );
14448 #[repr(transparent)]
14449 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
14450 pub struct IDWriteTextAnalyzer1(::windows::runtime::IUnknown);
14451 impl IDWriteTextAnalyzer1 {
AnalyzeScript<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14452     pub unsafe fn AnalyzeScript<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14453         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14454     }
AnalyzeBidi<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14455     pub unsafe fn AnalyzeBidi<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14456         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14457     }
AnalyzeNumberSubstitution<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14458     pub unsafe fn AnalyzeNumberSubstitution<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14459         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14460     }
AnalyzeLineBreakpoints<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14461     pub unsafe fn AnalyzeLineBreakpoints<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14462         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14463     }
14464     #[cfg(feature = "Win32_Foundation")]
GetGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>( &self, textstring: Param0, textlength: u32, fontface: Param2, issideways: Param3, isrighttoleft: Param4, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param6, numbersubstitution: Param7, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, maxglyphcount: u32, clustermap: *mut u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: *mut u16, glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: *mut u32, ) -> ::windows::runtime::Result<()>14465     pub unsafe fn GetGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(
14466         &self,
14467         textstring: Param0,
14468         textlength: u32,
14469         fontface: Param2,
14470         issideways: Param3,
14471         isrighttoleft: Param4,
14472         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14473         localename: Param6,
14474         numbersubstitution: Param7,
14475         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14476         featurerangelengths: *const u32,
14477         featureranges: u32,
14478         maxglyphcount: u32,
14479         clustermap: *mut u16,
14480         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14481         glyphindices: *mut u16,
14482         glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES,
14483         actualglyphcount: *mut u32,
14484     ) -> ::windows::runtime::Result<()> {
14485         (::windows::runtime::Interface::vtable(self).7)(
14486             ::std::mem::transmute_copy(self),
14487             textstring.into_param().abi(),
14488             ::std::mem::transmute(textlength),
14489             fontface.into_param().abi(),
14490             issideways.into_param().abi(),
14491             isrighttoleft.into_param().abi(),
14492             ::std::mem::transmute(scriptanalysis),
14493             localename.into_param().abi(),
14494             numbersubstitution.into_param().abi(),
14495             ::std::mem::transmute(features),
14496             ::std::mem::transmute(featurerangelengths),
14497             ::std::mem::transmute(featureranges),
14498             ::std::mem::transmute(maxglyphcount),
14499             ::std::mem::transmute(clustermap),
14500             ::std::mem::transmute(textprops),
14501             ::std::mem::transmute(glyphindices),
14502             ::std::mem::transmute(glyphprops),
14503             ::std::mem::transmute(actualglyphcount),
14504         )
14505         .ok()
14506     }
14507     #[cfg(feature = "Win32_Foundation")]
GetGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param9: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param10: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, textstring: Param0, clustermap: *const u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: Param7, fontemsize: f32, issideways: Param9, isrighttoleft: Param10, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param12, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>14508     pub unsafe fn GetGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param9: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param10: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14509         &self,
14510         textstring: Param0,
14511         clustermap: *const u16,
14512         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14513         textlength: u32,
14514         glyphindices: *const u16,
14515         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14516         glyphcount: u32,
14517         fontface: Param7,
14518         fontemsize: f32,
14519         issideways: Param9,
14520         isrighttoleft: Param10,
14521         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14522         localename: Param12,
14523         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14524         featurerangelengths: *const u32,
14525         featureranges: u32,
14526         glyphadvances: *mut f32,
14527         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14528     ) -> ::windows::runtime::Result<()> {
14529         (::windows::runtime::Interface::vtable(self).8)(
14530             ::std::mem::transmute_copy(self),
14531             textstring.into_param().abi(),
14532             ::std::mem::transmute(clustermap),
14533             ::std::mem::transmute(textprops),
14534             ::std::mem::transmute(textlength),
14535             ::std::mem::transmute(glyphindices),
14536             ::std::mem::transmute(glyphprops),
14537             ::std::mem::transmute(glyphcount),
14538             fontface.into_param().abi(),
14539             ::std::mem::transmute(fontemsize),
14540             issideways.into_param().abi(),
14541             isrighttoleft.into_param().abi(),
14542             ::std::mem::transmute(scriptanalysis),
14543             localename.into_param().abi(),
14544             ::std::mem::transmute(features),
14545             ::std::mem::transmute(featurerangelengths),
14546             ::std::mem::transmute(featureranges),
14547             ::std::mem::transmute(glyphadvances),
14548             ::std::mem::transmute(glyphoffsets),
14549         )
14550         .ok()
14551     }
14552     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param11: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param13: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param15: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, textstring: Param0, clustermap: *const u16, textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: Param7, fontemsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param11, issideways: Param12, isrighttoleft: Param13, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param15, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>14553     pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param11: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param13: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param15: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14554         &self,
14555         textstring: Param0,
14556         clustermap: *const u16,
14557         textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES,
14558         textlength: u32,
14559         glyphindices: *const u16,
14560         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14561         glyphcount: u32,
14562         fontface: Param7,
14563         fontemsize: f32,
14564         pixelsperdip: f32,
14565         transform: *const DWRITE_MATRIX,
14566         usegdinatural: Param11,
14567         issideways: Param12,
14568         isrighttoleft: Param13,
14569         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14570         localename: Param15,
14571         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14572         featurerangelengths: *const u32,
14573         featureranges: u32,
14574         glyphadvances: *mut f32,
14575         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14576     ) -> ::windows::runtime::Result<()> {
14577         (::windows::runtime::Interface::vtable(self).9)(
14578             ::std::mem::transmute_copy(self),
14579             textstring.into_param().abi(),
14580             ::std::mem::transmute(clustermap),
14581             ::std::mem::transmute(textprops),
14582             ::std::mem::transmute(textlength),
14583             ::std::mem::transmute(glyphindices),
14584             ::std::mem::transmute(glyphprops),
14585             ::std::mem::transmute(glyphcount),
14586             fontface.into_param().abi(),
14587             ::std::mem::transmute(fontemsize),
14588             ::std::mem::transmute(pixelsperdip),
14589             ::std::mem::transmute(transform),
14590             usegdinatural.into_param().abi(),
14591             issideways.into_param().abi(),
14592             isrighttoleft.into_param().abi(),
14593             ::std::mem::transmute(scriptanalysis),
14594             localename.into_param().abi(),
14595             ::std::mem::transmute(features),
14596             ::std::mem::transmute(featurerangelengths),
14597             ::std::mem::transmute(featureranges),
14598             ::std::mem::transmute(glyphadvances),
14599             ::std::mem::transmute(glyphoffsets),
14600         )
14601         .ok()
14602     }
ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textlength: u32, glyphcount: u32, clustermap: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()>14603     pub unsafe fn ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textlength: u32, glyphcount: u32, clustermap: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()> {
14604         (::windows::runtime::Interface::vtable(self).10)(
14605             ::std::mem::transmute_copy(self),
14606             ::std::mem::transmute(leadingspacing),
14607             ::std::mem::transmute(trailingspacing),
14608             ::std::mem::transmute(minimumadvancewidth),
14609             ::std::mem::transmute(textlength),
14610             ::std::mem::transmute(glyphcount),
14611             ::std::mem::transmute(clustermap),
14612             ::std::mem::transmute(glyphadvances),
14613             ::std::mem::transmute(glyphoffsets),
14614             ::std::mem::transmute(glyphproperties),
14615             ::std::mem::transmute(modifiedglyphadvances),
14616             ::std::mem::transmute(modifiedglyphoffsets),
14617         )
14618         .ok()
14619     }
14620     #[cfg(feature = "Win32_Foundation")]
GetBaseline<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, fontface: Param0, baseline: DWRITE_BASELINE, isvertical: Param2, issimulationallowed: Param3, scriptanalysis: Param4, localename: Param5, baselinecoordinate: *mut i32, exists: *mut super::super::Foundation::BOOL, ) -> ::windows::runtime::Result<()>14621     pub unsafe fn GetBaseline<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14622         &self,
14623         fontface: Param0,
14624         baseline: DWRITE_BASELINE,
14625         isvertical: Param2,
14626         issimulationallowed: Param3,
14627         scriptanalysis: Param4,
14628         localename: Param5,
14629         baselinecoordinate: *mut i32,
14630         exists: *mut super::super::Foundation::BOOL,
14631     ) -> ::windows::runtime::Result<()> {
14632         (::windows::runtime::Interface::vtable(self).11)(
14633             ::std::mem::transmute_copy(self),
14634             fontface.into_param().abi(),
14635             ::std::mem::transmute(baseline),
14636             isvertical.into_param().abi(),
14637             issimulationallowed.into_param().abi(),
14638             scriptanalysis.into_param().abi(),
14639             localename.into_param().abi(),
14640             ::std::mem::transmute(baselinecoordinate),
14641             ::std::mem::transmute(exists),
14642         )
14643         .ok()
14644     }
AnalyzeVerticalGlyphOrientation<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource1>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink1>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14645     pub unsafe fn AnalyzeVerticalGlyphOrientation<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource1>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink1>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14646         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14647     }
14648     #[cfg(feature = "Win32_Foundation")]
GetGlyphOrientationTransform<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: Param1) -> ::windows::runtime::Result<DWRITE_MATRIX>14649     pub unsafe fn GetGlyphOrientationTransform<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: Param1) -> ::windows::runtime::Result<DWRITE_MATRIX> {
14650         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
14651         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientationangle), issideways.into_param().abi(), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
14652     }
GetScriptProperties<'a, Param0: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>(&self, scriptanalysis: Param0) -> ::windows::runtime::Result<DWRITE_SCRIPT_PROPERTIES>14653     pub unsafe fn GetScriptProperties<'a, Param0: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>(&self, scriptanalysis: Param0) -> ::windows::runtime::Result<DWRITE_SCRIPT_PROPERTIES> {
14654         let mut result__: <DWRITE_SCRIPT_PROPERTIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
14655         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), scriptanalysis.into_param().abi(), &mut result__).from_abi::<DWRITE_SCRIPT_PROPERTIES>(result__)
14656     }
14657     #[cfg(feature = "Win32_Foundation")]
GetTextComplexity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, textstring: Param0, textlength: u32, fontface: Param2, istextsimple: *mut super::super::Foundation::BOOL, textlengthread: *mut u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>14658     pub unsafe fn GetTextComplexity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, textstring: Param0, textlength: u32, fontface: Param2, istextsimple: *mut super::super::Foundation::BOOL, textlengthread: *mut u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
14659         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), textstring.into_param().abi(), ::std::mem::transmute(textlength), fontface.into_param().abi(), ::std::mem::transmute(istextsimple), ::std::mem::transmute(textlengthread), ::std::mem::transmute(glyphindices)).ok()
14660     }
14661     #[cfg(feature = "Win32_Foundation")]
GetJustificationOpportunities<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, fontface: Param0, fontemsize: f32, scriptanalysis: Param2, textlength: u32, glyphcount: u32, textstring: Param5, clustermap: *const u16, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY, ) -> ::windows::runtime::Result<()>14662     pub unsafe fn GetJustificationOpportunities<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14663         &self,
14664         fontface: Param0,
14665         fontemsize: f32,
14666         scriptanalysis: Param2,
14667         textlength: u32,
14668         glyphcount: u32,
14669         textstring: Param5,
14670         clustermap: *const u16,
14671         glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14672         justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY,
14673     ) -> ::windows::runtime::Result<()> {
14674         (::windows::runtime::Interface::vtable(self).16)(
14675             ::std::mem::transmute_copy(self),
14676             fontface.into_param().abi(),
14677             ::std::mem::transmute(fontemsize),
14678             scriptanalysis.into_param().abi(),
14679             ::std::mem::transmute(textlength),
14680             ::std::mem::transmute(glyphcount),
14681             textstring.into_param().abi(),
14682             ::std::mem::transmute(clustermap),
14683             ::std::mem::transmute(glyphproperties),
14684             ::std::mem::transmute(justificationopportunities),
14685         )
14686         .ok()
14687     }
JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()>14688     pub unsafe fn JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()> {
14689         (::windows::runtime::Interface::vtable(self).17)(
14690             ::std::mem::transmute_copy(self),
14691             ::std::mem::transmute(linewidth),
14692             ::std::mem::transmute(glyphcount),
14693             ::std::mem::transmute(justificationopportunities),
14694             ::std::mem::transmute(glyphadvances),
14695             ::std::mem::transmute(glyphoffsets),
14696             ::std::mem::transmute(justifiedglyphadvances),
14697             ::std::mem::transmute(justifiedglyphoffsets),
14698         )
14699         .ok()
14700     }
GetJustifiedGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>( &self, fontface: Param0, fontemsize: f32, scriptanalysis: Param2, textlength: u32, glyphcount: u32, maxglyphcount: u32, clustermap: *const u16, glyphindices: *const u16, glyphadvances: *const f32, justifiedglyphadvances: *const f32, justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: *mut u32, modifiedclustermap: *mut u16, modifiedglyphindices: *mut u16, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>14701     pub unsafe fn GetJustifiedGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>(
14702         &self,
14703         fontface: Param0,
14704         fontemsize: f32,
14705         scriptanalysis: Param2,
14706         textlength: u32,
14707         glyphcount: u32,
14708         maxglyphcount: u32,
14709         clustermap: *const u16,
14710         glyphindices: *const u16,
14711         glyphadvances: *const f32,
14712         justifiedglyphadvances: *const f32,
14713         justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET,
14714         glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14715         actualglyphcount: *mut u32,
14716         modifiedclustermap: *mut u16,
14717         modifiedglyphindices: *mut u16,
14718         modifiedglyphadvances: *mut f32,
14719         modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14720     ) -> ::windows::runtime::Result<()> {
14721         (::windows::runtime::Interface::vtable(self).18)(
14722             ::std::mem::transmute_copy(self),
14723             fontface.into_param().abi(),
14724             ::std::mem::transmute(fontemsize),
14725             scriptanalysis.into_param().abi(),
14726             ::std::mem::transmute(textlength),
14727             ::std::mem::transmute(glyphcount),
14728             ::std::mem::transmute(maxglyphcount),
14729             ::std::mem::transmute(clustermap),
14730             ::std::mem::transmute(glyphindices),
14731             ::std::mem::transmute(glyphadvances),
14732             ::std::mem::transmute(justifiedglyphadvances),
14733             ::std::mem::transmute(justifiedglyphoffsets),
14734             ::std::mem::transmute(glyphproperties),
14735             ::std::mem::transmute(actualglyphcount),
14736             ::std::mem::transmute(modifiedclustermap),
14737             ::std::mem::transmute(modifiedglyphindices),
14738             ::std::mem::transmute(modifiedglyphadvances),
14739             ::std::mem::transmute(modifiedglyphoffsets),
14740         )
14741         .ok()
14742     }
14743 }
14744 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalyzer1 {
14745     type Vtable = IDWriteTextAnalyzer1_abi;
14746     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2161825792, 57887, 20099, [150, 206, 191, 204, 229, 0, 219, 124]);
14747 }
14748 impl ::std::convert::From<IDWriteTextAnalyzer1> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalyzer1) -> Self14749     fn from(value: IDWriteTextAnalyzer1) -> Self {
14750         unsafe { ::std::mem::transmute(value) }
14751     }
14752 }
14753 impl ::std::convert::From<&IDWriteTextAnalyzer1> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalyzer1) -> Self14754     fn from(value: &IDWriteTextAnalyzer1) -> Self {
14755         ::std::convert::From::from(::std::clone::Clone::clone(value))
14756     }
14757 }
14758 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalyzer1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14759     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14760         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
14761     }
14762 }
14763 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalyzer1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>14764     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
14765         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
14766     }
14767 }
14768 impl ::std::convert::From<IDWriteTextAnalyzer1> for IDWriteTextAnalyzer {
from(value: IDWriteTextAnalyzer1) -> Self14769     fn from(value: IDWriteTextAnalyzer1) -> Self {
14770         unsafe { ::std::mem::transmute(value) }
14771     }
14772 }
14773 impl ::std::convert::From<&IDWriteTextAnalyzer1> for IDWriteTextAnalyzer {
from(value: &IDWriteTextAnalyzer1) -> Self14774     fn from(value: &IDWriteTextAnalyzer1) -> Self {
14775         ::std::convert::From::from(::std::clone::Clone::clone(value))
14776     }
14777 }
14778 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalyzer> for IDWriteTextAnalyzer1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer>14779     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer> {
14780         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalyzer>::into(self))
14781     }
14782 }
14783 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalyzer> for &IDWriteTextAnalyzer1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer>14784     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer> {
14785         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalyzer>::into(::std::clone::Clone::clone(self)))
14786     }
14787 }
14788 #[repr(C)]
14789 #[doc(hidden)]
14790 pub struct IDWriteTextAnalyzer1_abi(
14791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
14794     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14795     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14797     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14798     #[cfg(feature = "Win32_Foundation")]
14799     pub  unsafe extern "system" fn(
14800         this: ::windows::runtime::RawPtr,
14801         textstring: super::super::Foundation::PWSTR,
14802         textlength: u32,
14803         fontface: ::windows::runtime::RawPtr,
14804         issideways: super::super::Foundation::BOOL,
14805         isrighttoleft: super::super::Foundation::BOOL,
14806         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14807         localename: super::super::Foundation::PWSTR,
14808         numbersubstitution: ::windows::runtime::RawPtr,
14809         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14810         featurerangelengths: *const u32,
14811         featureranges: u32,
14812         maxglyphcount: u32,
14813         clustermap: *mut u16,
14814         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14815         glyphindices: *mut u16,
14816         glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES,
14817         actualglyphcount: *mut u32,
14818     ) -> ::windows::runtime::HRESULT,
14819     #[cfg(not(feature = "Win32_Foundation"))] usize,
14820     #[cfg(feature = "Win32_Foundation")]
14821     pub  unsafe extern "system" fn(
14822         this: ::windows::runtime::RawPtr,
14823         textstring: super::super::Foundation::PWSTR,
14824         clustermap: *const u16,
14825         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14826         textlength: u32,
14827         glyphindices: *const u16,
14828         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14829         glyphcount: u32,
14830         fontface: ::windows::runtime::RawPtr,
14831         fontemsize: f32,
14832         issideways: super::super::Foundation::BOOL,
14833         isrighttoleft: super::super::Foundation::BOOL,
14834         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14835         localename: super::super::Foundation::PWSTR,
14836         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14837         featurerangelengths: *const u32,
14838         featureranges: u32,
14839         glyphadvances: *mut f32,
14840         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14841     ) -> ::windows::runtime::HRESULT,
14842     #[cfg(not(feature = "Win32_Foundation"))] usize,
14843     #[cfg(feature = "Win32_Foundation")]
14844     pub  unsafe extern "system" fn(
14845         this: ::windows::runtime::RawPtr,
14846         textstring: super::super::Foundation::PWSTR,
14847         clustermap: *const u16,
14848         textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES,
14849         textlength: u32,
14850         glyphindices: *const u16,
14851         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14852         glyphcount: u32,
14853         fontface: ::windows::runtime::RawPtr,
14854         fontemsize: f32,
14855         pixelsperdip: f32,
14856         transform: *const DWRITE_MATRIX,
14857         usegdinatural: super::super::Foundation::BOOL,
14858         issideways: super::super::Foundation::BOOL,
14859         isrighttoleft: super::super::Foundation::BOOL,
14860         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14861         localename: super::super::Foundation::PWSTR,
14862         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14863         featurerangelengths: *const u32,
14864         featureranges: u32,
14865         glyphadvances: *mut f32,
14866         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14867     ) -> ::windows::runtime::HRESULT,
14868     #[cfg(not(feature = "Win32_Foundation"))] usize,
14869     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textlength: u32, glyphcount: u32, clustermap: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::HRESULT,
14870     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, baseline: DWRITE_BASELINE, isvertical: super::super::Foundation::BOOL, issimulationallowed: super::super::Foundation::BOOL, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, localename: super::super::Foundation::PWSTR, baselinecoordinate: *mut i32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
14871     #[cfg(not(feature = "Win32_Foundation"))] usize,
14872     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14873     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: super::super::Foundation::BOOL, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
14874     #[cfg(not(feature = "Win32_Foundation"))] usize,
14875     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, scriptproperties: *mut DWRITE_SCRIPT_PROPERTIES) -> ::windows::runtime::HRESULT,
14876     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textstring: super::super::Foundation::PWSTR, textlength: u32, fontface: ::windows::runtime::RawPtr, istextsimple: *mut super::super::Foundation::BOOL, textlengthread: *mut u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
14877     #[cfg(not(feature = "Win32_Foundation"))] usize,
14878     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, textstring: super::super::Foundation::PWSTR, clustermap: *const u16, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY) -> ::windows::runtime::HRESULT,
14879     #[cfg(not(feature = "Win32_Foundation"))] usize,
14880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::HRESULT,
14881     pub  unsafe extern "system" fn(
14882         this: ::windows::runtime::RawPtr,
14883         fontface: ::windows::runtime::RawPtr,
14884         fontemsize: f32,
14885         scriptanalysis: DWRITE_SCRIPT_ANALYSIS,
14886         textlength: u32,
14887         glyphcount: u32,
14888         maxglyphcount: u32,
14889         clustermap: *const u16,
14890         glyphindices: *const u16,
14891         glyphadvances: *const f32,
14892         justifiedglyphadvances: *const f32,
14893         justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET,
14894         glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14895         actualglyphcount: *mut u32,
14896         modifiedclustermap: *mut u16,
14897         modifiedglyphindices: *mut u16,
14898         modifiedglyphadvances: *mut f32,
14899         modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14900     ) -> ::windows::runtime::HRESULT,
14901 );
14902 #[repr(transparent)]
14903 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
14904 pub struct IDWriteTextAnalyzer2(::windows::runtime::IUnknown);
14905 impl IDWriteTextAnalyzer2 {
AnalyzeScript<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14906     pub unsafe fn AnalyzeScript<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14907         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14908     }
AnalyzeBidi<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14909     pub unsafe fn AnalyzeBidi<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14910         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14911     }
AnalyzeNumberSubstitution<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14912     pub unsafe fn AnalyzeNumberSubstitution<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14913         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14914     }
AnalyzeLineBreakpoints<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>14915     pub unsafe fn AnalyzeLineBreakpoints<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
14916         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
14917     }
14918     #[cfg(feature = "Win32_Foundation")]
GetGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>( &self, textstring: Param0, textlength: u32, fontface: Param2, issideways: Param3, isrighttoleft: Param4, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param6, numbersubstitution: Param7, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, maxglyphcount: u32, clustermap: *mut u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: *mut u16, glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: *mut u32, ) -> ::windows::runtime::Result<()>14919     pub unsafe fn GetGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteNumberSubstitution>>(
14920         &self,
14921         textstring: Param0,
14922         textlength: u32,
14923         fontface: Param2,
14924         issideways: Param3,
14925         isrighttoleft: Param4,
14926         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14927         localename: Param6,
14928         numbersubstitution: Param7,
14929         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14930         featurerangelengths: *const u32,
14931         featureranges: u32,
14932         maxglyphcount: u32,
14933         clustermap: *mut u16,
14934         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14935         glyphindices: *mut u16,
14936         glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES,
14937         actualglyphcount: *mut u32,
14938     ) -> ::windows::runtime::Result<()> {
14939         (::windows::runtime::Interface::vtable(self).7)(
14940             ::std::mem::transmute_copy(self),
14941             textstring.into_param().abi(),
14942             ::std::mem::transmute(textlength),
14943             fontface.into_param().abi(),
14944             issideways.into_param().abi(),
14945             isrighttoleft.into_param().abi(),
14946             ::std::mem::transmute(scriptanalysis),
14947             localename.into_param().abi(),
14948             numbersubstitution.into_param().abi(),
14949             ::std::mem::transmute(features),
14950             ::std::mem::transmute(featurerangelengths),
14951             ::std::mem::transmute(featureranges),
14952             ::std::mem::transmute(maxglyphcount),
14953             ::std::mem::transmute(clustermap),
14954             ::std::mem::transmute(textprops),
14955             ::std::mem::transmute(glyphindices),
14956             ::std::mem::transmute(glyphprops),
14957             ::std::mem::transmute(actualglyphcount),
14958         )
14959         .ok()
14960     }
14961     #[cfg(feature = "Win32_Foundation")]
GetGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param9: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param10: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, textstring: Param0, clustermap: *const u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: Param7, fontemsize: f32, issideways: Param9, isrighttoleft: Param10, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param12, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>14962     pub unsafe fn GetGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param9: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param10: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
14963         &self,
14964         textstring: Param0,
14965         clustermap: *const u16,
14966         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
14967         textlength: u32,
14968         glyphindices: *const u16,
14969         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
14970         glyphcount: u32,
14971         fontface: Param7,
14972         fontemsize: f32,
14973         issideways: Param9,
14974         isrighttoleft: Param10,
14975         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
14976         localename: Param12,
14977         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
14978         featurerangelengths: *const u32,
14979         featureranges: u32,
14980         glyphadvances: *mut f32,
14981         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
14982     ) -> ::windows::runtime::Result<()> {
14983         (::windows::runtime::Interface::vtable(self).8)(
14984             ::std::mem::transmute_copy(self),
14985             textstring.into_param().abi(),
14986             ::std::mem::transmute(clustermap),
14987             ::std::mem::transmute(textprops),
14988             ::std::mem::transmute(textlength),
14989             ::std::mem::transmute(glyphindices),
14990             ::std::mem::transmute(glyphprops),
14991             ::std::mem::transmute(glyphcount),
14992             fontface.into_param().abi(),
14993             ::std::mem::transmute(fontemsize),
14994             issideways.into_param().abi(),
14995             isrighttoleft.into_param().abi(),
14996             ::std::mem::transmute(scriptanalysis),
14997             localename.into_param().abi(),
14998             ::std::mem::transmute(features),
14999             ::std::mem::transmute(featurerangelengths),
15000             ::std::mem::transmute(featureranges),
15001             ::std::mem::transmute(glyphadvances),
15002             ::std::mem::transmute(glyphoffsets),
15003         )
15004         .ok()
15005     }
15006     #[cfg(feature = "Win32_Foundation")]
GetGdiCompatibleGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param11: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param13: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param15: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, textstring: Param0, clustermap: *const u16, textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: Param7, fontemsize: f32, pixelsperdip: f32, transform: *const DWRITE_MATRIX, usegdinatural: Param11, issideways: Param12, isrighttoleft: Param13, scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS, localename: Param15, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>15007     pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param7: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param11: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param12: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param13: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param15: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
15008         &self,
15009         textstring: Param0,
15010         clustermap: *const u16,
15011         textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES,
15012         textlength: u32,
15013         glyphindices: *const u16,
15014         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
15015         glyphcount: u32,
15016         fontface: Param7,
15017         fontemsize: f32,
15018         pixelsperdip: f32,
15019         transform: *const DWRITE_MATRIX,
15020         usegdinatural: Param11,
15021         issideways: Param12,
15022         isrighttoleft: Param13,
15023         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
15024         localename: Param15,
15025         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
15026         featurerangelengths: *const u32,
15027         featureranges: u32,
15028         glyphadvances: *mut f32,
15029         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
15030     ) -> ::windows::runtime::Result<()> {
15031         (::windows::runtime::Interface::vtable(self).9)(
15032             ::std::mem::transmute_copy(self),
15033             textstring.into_param().abi(),
15034             ::std::mem::transmute(clustermap),
15035             ::std::mem::transmute(textprops),
15036             ::std::mem::transmute(textlength),
15037             ::std::mem::transmute(glyphindices),
15038             ::std::mem::transmute(glyphprops),
15039             ::std::mem::transmute(glyphcount),
15040             fontface.into_param().abi(),
15041             ::std::mem::transmute(fontemsize),
15042             ::std::mem::transmute(pixelsperdip),
15043             ::std::mem::transmute(transform),
15044             usegdinatural.into_param().abi(),
15045             issideways.into_param().abi(),
15046             isrighttoleft.into_param().abi(),
15047             ::std::mem::transmute(scriptanalysis),
15048             localename.into_param().abi(),
15049             ::std::mem::transmute(features),
15050             ::std::mem::transmute(featurerangelengths),
15051             ::std::mem::transmute(featureranges),
15052             ::std::mem::transmute(glyphadvances),
15053             ::std::mem::transmute(glyphoffsets),
15054         )
15055         .ok()
15056     }
ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textlength: u32, glyphcount: u32, clustermap: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()>15057     pub unsafe fn ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textlength: u32, glyphcount: u32, clustermap: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()> {
15058         (::windows::runtime::Interface::vtable(self).10)(
15059             ::std::mem::transmute_copy(self),
15060             ::std::mem::transmute(leadingspacing),
15061             ::std::mem::transmute(trailingspacing),
15062             ::std::mem::transmute(minimumadvancewidth),
15063             ::std::mem::transmute(textlength),
15064             ::std::mem::transmute(glyphcount),
15065             ::std::mem::transmute(clustermap),
15066             ::std::mem::transmute(glyphadvances),
15067             ::std::mem::transmute(glyphoffsets),
15068             ::std::mem::transmute(glyphproperties),
15069             ::std::mem::transmute(modifiedglyphadvances),
15070             ::std::mem::transmute(modifiedglyphoffsets),
15071         )
15072         .ok()
15073     }
15074     #[cfg(feature = "Win32_Foundation")]
GetBaseline<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, fontface: Param0, baseline: DWRITE_BASELINE, isvertical: Param2, issimulationallowed: Param3, scriptanalysis: Param4, localename: Param5, baselinecoordinate: *mut i32, exists: *mut super::super::Foundation::BOOL, ) -> ::windows::runtime::Result<()>15075     pub unsafe fn GetBaseline<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param4: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
15076         &self,
15077         fontface: Param0,
15078         baseline: DWRITE_BASELINE,
15079         isvertical: Param2,
15080         issimulationallowed: Param3,
15081         scriptanalysis: Param4,
15082         localename: Param5,
15083         baselinecoordinate: *mut i32,
15084         exists: *mut super::super::Foundation::BOOL,
15085     ) -> ::windows::runtime::Result<()> {
15086         (::windows::runtime::Interface::vtable(self).11)(
15087             ::std::mem::transmute_copy(self),
15088             fontface.into_param().abi(),
15089             ::std::mem::transmute(baseline),
15090             isvertical.into_param().abi(),
15091             issimulationallowed.into_param().abi(),
15092             scriptanalysis.into_param().abi(),
15093             localename.into_param().abi(),
15094             ::std::mem::transmute(baselinecoordinate),
15095             ::std::mem::transmute(exists),
15096         )
15097         .ok()
15098     }
AnalyzeVerticalGlyphOrientation<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource1>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink1>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()>15099     pub unsafe fn AnalyzeVerticalGlyphOrientation<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSource1>, Param3: ::windows::runtime::IntoParam<'a, IDWriteTextAnalysisSink1>>(&self, analysissource: Param0, textposition: u32, textlength: u32, analysissink: Param3) -> ::windows::runtime::Result<()> {
15100         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), analysissource.into_param().abi(), ::std::mem::transmute(textposition), ::std::mem::transmute(textlength), analysissink.into_param().abi()).ok()
15101     }
15102     #[cfg(feature = "Win32_Foundation")]
GetGlyphOrientationTransform<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: Param1) -> ::windows::runtime::Result<DWRITE_MATRIX>15103     pub unsafe fn GetGlyphOrientationTransform<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: Param1) -> ::windows::runtime::Result<DWRITE_MATRIX> {
15104         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15105         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientationangle), issideways.into_param().abi(), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
15106     }
GetScriptProperties<'a, Param0: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>(&self, scriptanalysis: Param0) -> ::windows::runtime::Result<DWRITE_SCRIPT_PROPERTIES>15107     pub unsafe fn GetScriptProperties<'a, Param0: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>(&self, scriptanalysis: Param0) -> ::windows::runtime::Result<DWRITE_SCRIPT_PROPERTIES> {
15108         let mut result__: <DWRITE_SCRIPT_PROPERTIES as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15109         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), scriptanalysis.into_param().abi(), &mut result__).from_abi::<DWRITE_SCRIPT_PROPERTIES>(result__)
15110     }
15111     #[cfg(feature = "Win32_Foundation")]
GetTextComplexity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, textstring: Param0, textlength: u32, fontface: Param2, istextsimple: *mut super::super::Foundation::BOOL, textlengthread: *mut u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()>15112     pub unsafe fn GetTextComplexity<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, IDWriteFontFace>>(&self, textstring: Param0, textlength: u32, fontface: Param2, istextsimple: *mut super::super::Foundation::BOOL, textlengthread: *mut u32, glyphindices: *mut u16) -> ::windows::runtime::Result<()> {
15113         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), textstring.into_param().abi(), ::std::mem::transmute(textlength), fontface.into_param().abi(), ::std::mem::transmute(istextsimple), ::std::mem::transmute(textlengthread), ::std::mem::transmute(glyphindices)).ok()
15114     }
15115     #[cfg(feature = "Win32_Foundation")]
GetJustificationOpportunities<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, fontface: Param0, fontemsize: f32, scriptanalysis: Param2, textlength: u32, glyphcount: u32, textstring: Param5, clustermap: *const u16, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY, ) -> ::windows::runtime::Result<()>15116     pub unsafe fn GetJustificationOpportunities<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
15117         &self,
15118         fontface: Param0,
15119         fontemsize: f32,
15120         scriptanalysis: Param2,
15121         textlength: u32,
15122         glyphcount: u32,
15123         textstring: Param5,
15124         clustermap: *const u16,
15125         glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
15126         justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY,
15127     ) -> ::windows::runtime::Result<()> {
15128         (::windows::runtime::Interface::vtable(self).16)(
15129             ::std::mem::transmute_copy(self),
15130             fontface.into_param().abi(),
15131             ::std::mem::transmute(fontemsize),
15132             scriptanalysis.into_param().abi(),
15133             ::std::mem::transmute(textlength),
15134             ::std::mem::transmute(glyphcount),
15135             textstring.into_param().abi(),
15136             ::std::mem::transmute(clustermap),
15137             ::std::mem::transmute(glyphproperties),
15138             ::std::mem::transmute(justificationopportunities),
15139         )
15140         .ok()
15141     }
JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()>15142     pub unsafe fn JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::Result<()> {
15143         (::windows::runtime::Interface::vtable(self).17)(
15144             ::std::mem::transmute_copy(self),
15145             ::std::mem::transmute(linewidth),
15146             ::std::mem::transmute(glyphcount),
15147             ::std::mem::transmute(justificationopportunities),
15148             ::std::mem::transmute(glyphadvances),
15149             ::std::mem::transmute(glyphoffsets),
15150             ::std::mem::transmute(justifiedglyphadvances),
15151             ::std::mem::transmute(justifiedglyphoffsets),
15152         )
15153         .ok()
15154     }
GetJustifiedGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>( &self, fontface: Param0, fontemsize: f32, scriptanalysis: Param2, textlength: u32, glyphcount: u32, maxglyphcount: u32, clustermap: *const u16, glyphindices: *const u16, glyphadvances: *const f32, justifiedglyphadvances: *const f32, justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: *mut u32, modifiedclustermap: *mut u16, modifiedglyphindices: *mut u16, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET, ) -> ::windows::runtime::Result<()>15155     pub unsafe fn GetJustifiedGlyphs<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param2: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>>(
15156         &self,
15157         fontface: Param0,
15158         fontemsize: f32,
15159         scriptanalysis: Param2,
15160         textlength: u32,
15161         glyphcount: u32,
15162         maxglyphcount: u32,
15163         clustermap: *const u16,
15164         glyphindices: *const u16,
15165         glyphadvances: *const f32,
15166         justifiedglyphadvances: *const f32,
15167         justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET,
15168         glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
15169         actualglyphcount: *mut u32,
15170         modifiedclustermap: *mut u16,
15171         modifiedglyphindices: *mut u16,
15172         modifiedglyphadvances: *mut f32,
15173         modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET,
15174     ) -> ::windows::runtime::Result<()> {
15175         (::windows::runtime::Interface::vtable(self).18)(
15176             ::std::mem::transmute_copy(self),
15177             fontface.into_param().abi(),
15178             ::std::mem::transmute(fontemsize),
15179             scriptanalysis.into_param().abi(),
15180             ::std::mem::transmute(textlength),
15181             ::std::mem::transmute(glyphcount),
15182             ::std::mem::transmute(maxglyphcount),
15183             ::std::mem::transmute(clustermap),
15184             ::std::mem::transmute(glyphindices),
15185             ::std::mem::transmute(glyphadvances),
15186             ::std::mem::transmute(justifiedglyphadvances),
15187             ::std::mem::transmute(justifiedglyphoffsets),
15188             ::std::mem::transmute(glyphproperties),
15189             ::std::mem::transmute(actualglyphcount),
15190             ::std::mem::transmute(modifiedclustermap),
15191             ::std::mem::transmute(modifiedglyphindices),
15192             ::std::mem::transmute(modifiedglyphadvances),
15193             ::std::mem::transmute(modifiedglyphoffsets),
15194         )
15195         .ok()
15196     }
15197     #[cfg(feature = "Win32_Foundation")]
GetGlyphOrientationTransform2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<DWRITE_MATRIX>15198     pub unsafe fn GetGlyphOrientationTransform2<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<DWRITE_MATRIX> {
15199         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15200         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientationangle), issideways.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
15201     }
15202     #[cfg(feature = "Win32_Foundation")]
GetTypographicFeatures<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontface: Param0, scriptanalysis: Param1, localename: Param2, maxtagcount: u32, actualtagcount: *mut u32, tags: *mut DWRITE_FONT_FEATURE_TAG) -> ::windows::runtime::Result<()>15203     pub unsafe fn GetTypographicFeatures<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontface: Param0, scriptanalysis: Param1, localename: Param2, maxtagcount: u32, actualtagcount: *mut u32, tags: *mut DWRITE_FONT_FEATURE_TAG) -> ::windows::runtime::Result<()> {
15204         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), fontface.into_param().abi(), scriptanalysis.into_param().abi(), localename.into_param().abi(), ::std::mem::transmute(maxtagcount), ::std::mem::transmute(actualtagcount), ::std::mem::transmute(tags)).ok()
15205     }
15206     #[cfg(feature = "Win32_Foundation")]
CheckTypographicFeature<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontface: Param0, scriptanalysis: Param1, localename: Param2, featuretag: DWRITE_FONT_FEATURE_TAG, glyphcount: u32, glyphindices: *const u16, featureapplies: *mut u8) -> ::windows::runtime::Result<()>15207     pub unsafe fn CheckTypographicFeature<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFace>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_SCRIPT_ANALYSIS>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, fontface: Param0, scriptanalysis: Param1, localename: Param2, featuretag: DWRITE_FONT_FEATURE_TAG, glyphcount: u32, glyphindices: *const u16, featureapplies: *mut u8) -> ::windows::runtime::Result<()> {
15208         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), fontface.into_param().abi(), scriptanalysis.into_param().abi(), localename.into_param().abi(), ::std::mem::transmute(featuretag), ::std::mem::transmute(glyphcount), ::std::mem::transmute(glyphindices), ::std::mem::transmute(featureapplies)).ok()
15209     }
15210 }
15211 unsafe impl ::windows::runtime::Interface for IDWriteTextAnalyzer2 {
15212     type Vtable = IDWriteTextAnalyzer2_abi;
15213     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1429905395, 22163, 19959, [181, 43, 116, 128, 111, 127, 46, 185]);
15214 }
15215 impl ::std::convert::From<IDWriteTextAnalyzer2> for ::windows::runtime::IUnknown {
from(value: IDWriteTextAnalyzer2) -> Self15216     fn from(value: IDWriteTextAnalyzer2) -> Self {
15217         unsafe { ::std::mem::transmute(value) }
15218     }
15219 }
15220 impl ::std::convert::From<&IDWriteTextAnalyzer2> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextAnalyzer2) -> Self15221     fn from(value: &IDWriteTextAnalyzer2) -> Self {
15222         ::std::convert::From::from(::std::clone::Clone::clone(value))
15223     }
15224 }
15225 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextAnalyzer2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15226     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15227         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
15228     }
15229 }
15230 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextAnalyzer2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15231     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15232         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
15233     }
15234 }
15235 impl ::std::convert::From<IDWriteTextAnalyzer2> for IDWriteTextAnalyzer1 {
from(value: IDWriteTextAnalyzer2) -> Self15236     fn from(value: IDWriteTextAnalyzer2) -> Self {
15237         unsafe { ::std::mem::transmute(value) }
15238     }
15239 }
15240 impl ::std::convert::From<&IDWriteTextAnalyzer2> for IDWriteTextAnalyzer1 {
from(value: &IDWriteTextAnalyzer2) -> Self15241     fn from(value: &IDWriteTextAnalyzer2) -> Self {
15242         ::std::convert::From::from(::std::clone::Clone::clone(value))
15243     }
15244 }
15245 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalyzer1> for IDWriteTextAnalyzer2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer1>15246     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer1> {
15247         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalyzer1>::into(self))
15248     }
15249 }
15250 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalyzer1> for &IDWriteTextAnalyzer2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer1>15251     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer1> {
15252         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalyzer1>::into(::std::clone::Clone::clone(self)))
15253     }
15254 }
15255 impl ::std::convert::From<IDWriteTextAnalyzer2> for IDWriteTextAnalyzer {
from(value: IDWriteTextAnalyzer2) -> Self15256     fn from(value: IDWriteTextAnalyzer2) -> Self {
15257         unsafe { ::std::mem::transmute(value) }
15258     }
15259 }
15260 impl ::std::convert::From<&IDWriteTextAnalyzer2> for IDWriteTextAnalyzer {
from(value: &IDWriteTextAnalyzer2) -> Self15261     fn from(value: &IDWriteTextAnalyzer2) -> Self {
15262         ::std::convert::From::from(::std::clone::Clone::clone(value))
15263     }
15264 }
15265 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalyzer> for IDWriteTextAnalyzer2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer>15266     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer> {
15267         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalyzer>::into(self))
15268     }
15269 }
15270 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextAnalyzer> for &IDWriteTextAnalyzer2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer>15271     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextAnalyzer> {
15272         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextAnalyzer>::into(::std::clone::Clone::clone(self)))
15273     }
15274 }
15275 #[repr(C)]
15276 #[doc(hidden)]
15277 pub struct IDWriteTextAnalyzer2_abi(
15278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15280     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15283     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15285     #[cfg(feature = "Win32_Foundation")]
15286     pub  unsafe extern "system" fn(
15287         this: ::windows::runtime::RawPtr,
15288         textstring: super::super::Foundation::PWSTR,
15289         textlength: u32,
15290         fontface: ::windows::runtime::RawPtr,
15291         issideways: super::super::Foundation::BOOL,
15292         isrighttoleft: super::super::Foundation::BOOL,
15293         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
15294         localename: super::super::Foundation::PWSTR,
15295         numbersubstitution: ::windows::runtime::RawPtr,
15296         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
15297         featurerangelengths: *const u32,
15298         featureranges: u32,
15299         maxglyphcount: u32,
15300         clustermap: *mut u16,
15301         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
15302         glyphindices: *mut u16,
15303         glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES,
15304         actualglyphcount: *mut u32,
15305     ) -> ::windows::runtime::HRESULT,
15306     #[cfg(not(feature = "Win32_Foundation"))] usize,
15307     #[cfg(feature = "Win32_Foundation")]
15308     pub  unsafe extern "system" fn(
15309         this: ::windows::runtime::RawPtr,
15310         textstring: super::super::Foundation::PWSTR,
15311         clustermap: *const u16,
15312         textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES,
15313         textlength: u32,
15314         glyphindices: *const u16,
15315         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
15316         glyphcount: u32,
15317         fontface: ::windows::runtime::RawPtr,
15318         fontemsize: f32,
15319         issideways: super::super::Foundation::BOOL,
15320         isrighttoleft: super::super::Foundation::BOOL,
15321         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
15322         localename: super::super::Foundation::PWSTR,
15323         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
15324         featurerangelengths: *const u32,
15325         featureranges: u32,
15326         glyphadvances: *mut f32,
15327         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
15328     ) -> ::windows::runtime::HRESULT,
15329     #[cfg(not(feature = "Win32_Foundation"))] usize,
15330     #[cfg(feature = "Win32_Foundation")]
15331     pub  unsafe extern "system" fn(
15332         this: ::windows::runtime::RawPtr,
15333         textstring: super::super::Foundation::PWSTR,
15334         clustermap: *const u16,
15335         textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES,
15336         textlength: u32,
15337         glyphindices: *const u16,
15338         glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
15339         glyphcount: u32,
15340         fontface: ::windows::runtime::RawPtr,
15341         fontemsize: f32,
15342         pixelsperdip: f32,
15343         transform: *const DWRITE_MATRIX,
15344         usegdinatural: super::super::Foundation::BOOL,
15345         issideways: super::super::Foundation::BOOL,
15346         isrighttoleft: super::super::Foundation::BOOL,
15347         scriptanalysis: *const DWRITE_SCRIPT_ANALYSIS,
15348         localename: super::super::Foundation::PWSTR,
15349         features: *const *const DWRITE_TYPOGRAPHIC_FEATURES,
15350         featurerangelengths: *const u32,
15351         featureranges: u32,
15352         glyphadvances: *mut f32,
15353         glyphoffsets: *mut DWRITE_GLYPH_OFFSET,
15354     ) -> ::windows::runtime::HRESULT,
15355     #[cfg(not(feature = "Win32_Foundation"))] usize,
15356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textlength: u32, glyphcount: u32, clustermap: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::HRESULT,
15357     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, baseline: DWRITE_BASELINE, isvertical: super::super::Foundation::BOOL, issimulationallowed: super::super::Foundation::BOOL, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, localename: super::super::Foundation::PWSTR, baselinecoordinate: *mut i32, exists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
15358     #[cfg(not(feature = "Win32_Foundation"))] usize,
15359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, analysissource: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, analysissink: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15360     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: super::super::Foundation::BOOL, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
15361     #[cfg(not(feature = "Win32_Foundation"))] usize,
15362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, scriptproperties: *mut DWRITE_SCRIPT_PROPERTIES) -> ::windows::runtime::HRESULT,
15363     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textstring: super::super::Foundation::PWSTR, textlength: u32, fontface: ::windows::runtime::RawPtr, istextsimple: *mut super::super::Foundation::BOOL, textlengthread: *mut u32, glyphindices: *mut u16) -> ::windows::runtime::HRESULT,
15364     #[cfg(not(feature = "Win32_Foundation"))] usize,
15365     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, textstring: super::super::Foundation::PWSTR, clustermap: *const u16, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY) -> ::windows::runtime::HRESULT,
15366     #[cfg(not(feature = "Win32_Foundation"))] usize,
15367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::runtime::HRESULT,
15368     pub  unsafe extern "system" fn(
15369         this: ::windows::runtime::RawPtr,
15370         fontface: ::windows::runtime::RawPtr,
15371         fontemsize: f32,
15372         scriptanalysis: DWRITE_SCRIPT_ANALYSIS,
15373         textlength: u32,
15374         glyphcount: u32,
15375         maxglyphcount: u32,
15376         clustermap: *const u16,
15377         glyphindices: *const u16,
15378         glyphadvances: *const f32,
15379         justifiedglyphadvances: *const f32,
15380         justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET,
15381         glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES,
15382         actualglyphcount: *mut u32,
15383         modifiedclustermap: *mut u16,
15384         modifiedglyphindices: *mut u16,
15385         modifiedglyphadvances: *mut f32,
15386         modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET,
15387     ) -> ::windows::runtime::HRESULT,
15388     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, issideways: super::super::Foundation::BOOL, originx: f32, originy: f32, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
15389     #[cfg(not(feature = "Win32_Foundation"))] usize,
15390     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, localename: super::super::Foundation::PWSTR, maxtagcount: u32, actualtagcount: *mut u32, tags: *mut DWRITE_FONT_FEATURE_TAG) -> ::windows::runtime::HRESULT,
15391     #[cfg(not(feature = "Win32_Foundation"))] usize,
15392     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontface: ::windows::runtime::RawPtr, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, localename: super::super::Foundation::PWSTR, featuretag: DWRITE_FONT_FEATURE_TAG, glyphcount: u32, glyphindices: *const u16, featureapplies: *mut u8) -> ::windows::runtime::HRESULT,
15393     #[cfg(not(feature = "Win32_Foundation"))] usize,
15394 );
15395 #[repr(transparent)]
15396 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
15397 pub struct IDWriteTextFormat(::windows::runtime::IUnknown);
15398 impl IDWriteTextFormat {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>15399     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
15400         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
15401     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>15402     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
15403         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
15404     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>15405     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
15406         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
15407     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>15408     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
15409         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
15410     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>15411     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
15412         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
15413     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>15414     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
15415         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
15416     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>15417     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
15418         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
15419     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>15420     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
15421         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15422     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT15423     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
15424         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
15425     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT15426     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
15427         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
15428     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING15429     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
15430         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
15431     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION15432     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
15433         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
15434     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION15435     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
15436         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
15437     }
GetIncrementalTabStop(&self) -> f3215438     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
15439         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
15440     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>15441     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
15442         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
15443     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>15444     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
15445         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15446     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>15447     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
15448         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15449         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
15450     }
GetFontFamilyNameLength(&self) -> u3215451     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
15452         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
15453     }
15454     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>15455     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
15456         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
15457     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT15458     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
15459         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
15460     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE15461     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
15462         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
15463     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH15464     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
15465         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
15466     }
GetFontSize(&self) -> f3215467     pub unsafe fn GetFontSize(&self) -> f32 {
15468         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
15469     }
GetLocaleNameLength(&self) -> u3215470     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
15471         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
15472     }
15473     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>15474     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
15475         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
15476     }
15477 }
15478 unsafe impl ::windows::runtime::Interface for IDWriteTextFormat {
15479     type Vtable = IDWriteTextFormat_abi;
15480     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2626709528, 12759, 20435, [161, 81, 124, 94, 34, 93, 181, 90]);
15481 }
15482 impl ::std::convert::From<IDWriteTextFormat> for ::windows::runtime::IUnknown {
from(value: IDWriteTextFormat) -> Self15483     fn from(value: IDWriteTextFormat) -> Self {
15484         unsafe { ::std::mem::transmute(value) }
15485     }
15486 }
15487 impl ::std::convert::From<&IDWriteTextFormat> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextFormat) -> Self15488     fn from(value: &IDWriteTextFormat) -> Self {
15489         ::std::convert::From::from(::std::clone::Clone::clone(value))
15490     }
15491 }
15492 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextFormat {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15493     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15494         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
15495     }
15496 }
15497 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextFormat {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15498     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15499         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
15500     }
15501 }
15502 #[repr(C)]
15503 #[doc(hidden)]
15504 pub struct IDWriteTextFormat_abi(
15505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15508     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
15509     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
15510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
15511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
15512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
15513     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
15514     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15515     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
15516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
15517     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
15518     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
15519     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
15520     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
15521     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
15522     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15523     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
15524     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15525     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15526     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
15527     #[cfg(not(feature = "Win32_Foundation"))] usize,
15528     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
15529     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
15530     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
15531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
15532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15533     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
15534     #[cfg(not(feature = "Win32_Foundation"))] usize,
15535 );
15536 #[repr(transparent)]
15537 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
15538 pub struct IDWriteTextFormat1(::windows::runtime::IUnknown);
15539 impl IDWriteTextFormat1 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>15540     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
15541         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
15542     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>15543     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
15544         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
15545     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>15546     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
15547         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
15548     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>15549     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
15550         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
15551     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>15552     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
15553         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
15554     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>15555     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
15556         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
15557     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>15558     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
15559         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
15560     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>15561     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
15562         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15563     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT15564     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
15565         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
15566     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT15567     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
15568         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
15569     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING15570     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
15571         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
15572     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION15573     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
15574         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
15575     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION15576     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
15577         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
15578     }
GetIncrementalTabStop(&self) -> f3215579     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
15580         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
15581     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>15582     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
15583         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
15584     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>15585     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
15586         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15587     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>15588     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
15589         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15590         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
15591     }
GetFontFamilyNameLength(&self) -> u3215592     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
15593         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
15594     }
15595     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>15596     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
15597         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
15598     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT15599     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
15600         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
15601     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE15602     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
15603         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
15604     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH15605     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
15606         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
15607     }
GetFontSize(&self) -> f3215608     pub unsafe fn GetFontSize(&self) -> f32 {
15609         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
15610     }
GetLocaleNameLength(&self) -> u3215611     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
15612         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
15613     }
15614     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>15615     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
15616         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
15617     }
SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()>15618     pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()> {
15619         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientation)).ok()
15620     }
GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION15621     pub unsafe fn GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION {
15622         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
15623     }
15624     #[cfg(feature = "Win32_Foundation")]
SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()>15625     pub unsafe fn SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()> {
15626         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), islastlinewrappingenabled.into_param().abi()).ok()
15627     }
15628     #[cfg(feature = "Win32_Foundation")]
GetLastLineWrapping(&self) -> super::super::Foundation::BOOL15629     pub unsafe fn GetLastLineWrapping(&self) -> super::super::Foundation::BOOL {
15630         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
15631     }
SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()>15632     pub unsafe fn SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()> {
15633         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(opticalalignment)).ok()
15634     }
GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT15635     pub unsafe fn GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT {
15636         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self)))
15637     }
SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>15638     pub unsafe fn SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
15639         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
15640     }
GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>15641     pub unsafe fn GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
15642         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15643         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
15644     }
15645 }
15646 unsafe impl ::windows::runtime::Interface for IDWriteTextFormat1 {
15647     type Vtable = IDWriteTextFormat1_abi;
15648     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1595362121, 3467, 19707, [139, 202, 241, 204, 233, 208, 108, 103]);
15649 }
15650 impl ::std::convert::From<IDWriteTextFormat1> for ::windows::runtime::IUnknown {
from(value: IDWriteTextFormat1) -> Self15651     fn from(value: IDWriteTextFormat1) -> Self {
15652         unsafe { ::std::mem::transmute(value) }
15653     }
15654 }
15655 impl ::std::convert::From<&IDWriteTextFormat1> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextFormat1) -> Self15656     fn from(value: &IDWriteTextFormat1) -> Self {
15657         ::std::convert::From::from(::std::clone::Clone::clone(value))
15658     }
15659 }
15660 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextFormat1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15661     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15662         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
15663     }
15664 }
15665 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextFormat1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15666     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15667         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
15668     }
15669 }
15670 impl ::std::convert::From<IDWriteTextFormat1> for IDWriteTextFormat {
from(value: IDWriteTextFormat1) -> Self15671     fn from(value: IDWriteTextFormat1) -> Self {
15672         unsafe { ::std::mem::transmute(value) }
15673     }
15674 }
15675 impl ::std::convert::From<&IDWriteTextFormat1> for IDWriteTextFormat {
from(value: &IDWriteTextFormat1) -> Self15676     fn from(value: &IDWriteTextFormat1) -> Self {
15677         ::std::convert::From::from(::std::clone::Clone::clone(value))
15678     }
15679 }
15680 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextFormat1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>15681     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
15682         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
15683     }
15684 }
15685 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextFormat1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>15686     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
15687         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
15688     }
15689 }
15690 #[repr(C)]
15691 #[doc(hidden)]
15692 pub struct IDWriteTextFormat1_abi(
15693     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15694     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15695     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15696     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
15697     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
15698     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
15699     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
15700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
15701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
15702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
15704     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
15705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
15706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
15707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
15708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
15709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
15710     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15711     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
15712     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15713     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15714     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
15715     #[cfg(not(feature = "Win32_Foundation"))] usize,
15716     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
15717     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
15718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
15719     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
15720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15721     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
15722     #[cfg(not(feature = "Win32_Foundation"))] usize,
15723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::HRESULT,
15724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_VERTICAL_GLYPH_ORIENTATION,
15725     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, islastlinewrappingenabled: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
15726     #[cfg(not(feature = "Win32_Foundation"))] usize,
15727     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
15728     #[cfg(not(feature = "Win32_Foundation"))] usize,
15729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::HRESULT,
15730     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_OPTICAL_ALIGNMENT,
15731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15733 );
15734 #[repr(transparent)]
15735 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
15736 pub struct IDWriteTextFormat2(::windows::runtime::IUnknown);
15737 impl IDWriteTextFormat2 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>15738     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
15739         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
15740     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>15741     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
15742         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
15743     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>15744     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
15745         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
15746     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>15747     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
15748         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
15749     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>15750     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
15751         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
15752     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>15753     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
15754         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
15755     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>15756     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
15757         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
15758     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>15759     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
15760         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15761     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT15762     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
15763         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
15764     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT15765     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
15766         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
15767     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING15768     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
15769         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
15770     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION15771     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
15772         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
15773     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION15774     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
15775         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
15776     }
GetIncrementalTabStop(&self) -> f3215777     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
15778         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
15779     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>15780     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
15781         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
15782     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>15783     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
15784         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15785     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>15786     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
15787         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15788         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
15789     }
GetFontFamilyNameLength(&self) -> u3215790     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
15791         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
15792     }
15793     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>15794     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
15795         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
15796     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT15797     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
15798         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
15799     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE15800     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
15801         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
15802     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH15803     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
15804         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
15805     }
GetFontSize(&self) -> f3215806     pub unsafe fn GetFontSize(&self) -> f32 {
15807         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
15808     }
GetLocaleNameLength(&self) -> u3215809     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
15810         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
15811     }
15812     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>15813     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
15814         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
15815     }
SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()>15816     pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()> {
15817         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientation)).ok()
15818     }
GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION15819     pub unsafe fn GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION {
15820         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
15821     }
15822     #[cfg(feature = "Win32_Foundation")]
SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()>15823     pub unsafe fn SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()> {
15824         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), islastlinewrappingenabled.into_param().abi()).ok()
15825     }
15826     #[cfg(feature = "Win32_Foundation")]
GetLastLineWrapping(&self) -> super::super::Foundation::BOOL15827     pub unsafe fn GetLastLineWrapping(&self) -> super::super::Foundation::BOOL {
15828         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
15829     }
SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()>15830     pub unsafe fn SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()> {
15831         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(opticalalignment)).ok()
15832     }
GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT15833     pub unsafe fn GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT {
15834         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self)))
15835     }
SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>15836     pub unsafe fn SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
15837         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
15838     }
GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>15839     pub unsafe fn GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
15840         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15841         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
15842     }
SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()>15843     pub unsafe fn SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()> {
15844         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingoptions)).ok()
15845     }
GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING>15846     pub unsafe fn GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING> {
15847         let mut result__: <DWRITE_LINE_SPACING as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
15848         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_LINE_SPACING>(result__)
15849     }
15850 }
15851 unsafe impl ::windows::runtime::Interface for IDWriteTextFormat2 {
15852     type Vtable = IDWriteTextFormat2_abi;
15853     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4135456477, 40509, 20172, [140, 50, 65, 131, 37, 61, 254, 112]);
15854 }
15855 impl ::std::convert::From<IDWriteTextFormat2> for ::windows::runtime::IUnknown {
from(value: IDWriteTextFormat2) -> Self15856     fn from(value: IDWriteTextFormat2) -> Self {
15857         unsafe { ::std::mem::transmute(value) }
15858     }
15859 }
15860 impl ::std::convert::From<&IDWriteTextFormat2> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextFormat2) -> Self15861     fn from(value: &IDWriteTextFormat2) -> Self {
15862         ::std::convert::From::from(::std::clone::Clone::clone(value))
15863     }
15864 }
15865 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextFormat2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15866     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15867         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
15868     }
15869 }
15870 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextFormat2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>15871     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
15872         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
15873     }
15874 }
15875 impl ::std::convert::From<IDWriteTextFormat2> for IDWriteTextFormat1 {
from(value: IDWriteTextFormat2) -> Self15876     fn from(value: IDWriteTextFormat2) -> Self {
15877         unsafe { ::std::mem::transmute(value) }
15878     }
15879 }
15880 impl ::std::convert::From<&IDWriteTextFormat2> for IDWriteTextFormat1 {
from(value: &IDWriteTextFormat2) -> Self15881     fn from(value: &IDWriteTextFormat2) -> Self {
15882         ::std::convert::From::from(::std::clone::Clone::clone(value))
15883     }
15884 }
15885 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat1> for IDWriteTextFormat2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1>15886     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1> {
15887         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat1>::into(self))
15888     }
15889 }
15890 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat1> for &IDWriteTextFormat2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1>15891     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1> {
15892         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat1>::into(::std::clone::Clone::clone(self)))
15893     }
15894 }
15895 impl ::std::convert::From<IDWriteTextFormat2> for IDWriteTextFormat {
from(value: IDWriteTextFormat2) -> Self15896     fn from(value: IDWriteTextFormat2) -> Self {
15897         unsafe { ::std::mem::transmute(value) }
15898     }
15899 }
15900 impl ::std::convert::From<&IDWriteTextFormat2> for IDWriteTextFormat {
from(value: &IDWriteTextFormat2) -> Self15901     fn from(value: &IDWriteTextFormat2) -> Self {
15902         ::std::convert::From::from(::std::clone::Clone::clone(value))
15903     }
15904 }
15905 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextFormat2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>15906     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
15907         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
15908     }
15909 }
15910 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextFormat2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>15911     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
15912         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
15913     }
15914 }
15915 #[repr(C)]
15916 #[doc(hidden)]
15917 pub struct IDWriteTextFormat2_abi(
15918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
15922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
15923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
15924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
15925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
15926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
15927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
15929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
15930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
15931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
15932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
15933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
15934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
15935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
15937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15939     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
15940     #[cfg(not(feature = "Win32_Foundation"))] usize,
15941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
15942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
15943     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
15944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
15945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15946     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
15947     #[cfg(not(feature = "Win32_Foundation"))] usize,
15948     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::HRESULT,
15949     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_VERTICAL_GLYPH_ORIENTATION,
15950     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, islastlinewrappingenabled: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
15951     #[cfg(not(feature = "Win32_Foundation"))] usize,
15952     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
15953     #[cfg(not(feature = "Win32_Foundation"))] usize,
15954     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::HRESULT,
15955     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_OPTICAL_ALIGNMENT,
15956     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15957     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
15958     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
15959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *mut DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
15960 );
15961 #[repr(transparent)]
15962 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
15963 pub struct IDWriteTextFormat3(::windows::runtime::IUnknown);
15964 impl IDWriteTextFormat3 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>15965     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
15966         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
15967     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>15968     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
15969         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
15970     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>15971     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
15972         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
15973     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>15974     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
15975         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
15976     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>15977     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
15978         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
15979     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>15980     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
15981         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
15982     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>15983     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
15984         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
15985     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>15986     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
15987         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
15988     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT15989     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
15990         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
15991     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT15992     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
15993         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
15994     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING15995     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
15996         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
15997     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION15998     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
15999         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
16000     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION16001     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
16002         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
16003     }
GetIncrementalTabStop(&self) -> f3216004     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
16005         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
16006     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>16007     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
16008         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
16009     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>16010     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
16011         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
16012     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>16013     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
16014         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16015         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
16016     }
GetFontFamilyNameLength(&self) -> u3216017     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
16018         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
16019     }
16020     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>16021     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
16022         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
16023     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT16024     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
16025         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
16026     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE16027     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
16028         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
16029     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH16030     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
16031         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
16032     }
GetFontSize(&self) -> f3216033     pub unsafe fn GetFontSize(&self) -> f32 {
16034         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
16035     }
GetLocaleNameLength(&self) -> u3216036     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
16037         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
16038     }
16039     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>16040     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
16041         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
16042     }
SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()>16043     pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()> {
16044         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientation)).ok()
16045     }
GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION16046     pub unsafe fn GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION {
16047         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self)))
16048     }
16049     #[cfg(feature = "Win32_Foundation")]
SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()>16050     pub unsafe fn SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()> {
16051         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), islastlinewrappingenabled.into_param().abi()).ok()
16052     }
16053     #[cfg(feature = "Win32_Foundation")]
GetLastLineWrapping(&self) -> super::super::Foundation::BOOL16054     pub unsafe fn GetLastLineWrapping(&self) -> super::super::Foundation::BOOL {
16055         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self)))
16056     }
SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()>16057     pub unsafe fn SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()> {
16058         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(opticalalignment)).ok()
16059     }
GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT16060     pub unsafe fn GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT {
16061         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self)))
16062     }
SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>16063     pub unsafe fn SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
16064         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
16065     }
GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>16066     pub unsafe fn GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
16067         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16068         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
16069     }
SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()>16070     pub unsafe fn SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()> {
16071         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingoptions)).ok()
16072     }
GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING>16073     pub unsafe fn GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING> {
16074         let mut result__: <DWRITE_LINE_SPACING as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16075         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_LINE_SPACING>(result__)
16076     }
SetFontAxisValues(&self, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()>16077     pub unsafe fn SetFontAxisValues(&self, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()> {
16078         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount)).ok()
16079     }
GetFontAxisValueCount(&self) -> u3216080     pub unsafe fn GetFontAxisValueCount(&self) -> u32 {
16081         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self)))
16082     }
GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()>16083     pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::Result<()> {
16084         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount)).ok()
16085     }
GetAutomaticFontAxes(&self) -> DWRITE_AUTOMATIC_FONT_AXES16086     pub unsafe fn GetAutomaticFontAxes(&self) -> DWRITE_AUTOMATIC_FONT_AXES {
16087         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self)))
16088     }
SetAutomaticFontAxes(&self, automaticfontaxes: DWRITE_AUTOMATIC_FONT_AXES) -> ::windows::runtime::Result<()>16089     pub unsafe fn SetAutomaticFontAxes(&self, automaticfontaxes: DWRITE_AUTOMATIC_FONT_AXES) -> ::windows::runtime::Result<()> {
16090         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), ::std::mem::transmute(automaticfontaxes)).ok()
16091     }
16092 }
16093 unsafe impl ::windows::runtime::Interface for IDWriteTextFormat3 {
16094     type Vtable = IDWriteTextFormat3_abi;
16095     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1832605249, 58704, 17165, [168, 91, 183, 191, 72, 169, 52, 39]);
16096 }
16097 impl ::std::convert::From<IDWriteTextFormat3> for ::windows::runtime::IUnknown {
from(value: IDWriteTextFormat3) -> Self16098     fn from(value: IDWriteTextFormat3) -> Self {
16099         unsafe { ::std::mem::transmute(value) }
16100     }
16101 }
16102 impl ::std::convert::From<&IDWriteTextFormat3> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextFormat3) -> Self16103     fn from(value: &IDWriteTextFormat3) -> Self {
16104         ::std::convert::From::from(::std::clone::Clone::clone(value))
16105     }
16106 }
16107 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>16108     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
16109         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
16110     }
16111 }
16112 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>16113     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
16114         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
16115     }
16116 }
16117 impl ::std::convert::From<IDWriteTextFormat3> for IDWriteTextFormat2 {
from(value: IDWriteTextFormat3) -> Self16118     fn from(value: IDWriteTextFormat3) -> Self {
16119         unsafe { ::std::mem::transmute(value) }
16120     }
16121 }
16122 impl ::std::convert::From<&IDWriteTextFormat3> for IDWriteTextFormat2 {
from(value: &IDWriteTextFormat3) -> Self16123     fn from(value: &IDWriteTextFormat3) -> Self {
16124         ::std::convert::From::from(::std::clone::Clone::clone(value))
16125     }
16126 }
16127 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat2> for IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat2>16128     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat2> {
16129         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat2>::into(self))
16130     }
16131 }
16132 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat2> for &IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat2>16133     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat2> {
16134         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat2>::into(::std::clone::Clone::clone(self)))
16135     }
16136 }
16137 impl ::std::convert::From<IDWriteTextFormat3> for IDWriteTextFormat1 {
from(value: IDWriteTextFormat3) -> Self16138     fn from(value: IDWriteTextFormat3) -> Self {
16139         unsafe { ::std::mem::transmute(value) }
16140     }
16141 }
16142 impl ::std::convert::From<&IDWriteTextFormat3> for IDWriteTextFormat1 {
from(value: &IDWriteTextFormat3) -> Self16143     fn from(value: &IDWriteTextFormat3) -> Self {
16144         ::std::convert::From::from(::std::clone::Clone::clone(value))
16145     }
16146 }
16147 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat1> for IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1>16148     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1> {
16149         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat1>::into(self))
16150     }
16151 }
16152 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat1> for &IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1>16153     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat1> {
16154         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat1>::into(::std::clone::Clone::clone(self)))
16155     }
16156 }
16157 impl ::std::convert::From<IDWriteTextFormat3> for IDWriteTextFormat {
from(value: IDWriteTextFormat3) -> Self16158     fn from(value: IDWriteTextFormat3) -> Self {
16159         unsafe { ::std::mem::transmute(value) }
16160     }
16161 }
16162 impl ::std::convert::From<&IDWriteTextFormat3> for IDWriteTextFormat {
from(value: &IDWriteTextFormat3) -> Self16163     fn from(value: &IDWriteTextFormat3) -> Self {
16164         ::std::convert::From::from(::std::clone::Clone::clone(value))
16165     }
16166 }
16167 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>16168     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
16169         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
16170     }
16171 }
16172 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextFormat3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>16173     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
16174         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
16175     }
16176 }
16177 #[repr(C)]
16178 #[doc(hidden)]
16179 pub struct IDWriteTextFormat3_abi(
16180     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16181     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16182     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16183     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
16184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
16185     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
16186     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
16187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
16188     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
16189     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
16191     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
16192     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
16193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
16194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
16195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
16196     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16197     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
16199     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16201     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
16202     #[cfg(not(feature = "Win32_Foundation"))] usize,
16203     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
16204     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
16205     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
16206     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16207     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16208     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
16209     #[cfg(not(feature = "Win32_Foundation"))] usize,
16210     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::HRESULT,
16211     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_VERTICAL_GLYPH_ORIENTATION,
16212     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, islastlinewrappingenabled: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
16213     #[cfg(not(feature = "Win32_Foundation"))] usize,
16214     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
16215     #[cfg(not(feature = "Win32_Foundation"))] usize,
16216     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::HRESULT,
16217     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_OPTICAL_ALIGNMENT,
16218     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16219     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16220     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
16221     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *mut DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
16222     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::HRESULT,
16223     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16224     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32) -> ::windows::runtime::HRESULT,
16225     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_AUTOMATIC_FONT_AXES,
16226     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, automaticfontaxes: DWRITE_AUTOMATIC_FONT_AXES) -> ::windows::runtime::HRESULT,
16227 );
16228 #[repr(transparent)]
16229 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
16230 pub struct IDWriteTextLayout(::windows::runtime::IUnknown);
16231 impl IDWriteTextLayout {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>16232     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
16233         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
16234     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>16235     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
16236         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
16237     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>16238     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
16239         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
16240     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>16241     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
16242         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
16243     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>16244     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
16245         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
16246     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>16247     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
16248         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
16249     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>16250     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
16251         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
16252     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>16253     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
16254         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
16255     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT16256     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
16257         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
16258     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT16259     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
16260         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
16261     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING16262     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
16263         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
16264     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION16265     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
16266         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
16267     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION16268     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
16269         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
16270     }
GetIncrementalTabStop(&self) -> f3216271     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
16272         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
16273     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>16274     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
16275         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
16276     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>16277     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
16278         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
16279     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>16280     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
16281         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16282         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
16283     }
GetFontFamilyNameLength(&self) -> u3216284     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
16285         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
16286     }
16287     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>16288     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
16289         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
16290     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT16291     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
16292         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
16293     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE16294     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
16295         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
16296     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH16297     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
16298         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
16299     }
GetFontSize(&self) -> f3216300     pub unsafe fn GetFontSize(&self) -> f32 {
16301         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
16302     }
GetLocaleNameLength(&self) -> u3216303     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
16304         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
16305     }
16306     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>16307     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
16308         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
16309     }
SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()>16310     pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()> {
16311         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxwidth)).ok()
16312     }
SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()>16313     pub unsafe fn SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()> {
16314         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxheight)).ok()
16315     }
SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16316     pub unsafe fn SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16317         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), fontcollection.into_param().abi(), textrange.into_param().abi()).ok()
16318     }
16319     #[cfg(feature = "Win32_Foundation")]
SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16320     pub unsafe fn SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16321         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), textrange.into_param().abi()).ok()
16322     }
SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()>16323     pub unsafe fn SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()> {
16324         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontweight), textrange.into_param().abi()).ok()
16325     }
SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()>16326     pub unsafe fn SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()> {
16327         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstyle), textrange.into_param().abi()).ok()
16328     }
SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()>16329     pub unsafe fn SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()> {
16330         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstretch), textrange.into_param().abi()).ok()
16331     }
SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()>16332     pub unsafe fn SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()> {
16333         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsize), textrange.into_param().abi()).ok()
16334     }
16335     #[cfg(feature = "Win32_Foundation")]
SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16336     pub unsafe fn SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16337         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), hasunderline.into_param().abi(), textrange.into_param().abi()).ok()
16338     }
16339     #[cfg(feature = "Win32_Foundation")]
SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16340     pub unsafe fn SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16341         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), hasstrikethrough.into_param().abi(), textrange.into_param().abi()).ok()
16342     }
SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16343     pub unsafe fn SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16344         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), drawingeffect.into_param().abi(), textrange.into_param().abi()).ok()
16345     }
SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16346     pub unsafe fn SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16347         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), inlineobject.into_param().abi(), textrange.into_param().abi()).ok()
16348     }
SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16349     pub unsafe fn SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16350         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), typography.into_param().abi(), textrange.into_param().abi()).ok()
16351     }
16352     #[cfg(feature = "Win32_Foundation")]
SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16353     pub unsafe fn SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16354         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), localename.into_param().abi(), textrange.into_param().abi()).ok()
16355     }
GetMaxWidth(&self) -> f3216356     pub unsafe fn GetMaxWidth(&self) -> f32 {
16357         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self)))
16358     }
GetMaxHeight(&self) -> f3216359     pub unsafe fn GetMaxHeight(&self) -> f32 {
16360         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self)))
16361     }
GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16362     pub unsafe fn GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16363         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontcollection), ::std::mem::transmute(textrange)).ok()
16364     }
GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16365     pub unsafe fn GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16366         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
16367     }
16368     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16369     pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16370         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
16371     }
GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16372     pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16373         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontweight), ::std::mem::transmute(textrange)).ok()
16374     }
GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16375     pub unsafe fn GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16376         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstyle), ::std::mem::transmute(textrange)).ok()
16377     }
GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16378     pub unsafe fn GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16379         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstretch), ::std::mem::transmute(textrange)).ok()
16380     }
GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16381     pub unsafe fn GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16382         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontsize), ::std::mem::transmute(textrange)).ok()
16383     }
16384     #[cfg(feature = "Win32_Foundation")]
GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16385     pub unsafe fn GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16386         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasunderline), ::std::mem::transmute(textrange)).ok()
16387     }
16388     #[cfg(feature = "Win32_Foundation")]
GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16389     pub unsafe fn GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16390         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasstrikethrough), ::std::mem::transmute(textrange)).ok()
16391     }
GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16392     pub unsafe fn GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16393         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(drawingeffect), ::std::mem::transmute(textrange)).ok()
16394     }
GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16395     pub unsafe fn GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16396         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(inlineobject), ::std::mem::transmute(textrange)).ok()
16397     }
GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16398     pub unsafe fn GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16399         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(typography), ::std::mem::transmute(textrange)).ok()
16400     }
GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16401     pub unsafe fn GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16402         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
16403     }
16404     #[cfg(feature = "Win32_Foundation")]
GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16405     pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16406         (::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(localename), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
16407     }
Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()>16408     pub unsafe fn Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()> {
16409         (::windows::runtime::Interface::vtable(self).58)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), renderer.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy)).ok()
16410     }
16411     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>16412     pub unsafe fn GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
16413         (::windows::runtime::Interface::vtable(self).59)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
16414     }
GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS>16415     pub unsafe fn GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS> {
16416         let mut result__: <DWRITE_TEXT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16417         (::windows::runtime::Interface::vtable(self).60)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS>(result__)
16418     }
GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS>16419     pub unsafe fn GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS> {
16420         let mut result__: <DWRITE_OVERHANG_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16421         (::windows::runtime::Interface::vtable(self).61)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_OVERHANG_METRICS>(result__)
16422     }
GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()>16423     pub unsafe fn GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()> {
16424         (::windows::runtime::Interface::vtable(self).62)(::std::mem::transmute_copy(self), ::std::mem::transmute(clustermetrics), ::std::mem::transmute(maxclustercount), ::std::mem::transmute(actualclustercount)).ok()
16425     }
DetermineMinWidth(&self) -> ::windows::runtime::Result<f32>16426     pub unsafe fn DetermineMinWidth(&self) -> ::windows::runtime::Result<f32> {
16427         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16428         (::windows::runtime::Interface::vtable(self).63)(::std::mem::transmute_copy(self), &mut result__).from_abi::<f32>(result__)
16429     }
16430     #[cfg(feature = "Win32_Foundation")]
HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>16431     pub unsafe fn HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
16432         (::windows::runtime::Interface::vtable(self).64)(::std::mem::transmute_copy(self), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(istrailinghit), ::std::mem::transmute(isinside), ::std::mem::transmute(hittestmetrics)).ok()
16433     }
16434     #[cfg(feature = "Win32_Foundation")]
HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>16435     pub unsafe fn HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
16436         (::windows::runtime::Interface::vtable(self).65)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), istrailinghit.into_param().abi(), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(hittestmetrics)).ok()
16437     }
16438     #[cfg(feature = "Win32_Foundation")]
HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()>16439     pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()> {
16440         (::windows::runtime::Interface::vtable(self).66)(
16441             ::std::mem::transmute_copy(self),
16442             ::std::mem::transmute(textposition),
16443             ::std::mem::transmute(textlength),
16444             ::std::mem::transmute(originx),
16445             ::std::mem::transmute(originy),
16446             ::std::mem::transmute(hittestmetrics),
16447             ::std::mem::transmute(maxhittestmetricscount),
16448             ::std::mem::transmute(actualhittestmetricscount),
16449         )
16450         .ok()
16451     }
16452 }
16453 unsafe impl ::windows::runtime::Interface for IDWriteTextLayout {
16454     type Vtable = IDWriteTextLayout_abi;
16455     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1400074295, 27924, 16651, [155, 254, 11, 24, 43, 183, 9, 97]);
16456 }
16457 impl ::std::convert::From<IDWriteTextLayout> for ::windows::runtime::IUnknown {
from(value: IDWriteTextLayout) -> Self16458     fn from(value: IDWriteTextLayout) -> Self {
16459         unsafe { ::std::mem::transmute(value) }
16460     }
16461 }
16462 impl ::std::convert::From<&IDWriteTextLayout> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextLayout) -> Self16463     fn from(value: &IDWriteTextLayout) -> Self {
16464         ::std::convert::From::from(::std::clone::Clone::clone(value))
16465     }
16466 }
16467 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextLayout {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>16468     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
16469         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
16470     }
16471 }
16472 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextLayout {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>16473     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
16474         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
16475     }
16476 }
16477 impl ::std::convert::From<IDWriteTextLayout> for IDWriteTextFormat {
from(value: IDWriteTextLayout) -> Self16478     fn from(value: IDWriteTextLayout) -> Self {
16479         unsafe { ::std::mem::transmute(value) }
16480     }
16481 }
16482 impl ::std::convert::From<&IDWriteTextLayout> for IDWriteTextFormat {
from(value: &IDWriteTextLayout) -> Self16483     fn from(value: &IDWriteTextLayout) -> Self {
16484         ::std::convert::From::from(::std::clone::Clone::clone(value))
16485     }
16486 }
16487 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextLayout {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>16488     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
16489         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
16490     }
16491 }
16492 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextLayout {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>16493     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
16494         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
16495     }
16496 }
16497 #[repr(C)]
16498 #[doc(hidden)]
16499 pub struct IDWriteTextLayout_abi(
16500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16502     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
16504     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
16505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
16506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
16507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
16508     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
16509     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
16511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
16512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
16513     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
16514     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
16515     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
16516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16517     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16518     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
16519     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16520     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16521     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
16522     #[cfg(not(feature = "Win32_Foundation"))] usize,
16523     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
16524     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
16525     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
16526     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16527     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16528     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
16529     #[cfg(not(feature = "Win32_Foundation"))] usize,
16530     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxwidth: f32) -> ::windows::runtime::HRESULT,
16531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxheight: f32) -> ::windows::runtime::HRESULT,
16532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16533     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16534     #[cfg(not(feature = "Win32_Foundation"))] usize,
16535     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16536     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstyle: DWRITE_FONT_STYLE, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstretch: DWRITE_FONT_STRETCH, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsize: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16539     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasunderline: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16540     #[cfg(not(feature = "Win32_Foundation"))] usize,
16541     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasstrikethrough: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16542     #[cfg(not(feature = "Win32_Foundation"))] usize,
16543     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, drawingeffect: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16544     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inlineobject: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16545     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16546     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16547     #[cfg(not(feature = "Win32_Foundation"))] usize,
16548     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16549     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16550     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontcollection: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16551     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16552     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16553     #[cfg(not(feature = "Win32_Foundation"))] usize,
16554     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16557     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16558     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16559     #[cfg(not(feature = "Win32_Foundation"))] usize,
16560     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16561     #[cfg(not(feature = "Win32_Foundation"))] usize,
16562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, drawingeffect: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, inlineobject: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, typography: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16566     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16567     #[cfg(not(feature = "Win32_Foundation"))] usize,
16568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, renderer: ::windows::runtime::RawPtr, originx: f32, originy: f32) -> ::windows::runtime::HRESULT,
16569     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
16570     #[cfg(not(feature = "Win32_Foundation"))] usize,
16571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS) -> ::windows::runtime::HRESULT,
16572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, overhangs: *mut DWRITE_OVERHANG_METRICS) -> ::windows::runtime::HRESULT,
16573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::HRESULT,
16574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, minwidth: *mut f32) -> ::windows::runtime::HRESULT,
16575     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
16576     #[cfg(not(feature = "Win32_Foundation"))] usize,
16577     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, istrailinghit: super::super::Foundation::BOOL, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
16578     #[cfg(not(feature = "Win32_Foundation"))] usize,
16579     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::HRESULT,
16580     #[cfg(not(feature = "Win32_Foundation"))] usize,
16581 );
16582 #[repr(transparent)]
16583 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
16584 pub struct IDWriteTextLayout1(::windows::runtime::IUnknown);
16585 impl IDWriteTextLayout1 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>16586     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
16587         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
16588     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>16589     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
16590         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
16591     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>16592     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
16593         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
16594     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>16595     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
16596         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
16597     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>16598     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
16599         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
16600     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>16601     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
16602         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
16603     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>16604     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
16605         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
16606     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>16607     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
16608         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
16609     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT16610     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
16611         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
16612     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT16613     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
16614         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
16615     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING16616     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
16617         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
16618     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION16619     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
16620         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
16621     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION16622     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
16623         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
16624     }
GetIncrementalTabStop(&self) -> f3216625     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
16626         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
16627     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>16628     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
16629         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
16630     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>16631     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
16632         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
16633     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>16634     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
16635         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16636         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
16637     }
GetFontFamilyNameLength(&self) -> u3216638     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
16639         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
16640     }
16641     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>16642     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
16643         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
16644     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT16645     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
16646         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
16647     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE16648     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
16649         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
16650     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH16651     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
16652         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
16653     }
GetFontSize(&self) -> f3216654     pub unsafe fn GetFontSize(&self) -> f32 {
16655         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
16656     }
GetLocaleNameLength(&self) -> u3216657     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
16658         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
16659     }
16660     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>16661     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
16662         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
16663     }
SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()>16664     pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()> {
16665         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxwidth)).ok()
16666     }
SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()>16667     pub unsafe fn SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()> {
16668         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxheight)).ok()
16669     }
SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16670     pub unsafe fn SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16671         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), fontcollection.into_param().abi(), textrange.into_param().abi()).ok()
16672     }
16673     #[cfg(feature = "Win32_Foundation")]
SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16674     pub unsafe fn SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16675         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), textrange.into_param().abi()).ok()
16676     }
SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()>16677     pub unsafe fn SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()> {
16678         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontweight), textrange.into_param().abi()).ok()
16679     }
SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()>16680     pub unsafe fn SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()> {
16681         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstyle), textrange.into_param().abi()).ok()
16682     }
SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()>16683     pub unsafe fn SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()> {
16684         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstretch), textrange.into_param().abi()).ok()
16685     }
SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()>16686     pub unsafe fn SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()> {
16687         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsize), textrange.into_param().abi()).ok()
16688     }
16689     #[cfg(feature = "Win32_Foundation")]
SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16690     pub unsafe fn SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16691         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), hasunderline.into_param().abi(), textrange.into_param().abi()).ok()
16692     }
16693     #[cfg(feature = "Win32_Foundation")]
SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16694     pub unsafe fn SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16695         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), hasstrikethrough.into_param().abi(), textrange.into_param().abi()).ok()
16696     }
SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16697     pub unsafe fn SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16698         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), drawingeffect.into_param().abi(), textrange.into_param().abi()).ok()
16699     }
SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16700     pub unsafe fn SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16701         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), inlineobject.into_param().abi(), textrange.into_param().abi()).ok()
16702     }
SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16703     pub unsafe fn SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16704         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), typography.into_param().abi(), textrange.into_param().abi()).ok()
16705     }
16706     #[cfg(feature = "Win32_Foundation")]
SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16707     pub unsafe fn SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16708         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), localename.into_param().abi(), textrange.into_param().abi()).ok()
16709     }
GetMaxWidth(&self) -> f3216710     pub unsafe fn GetMaxWidth(&self) -> f32 {
16711         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self)))
16712     }
GetMaxHeight(&self) -> f3216713     pub unsafe fn GetMaxHeight(&self) -> f32 {
16714         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self)))
16715     }
GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16716     pub unsafe fn GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16717         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontcollection), ::std::mem::transmute(textrange)).ok()
16718     }
GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16719     pub unsafe fn GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16720         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
16721     }
16722     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16723     pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16724         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
16725     }
GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16726     pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16727         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontweight), ::std::mem::transmute(textrange)).ok()
16728     }
GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16729     pub unsafe fn GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16730         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstyle), ::std::mem::transmute(textrange)).ok()
16731     }
GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16732     pub unsafe fn GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16733         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstretch), ::std::mem::transmute(textrange)).ok()
16734     }
GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16735     pub unsafe fn GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16736         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontsize), ::std::mem::transmute(textrange)).ok()
16737     }
16738     #[cfg(feature = "Win32_Foundation")]
GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16739     pub unsafe fn GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16740         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasunderline), ::std::mem::transmute(textrange)).ok()
16741     }
16742     #[cfg(feature = "Win32_Foundation")]
GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16743     pub unsafe fn GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16744         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasstrikethrough), ::std::mem::transmute(textrange)).ok()
16745     }
GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16746     pub unsafe fn GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16747         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(drawingeffect), ::std::mem::transmute(textrange)).ok()
16748     }
GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16749     pub unsafe fn GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16750         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(inlineobject), ::std::mem::transmute(textrange)).ok()
16751     }
GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16752     pub unsafe fn GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16753         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(typography), ::std::mem::transmute(textrange)).ok()
16754     }
GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16755     pub unsafe fn GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16756         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
16757     }
16758     #[cfg(feature = "Win32_Foundation")]
GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16759     pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16760         (::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(localename), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
16761     }
Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()>16762     pub unsafe fn Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()> {
16763         (::windows::runtime::Interface::vtable(self).58)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), renderer.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy)).ok()
16764     }
16765     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>16766     pub unsafe fn GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
16767         (::windows::runtime::Interface::vtable(self).59)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
16768     }
GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS>16769     pub unsafe fn GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS> {
16770         let mut result__: <DWRITE_TEXT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16771         (::windows::runtime::Interface::vtable(self).60)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS>(result__)
16772     }
GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS>16773     pub unsafe fn GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS> {
16774         let mut result__: <DWRITE_OVERHANG_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16775         (::windows::runtime::Interface::vtable(self).61)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_OVERHANG_METRICS>(result__)
16776     }
GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()>16777     pub unsafe fn GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()> {
16778         (::windows::runtime::Interface::vtable(self).62)(::std::mem::transmute_copy(self), ::std::mem::transmute(clustermetrics), ::std::mem::transmute(maxclustercount), ::std::mem::transmute(actualclustercount)).ok()
16779     }
DetermineMinWidth(&self) -> ::windows::runtime::Result<f32>16780     pub unsafe fn DetermineMinWidth(&self) -> ::windows::runtime::Result<f32> {
16781         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
16782         (::windows::runtime::Interface::vtable(self).63)(::std::mem::transmute_copy(self), &mut result__).from_abi::<f32>(result__)
16783     }
16784     #[cfg(feature = "Win32_Foundation")]
HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>16785     pub unsafe fn HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
16786         (::windows::runtime::Interface::vtable(self).64)(::std::mem::transmute_copy(self), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(istrailinghit), ::std::mem::transmute(isinside), ::std::mem::transmute(hittestmetrics)).ok()
16787     }
16788     #[cfg(feature = "Win32_Foundation")]
HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>16789     pub unsafe fn HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
16790         (::windows::runtime::Interface::vtable(self).65)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), istrailinghit.into_param().abi(), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(hittestmetrics)).ok()
16791     }
16792     #[cfg(feature = "Win32_Foundation")]
HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()>16793     pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()> {
16794         (::windows::runtime::Interface::vtable(self).66)(
16795             ::std::mem::transmute_copy(self),
16796             ::std::mem::transmute(textposition),
16797             ::std::mem::transmute(textlength),
16798             ::std::mem::transmute(originx),
16799             ::std::mem::transmute(originy),
16800             ::std::mem::transmute(hittestmetrics),
16801             ::std::mem::transmute(maxhittestmetricscount),
16802             ::std::mem::transmute(actualhittestmetricscount),
16803         )
16804         .ok()
16805     }
16806     #[cfg(feature = "Win32_Foundation")]
SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()>16807     pub unsafe fn SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
16808         (::windows::runtime::Interface::vtable(self).67)(::std::mem::transmute_copy(self), ispairkerningenabled.into_param().abi(), textrange.into_param().abi()).ok()
16809     }
16810     #[cfg(feature = "Win32_Foundation")]
GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16811     pub unsafe fn GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16812         (::windows::runtime::Interface::vtable(self).68)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(ispairkerningenabled), ::std::mem::transmute(textrange)).ok()
16813     }
SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()>16814     pub unsafe fn SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()> {
16815         (::windows::runtime::Interface::vtable(self).69)(::std::mem::transmute_copy(self), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), textrange.into_param().abi()).ok()
16816     }
GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>16817     pub unsafe fn GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
16818         (::windows::runtime::Interface::vtable(self).70)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), ::std::mem::transmute(textrange)).ok()
16819     }
16820 }
16821 unsafe impl ::windows::runtime::Interface for IDWriteTextLayout1 {
16822     type Vtable = IDWriteTextLayout1_abi;
16823     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2422528034, 32935, 18012, [169, 134, 223, 101, 247, 139, 143, 235]);
16824 }
16825 impl ::std::convert::From<IDWriteTextLayout1> for ::windows::runtime::IUnknown {
from(value: IDWriteTextLayout1) -> Self16826     fn from(value: IDWriteTextLayout1) -> Self {
16827         unsafe { ::std::mem::transmute(value) }
16828     }
16829 }
16830 impl ::std::convert::From<&IDWriteTextLayout1> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextLayout1) -> Self16831     fn from(value: &IDWriteTextLayout1) -> Self {
16832         ::std::convert::From::from(::std::clone::Clone::clone(value))
16833     }
16834 }
16835 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextLayout1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>16836     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
16837         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
16838     }
16839 }
16840 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextLayout1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>16841     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
16842         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
16843     }
16844 }
16845 impl ::std::convert::From<IDWriteTextLayout1> for IDWriteTextLayout {
from(value: IDWriteTextLayout1) -> Self16846     fn from(value: IDWriteTextLayout1) -> Self {
16847         unsafe { ::std::mem::transmute(value) }
16848     }
16849 }
16850 impl ::std::convert::From<&IDWriteTextLayout1> for IDWriteTextLayout {
from(value: &IDWriteTextLayout1) -> Self16851     fn from(value: &IDWriteTextLayout1) -> Self {
16852         ::std::convert::From::from(::std::clone::Clone::clone(value))
16853     }
16854 }
16855 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for IDWriteTextLayout1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>16856     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
16857         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(self))
16858     }
16859 }
16860 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for &IDWriteTextLayout1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>16861     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
16862         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(::std::clone::Clone::clone(self)))
16863     }
16864 }
16865 impl ::std::convert::From<IDWriteTextLayout1> for IDWriteTextFormat {
from(value: IDWriteTextLayout1) -> Self16866     fn from(value: IDWriteTextLayout1) -> Self {
16867         unsafe { ::std::mem::transmute(value) }
16868     }
16869 }
16870 impl ::std::convert::From<&IDWriteTextLayout1> for IDWriteTextFormat {
from(value: &IDWriteTextLayout1) -> Self16871     fn from(value: &IDWriteTextLayout1) -> Self {
16872         ::std::convert::From::from(::std::clone::Clone::clone(value))
16873     }
16874 }
16875 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextLayout1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>16876     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
16877         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
16878     }
16879 }
16880 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextLayout1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>16881     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
16882         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
16883     }
16884 }
16885 #[repr(C)]
16886 #[doc(hidden)]
16887 pub struct IDWriteTextLayout1_abi(
16888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16890     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
16892     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
16893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
16894     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
16895     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
16896     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
16897     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16898     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
16899     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
16900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
16901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
16902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
16903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
16904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
16907     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
16908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16909     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
16910     #[cfg(not(feature = "Win32_Foundation"))] usize,
16911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
16912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
16913     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
16914     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16915     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16916     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
16917     #[cfg(not(feature = "Win32_Foundation"))] usize,
16918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxwidth: f32) -> ::windows::runtime::HRESULT,
16919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxheight: f32) -> ::windows::runtime::HRESULT,
16920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16921     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16922     #[cfg(not(feature = "Win32_Foundation"))] usize,
16923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstyle: DWRITE_FONT_STYLE, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstretch: DWRITE_FONT_STRETCH, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsize: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16927     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasunderline: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16928     #[cfg(not(feature = "Win32_Foundation"))] usize,
16929     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasstrikethrough: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16930     #[cfg(not(feature = "Win32_Foundation"))] usize,
16931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, drawingeffect: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inlineobject: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16934     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16935     #[cfg(not(feature = "Win32_Foundation"))] usize,
16936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
16938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontcollection: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16940     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16941     #[cfg(not(feature = "Win32_Foundation"))] usize,
16942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16943     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16946     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16947     #[cfg(not(feature = "Win32_Foundation"))] usize,
16948     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16949     #[cfg(not(feature = "Win32_Foundation"))] usize,
16950     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, drawingeffect: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16951     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, inlineobject: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16952     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, typography: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16953     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16954     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16955     #[cfg(not(feature = "Win32_Foundation"))] usize,
16956     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, renderer: ::windows::runtime::RawPtr, originx: f32, originy: f32) -> ::windows::runtime::HRESULT,
16957     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
16958     #[cfg(not(feature = "Win32_Foundation"))] usize,
16959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS) -> ::windows::runtime::HRESULT,
16960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, overhangs: *mut DWRITE_OVERHANG_METRICS) -> ::windows::runtime::HRESULT,
16961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::HRESULT,
16962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, minwidth: *mut f32) -> ::windows::runtime::HRESULT,
16963     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
16964     #[cfg(not(feature = "Win32_Foundation"))] usize,
16965     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, istrailinghit: super::super::Foundation::BOOL, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
16966     #[cfg(not(feature = "Win32_Foundation"))] usize,
16967     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::HRESULT,
16968     #[cfg(not(feature = "Win32_Foundation"))] usize,
16969     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ispairkerningenabled: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16970     #[cfg(not(feature = "Win32_Foundation"))] usize,
16971     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16972     #[cfg(not(feature = "Win32_Foundation"))] usize,
16973     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
16975 );
16976 #[repr(transparent)]
16977 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
16978 pub struct IDWriteTextLayout2(::windows::runtime::IUnknown);
16979 impl IDWriteTextLayout2 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>16980     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
16981         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
16982     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>16983     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
16984         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
16985     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>16986     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
16987         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
16988     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>16989     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
16990         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
16991     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>16992     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
16993         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
16994     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>16995     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
16996         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
16997     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>16998     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
16999         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
17000     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>17001     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
17002         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
17003     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT17004     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
17005         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
17006     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT17007     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
17008         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
17009     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING17010     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
17011         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
17012     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION17013     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
17014         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
17015     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION17016     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
17017         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
17018     }
GetIncrementalTabStop(&self) -> f3217019     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
17020         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
17021     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>17022     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
17023         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
17024     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>17025     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
17026         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
17027     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>17028     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
17029         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17030         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
17031     }
GetFontFamilyNameLength(&self) -> u3217032     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
17033         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
17034     }
17035     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>17036     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
17037         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
17038     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT17039     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
17040         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
17041     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE17042     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
17043         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
17044     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH17045     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
17046         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
17047     }
GetFontSize(&self) -> f3217048     pub unsafe fn GetFontSize(&self) -> f32 {
17049         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
17050     }
GetLocaleNameLength(&self) -> u3217051     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
17052         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
17053     }
17054     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>17055     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
17056         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
17057     }
SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()>17058     pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()> {
17059         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxwidth)).ok()
17060     }
SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()>17061     pub unsafe fn SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()> {
17062         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxheight)).ok()
17063     }
SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17064     pub unsafe fn SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17065         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), fontcollection.into_param().abi(), textrange.into_param().abi()).ok()
17066     }
17067     #[cfg(feature = "Win32_Foundation")]
SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17068     pub unsafe fn SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17069         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), textrange.into_param().abi()).ok()
17070     }
SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()>17071     pub unsafe fn SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()> {
17072         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontweight), textrange.into_param().abi()).ok()
17073     }
SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()>17074     pub unsafe fn SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()> {
17075         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstyle), textrange.into_param().abi()).ok()
17076     }
SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()>17077     pub unsafe fn SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()> {
17078         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstretch), textrange.into_param().abi()).ok()
17079     }
SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()>17080     pub unsafe fn SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()> {
17081         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsize), textrange.into_param().abi()).ok()
17082     }
17083     #[cfg(feature = "Win32_Foundation")]
SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17084     pub unsafe fn SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17085         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), hasunderline.into_param().abi(), textrange.into_param().abi()).ok()
17086     }
17087     #[cfg(feature = "Win32_Foundation")]
SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17088     pub unsafe fn SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17089         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), hasstrikethrough.into_param().abi(), textrange.into_param().abi()).ok()
17090     }
SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17091     pub unsafe fn SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17092         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), drawingeffect.into_param().abi(), textrange.into_param().abi()).ok()
17093     }
SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17094     pub unsafe fn SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17095         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), inlineobject.into_param().abi(), textrange.into_param().abi()).ok()
17096     }
SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17097     pub unsafe fn SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17098         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), typography.into_param().abi(), textrange.into_param().abi()).ok()
17099     }
17100     #[cfg(feature = "Win32_Foundation")]
SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17101     pub unsafe fn SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17102         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), localename.into_param().abi(), textrange.into_param().abi()).ok()
17103     }
GetMaxWidth(&self) -> f3217104     pub unsafe fn GetMaxWidth(&self) -> f32 {
17105         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self)))
17106     }
GetMaxHeight(&self) -> f3217107     pub unsafe fn GetMaxHeight(&self) -> f32 {
17108         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self)))
17109     }
GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17110     pub unsafe fn GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17111         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontcollection), ::std::mem::transmute(textrange)).ok()
17112     }
GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17113     pub unsafe fn GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17114         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
17115     }
17116     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17117     pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17118         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
17119     }
GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17120     pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17121         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontweight), ::std::mem::transmute(textrange)).ok()
17122     }
GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17123     pub unsafe fn GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17124         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstyle), ::std::mem::transmute(textrange)).ok()
17125     }
GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17126     pub unsafe fn GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17127         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstretch), ::std::mem::transmute(textrange)).ok()
17128     }
GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17129     pub unsafe fn GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17130         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontsize), ::std::mem::transmute(textrange)).ok()
17131     }
17132     #[cfg(feature = "Win32_Foundation")]
GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17133     pub unsafe fn GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17134         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasunderline), ::std::mem::transmute(textrange)).ok()
17135     }
17136     #[cfg(feature = "Win32_Foundation")]
GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17137     pub unsafe fn GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17138         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasstrikethrough), ::std::mem::transmute(textrange)).ok()
17139     }
GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17140     pub unsafe fn GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17141         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(drawingeffect), ::std::mem::transmute(textrange)).ok()
17142     }
GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17143     pub unsafe fn GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17144         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(inlineobject), ::std::mem::transmute(textrange)).ok()
17145     }
GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17146     pub unsafe fn GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17147         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(typography), ::std::mem::transmute(textrange)).ok()
17148     }
GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17149     pub unsafe fn GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17150         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
17151     }
17152     #[cfg(feature = "Win32_Foundation")]
GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17153     pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17154         (::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(localename), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
17155     }
Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()>17156     pub unsafe fn Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()> {
17157         (::windows::runtime::Interface::vtable(self).58)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), renderer.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy)).ok()
17158     }
17159     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>17160     pub unsafe fn GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
17161         (::windows::runtime::Interface::vtable(self).59)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
17162     }
GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS>17163     pub unsafe fn GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS> {
17164         let mut result__: <DWRITE_TEXT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17165         (::windows::runtime::Interface::vtable(self).60)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS>(result__)
17166     }
GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS>17167     pub unsafe fn GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS> {
17168         let mut result__: <DWRITE_OVERHANG_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17169         (::windows::runtime::Interface::vtable(self).61)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_OVERHANG_METRICS>(result__)
17170     }
GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()>17171     pub unsafe fn GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()> {
17172         (::windows::runtime::Interface::vtable(self).62)(::std::mem::transmute_copy(self), ::std::mem::transmute(clustermetrics), ::std::mem::transmute(maxclustercount), ::std::mem::transmute(actualclustercount)).ok()
17173     }
DetermineMinWidth(&self) -> ::windows::runtime::Result<f32>17174     pub unsafe fn DetermineMinWidth(&self) -> ::windows::runtime::Result<f32> {
17175         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17176         (::windows::runtime::Interface::vtable(self).63)(::std::mem::transmute_copy(self), &mut result__).from_abi::<f32>(result__)
17177     }
17178     #[cfg(feature = "Win32_Foundation")]
HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>17179     pub unsafe fn HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
17180         (::windows::runtime::Interface::vtable(self).64)(::std::mem::transmute_copy(self), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(istrailinghit), ::std::mem::transmute(isinside), ::std::mem::transmute(hittestmetrics)).ok()
17181     }
17182     #[cfg(feature = "Win32_Foundation")]
HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>17183     pub unsafe fn HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
17184         (::windows::runtime::Interface::vtable(self).65)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), istrailinghit.into_param().abi(), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(hittestmetrics)).ok()
17185     }
17186     #[cfg(feature = "Win32_Foundation")]
HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()>17187     pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()> {
17188         (::windows::runtime::Interface::vtable(self).66)(
17189             ::std::mem::transmute_copy(self),
17190             ::std::mem::transmute(textposition),
17191             ::std::mem::transmute(textlength),
17192             ::std::mem::transmute(originx),
17193             ::std::mem::transmute(originy),
17194             ::std::mem::transmute(hittestmetrics),
17195             ::std::mem::transmute(maxhittestmetricscount),
17196             ::std::mem::transmute(actualhittestmetricscount),
17197         )
17198         .ok()
17199     }
17200     #[cfg(feature = "Win32_Foundation")]
SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17201     pub unsafe fn SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17202         (::windows::runtime::Interface::vtable(self).67)(::std::mem::transmute_copy(self), ispairkerningenabled.into_param().abi(), textrange.into_param().abi()).ok()
17203     }
17204     #[cfg(feature = "Win32_Foundation")]
GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17205     pub unsafe fn GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17206         (::windows::runtime::Interface::vtable(self).68)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(ispairkerningenabled), ::std::mem::transmute(textrange)).ok()
17207     }
SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()>17208     pub unsafe fn SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()> {
17209         (::windows::runtime::Interface::vtable(self).69)(::std::mem::transmute_copy(self), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), textrange.into_param().abi()).ok()
17210     }
GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17211     pub unsafe fn GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17212         (::windows::runtime::Interface::vtable(self).70)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), ::std::mem::transmute(textrange)).ok()
17213     }
GetMetrics2(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS1>17214     pub unsafe fn GetMetrics2(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS1> {
17215         let mut result__: <DWRITE_TEXT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17216         (::windows::runtime::Interface::vtable(self).71)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS1>(result__)
17217     }
SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()>17218     pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()> {
17219         (::windows::runtime::Interface::vtable(self).72)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientation)).ok()
17220     }
GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION17221     pub unsafe fn GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION {
17222         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).73)(::std::mem::transmute_copy(self)))
17223     }
17224     #[cfg(feature = "Win32_Foundation")]
SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()>17225     pub unsafe fn SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()> {
17226         (::windows::runtime::Interface::vtable(self).74)(::std::mem::transmute_copy(self), islastlinewrappingenabled.into_param().abi()).ok()
17227     }
17228     #[cfg(feature = "Win32_Foundation")]
GetLastLineWrapping(&self) -> super::super::Foundation::BOOL17229     pub unsafe fn GetLastLineWrapping(&self) -> super::super::Foundation::BOOL {
17230         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).75)(::std::mem::transmute_copy(self)))
17231     }
SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()>17232     pub unsafe fn SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()> {
17233         (::windows::runtime::Interface::vtable(self).76)(::std::mem::transmute_copy(self), ::std::mem::transmute(opticalalignment)).ok()
17234     }
GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT17235     pub unsafe fn GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT {
17236         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).77)(::std::mem::transmute_copy(self)))
17237     }
SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>17238     pub unsafe fn SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
17239         (::windows::runtime::Interface::vtable(self).78)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
17240     }
GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>17241     pub unsafe fn GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
17242         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17243         (::windows::runtime::Interface::vtable(self).79)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
17244     }
17245 }
17246 unsafe impl ::windows::runtime::Interface for IDWriteTextLayout2 {
17247     type Vtable = IDWriteTextLayout2_abi;
17248     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(278118799, 36190, 17392, [176, 100, 9, 23, 49, 27, 82, 94]);
17249 }
17250 impl ::std::convert::From<IDWriteTextLayout2> for ::windows::runtime::IUnknown {
from(value: IDWriteTextLayout2) -> Self17251     fn from(value: IDWriteTextLayout2) -> Self {
17252         unsafe { ::std::mem::transmute(value) }
17253     }
17254 }
17255 impl ::std::convert::From<&IDWriteTextLayout2> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextLayout2) -> Self17256     fn from(value: &IDWriteTextLayout2) -> Self {
17257         ::std::convert::From::from(::std::clone::Clone::clone(value))
17258     }
17259 }
17260 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>17261     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
17262         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
17263     }
17264 }
17265 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>17266     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
17267         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
17268     }
17269 }
17270 impl ::std::convert::From<IDWriteTextLayout2> for IDWriteTextLayout1 {
from(value: IDWriteTextLayout2) -> Self17271     fn from(value: IDWriteTextLayout2) -> Self {
17272         unsafe { ::std::mem::transmute(value) }
17273     }
17274 }
17275 impl ::std::convert::From<&IDWriteTextLayout2> for IDWriteTextLayout1 {
from(value: &IDWriteTextLayout2) -> Self17276     fn from(value: &IDWriteTextLayout2) -> Self {
17277         ::std::convert::From::from(::std::clone::Clone::clone(value))
17278     }
17279 }
17280 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout1> for IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1>17281     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1> {
17282         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout1>::into(self))
17283     }
17284 }
17285 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout1> for &IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1>17286     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1> {
17287         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout1>::into(::std::clone::Clone::clone(self)))
17288     }
17289 }
17290 impl ::std::convert::From<IDWriteTextLayout2> for IDWriteTextLayout {
from(value: IDWriteTextLayout2) -> Self17291     fn from(value: IDWriteTextLayout2) -> Self {
17292         unsafe { ::std::mem::transmute(value) }
17293     }
17294 }
17295 impl ::std::convert::From<&IDWriteTextLayout2> for IDWriteTextLayout {
from(value: &IDWriteTextLayout2) -> Self17296     fn from(value: &IDWriteTextLayout2) -> Self {
17297         ::std::convert::From::from(::std::clone::Clone::clone(value))
17298     }
17299 }
17300 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>17301     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
17302         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(self))
17303     }
17304 }
17305 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for &IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>17306     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
17307         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(::std::clone::Clone::clone(self)))
17308     }
17309 }
17310 impl ::std::convert::From<IDWriteTextLayout2> for IDWriteTextFormat {
from(value: IDWriteTextLayout2) -> Self17311     fn from(value: IDWriteTextLayout2) -> Self {
17312         unsafe { ::std::mem::transmute(value) }
17313     }
17314 }
17315 impl ::std::convert::From<&IDWriteTextLayout2> for IDWriteTextFormat {
from(value: &IDWriteTextLayout2) -> Self17316     fn from(value: &IDWriteTextLayout2) -> Self {
17317         ::std::convert::From::from(::std::clone::Clone::clone(value))
17318     }
17319 }
17320 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>17321     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
17322         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
17323     }
17324 }
17325 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextLayout2 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>17326     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
17327         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
17328     }
17329 }
17330 #[repr(C)]
17331 #[doc(hidden)]
17332 pub struct IDWriteTextLayout2_abi(
17333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17336     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
17337     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
17338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
17339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
17340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
17341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
17342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
17344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
17345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
17346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
17347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
17348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
17349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
17352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17353     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17354     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
17355     #[cfg(not(feature = "Win32_Foundation"))] usize,
17356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
17357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
17358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
17359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17360     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17361     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
17362     #[cfg(not(feature = "Win32_Foundation"))] usize,
17363     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxwidth: f32) -> ::windows::runtime::HRESULT,
17364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxheight: f32) -> ::windows::runtime::HRESULT,
17365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17366     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17367     #[cfg(not(feature = "Win32_Foundation"))] usize,
17368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstyle: DWRITE_FONT_STYLE, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstretch: DWRITE_FONT_STRETCH, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsize: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17372     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasunderline: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17373     #[cfg(not(feature = "Win32_Foundation"))] usize,
17374     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasstrikethrough: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17375     #[cfg(not(feature = "Win32_Foundation"))] usize,
17376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, drawingeffect: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17377     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inlineobject: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17378     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17379     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17380     #[cfg(not(feature = "Win32_Foundation"))] usize,
17381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontcollection: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17385     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17386     #[cfg(not(feature = "Win32_Foundation"))] usize,
17387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17389     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17390     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17391     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17392     #[cfg(not(feature = "Win32_Foundation"))] usize,
17393     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17394     #[cfg(not(feature = "Win32_Foundation"))] usize,
17395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, drawingeffect: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, inlineobject: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, typography: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17399     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17400     #[cfg(not(feature = "Win32_Foundation"))] usize,
17401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, renderer: ::windows::runtime::RawPtr, originx: f32, originy: f32) -> ::windows::runtime::HRESULT,
17402     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
17403     #[cfg(not(feature = "Win32_Foundation"))] usize,
17404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS) -> ::windows::runtime::HRESULT,
17405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, overhangs: *mut DWRITE_OVERHANG_METRICS) -> ::windows::runtime::HRESULT,
17406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::HRESULT,
17407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, minwidth: *mut f32) -> ::windows::runtime::HRESULT,
17408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
17409     #[cfg(not(feature = "Win32_Foundation"))] usize,
17410     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, istrailinghit: super::super::Foundation::BOOL, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
17411     #[cfg(not(feature = "Win32_Foundation"))] usize,
17412     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::HRESULT,
17413     #[cfg(not(feature = "Win32_Foundation"))] usize,
17414     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ispairkerningenabled: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17415     #[cfg(not(feature = "Win32_Foundation"))] usize,
17416     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17417     #[cfg(not(feature = "Win32_Foundation"))] usize,
17418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS1) -> ::windows::runtime::HRESULT,
17421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::HRESULT,
17422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_VERTICAL_GLYPH_ORIENTATION,
17423     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, islastlinewrappingenabled: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
17424     #[cfg(not(feature = "Win32_Foundation"))] usize,
17425     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
17426     #[cfg(not(feature = "Win32_Foundation"))] usize,
17427     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::HRESULT,
17428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_OPTICAL_ALIGNMENT,
17429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17431 );
17432 #[repr(transparent)]
17433 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
17434 pub struct IDWriteTextLayout3(::windows::runtime::IUnknown);
17435 impl IDWriteTextLayout3 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>17436     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
17437         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
17438     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>17439     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
17440         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
17441     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>17442     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
17443         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
17444     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>17445     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
17446         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
17447     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>17448     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
17449         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
17450     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>17451     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
17452         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
17453     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>17454     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
17455         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
17456     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>17457     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
17458         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
17459     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT17460     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
17461         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
17462     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT17463     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
17464         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
17465     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING17466     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
17467         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
17468     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION17469     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
17470         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
17471     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION17472     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
17473         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
17474     }
GetIncrementalTabStop(&self) -> f3217475     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
17476         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
17477     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>17478     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
17479         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
17480     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>17481     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
17482         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
17483     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>17484     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
17485         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17486         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
17487     }
GetFontFamilyNameLength(&self) -> u3217488     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
17489         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
17490     }
17491     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>17492     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
17493         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
17494     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT17495     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
17496         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
17497     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE17498     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
17499         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
17500     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH17501     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
17502         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
17503     }
GetFontSize(&self) -> f3217504     pub unsafe fn GetFontSize(&self) -> f32 {
17505         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
17506     }
GetLocaleNameLength(&self) -> u3217507     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
17508         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
17509     }
17510     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>17511     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
17512         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
17513     }
SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()>17514     pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()> {
17515         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxwidth)).ok()
17516     }
SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()>17517     pub unsafe fn SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()> {
17518         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxheight)).ok()
17519     }
SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17520     pub unsafe fn SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17521         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), fontcollection.into_param().abi(), textrange.into_param().abi()).ok()
17522     }
17523     #[cfg(feature = "Win32_Foundation")]
SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17524     pub unsafe fn SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17525         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), textrange.into_param().abi()).ok()
17526     }
SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()>17527     pub unsafe fn SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()> {
17528         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontweight), textrange.into_param().abi()).ok()
17529     }
SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()>17530     pub unsafe fn SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()> {
17531         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstyle), textrange.into_param().abi()).ok()
17532     }
SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()>17533     pub unsafe fn SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()> {
17534         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstretch), textrange.into_param().abi()).ok()
17535     }
SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()>17536     pub unsafe fn SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()> {
17537         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsize), textrange.into_param().abi()).ok()
17538     }
17539     #[cfg(feature = "Win32_Foundation")]
SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17540     pub unsafe fn SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17541         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), hasunderline.into_param().abi(), textrange.into_param().abi()).ok()
17542     }
17543     #[cfg(feature = "Win32_Foundation")]
SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17544     pub unsafe fn SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17545         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), hasstrikethrough.into_param().abi(), textrange.into_param().abi()).ok()
17546     }
SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17547     pub unsafe fn SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17548         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), drawingeffect.into_param().abi(), textrange.into_param().abi()).ok()
17549     }
SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17550     pub unsafe fn SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17551         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), inlineobject.into_param().abi(), textrange.into_param().abi()).ok()
17552     }
SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17553     pub unsafe fn SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17554         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), typography.into_param().abi(), textrange.into_param().abi()).ok()
17555     }
17556     #[cfg(feature = "Win32_Foundation")]
SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17557     pub unsafe fn SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17558         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), localename.into_param().abi(), textrange.into_param().abi()).ok()
17559     }
GetMaxWidth(&self) -> f3217560     pub unsafe fn GetMaxWidth(&self) -> f32 {
17561         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self)))
17562     }
GetMaxHeight(&self) -> f3217563     pub unsafe fn GetMaxHeight(&self) -> f32 {
17564         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self)))
17565     }
GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17566     pub unsafe fn GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17567         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontcollection), ::std::mem::transmute(textrange)).ok()
17568     }
GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17569     pub unsafe fn GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17570         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
17571     }
17572     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17573     pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17574         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
17575     }
GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17576     pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17577         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontweight), ::std::mem::transmute(textrange)).ok()
17578     }
GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17579     pub unsafe fn GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17580         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstyle), ::std::mem::transmute(textrange)).ok()
17581     }
GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17582     pub unsafe fn GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17583         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstretch), ::std::mem::transmute(textrange)).ok()
17584     }
GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17585     pub unsafe fn GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17586         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontsize), ::std::mem::transmute(textrange)).ok()
17587     }
17588     #[cfg(feature = "Win32_Foundation")]
GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17589     pub unsafe fn GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17590         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasunderline), ::std::mem::transmute(textrange)).ok()
17591     }
17592     #[cfg(feature = "Win32_Foundation")]
GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17593     pub unsafe fn GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17594         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasstrikethrough), ::std::mem::transmute(textrange)).ok()
17595     }
GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17596     pub unsafe fn GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17597         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(drawingeffect), ::std::mem::transmute(textrange)).ok()
17598     }
GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17599     pub unsafe fn GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17600         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(inlineobject), ::std::mem::transmute(textrange)).ok()
17601     }
GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17602     pub unsafe fn GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17603         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(typography), ::std::mem::transmute(textrange)).ok()
17604     }
GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17605     pub unsafe fn GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17606         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
17607     }
17608     #[cfg(feature = "Win32_Foundation")]
GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17609     pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17610         (::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(localename), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
17611     }
Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()>17612     pub unsafe fn Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()> {
17613         (::windows::runtime::Interface::vtable(self).58)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), renderer.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy)).ok()
17614     }
17615     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>17616     pub unsafe fn GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
17617         (::windows::runtime::Interface::vtable(self).59)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
17618     }
GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS>17619     pub unsafe fn GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS> {
17620         let mut result__: <DWRITE_TEXT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17621         (::windows::runtime::Interface::vtable(self).60)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS>(result__)
17622     }
GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS>17623     pub unsafe fn GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS> {
17624         let mut result__: <DWRITE_OVERHANG_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17625         (::windows::runtime::Interface::vtable(self).61)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_OVERHANG_METRICS>(result__)
17626     }
GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()>17627     pub unsafe fn GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()> {
17628         (::windows::runtime::Interface::vtable(self).62)(::std::mem::transmute_copy(self), ::std::mem::transmute(clustermetrics), ::std::mem::transmute(maxclustercount), ::std::mem::transmute(actualclustercount)).ok()
17629     }
DetermineMinWidth(&self) -> ::windows::runtime::Result<f32>17630     pub unsafe fn DetermineMinWidth(&self) -> ::windows::runtime::Result<f32> {
17631         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17632         (::windows::runtime::Interface::vtable(self).63)(::std::mem::transmute_copy(self), &mut result__).from_abi::<f32>(result__)
17633     }
17634     #[cfg(feature = "Win32_Foundation")]
HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>17635     pub unsafe fn HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
17636         (::windows::runtime::Interface::vtable(self).64)(::std::mem::transmute_copy(self), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(istrailinghit), ::std::mem::transmute(isinside), ::std::mem::transmute(hittestmetrics)).ok()
17637     }
17638     #[cfg(feature = "Win32_Foundation")]
HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>17639     pub unsafe fn HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
17640         (::windows::runtime::Interface::vtable(self).65)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), istrailinghit.into_param().abi(), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(hittestmetrics)).ok()
17641     }
17642     #[cfg(feature = "Win32_Foundation")]
HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()>17643     pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()> {
17644         (::windows::runtime::Interface::vtable(self).66)(
17645             ::std::mem::transmute_copy(self),
17646             ::std::mem::transmute(textposition),
17647             ::std::mem::transmute(textlength),
17648             ::std::mem::transmute(originx),
17649             ::std::mem::transmute(originy),
17650             ::std::mem::transmute(hittestmetrics),
17651             ::std::mem::transmute(maxhittestmetricscount),
17652             ::std::mem::transmute(actualhittestmetricscount),
17653         )
17654         .ok()
17655     }
17656     #[cfg(feature = "Win32_Foundation")]
SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()>17657     pub unsafe fn SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
17658         (::windows::runtime::Interface::vtable(self).67)(::std::mem::transmute_copy(self), ispairkerningenabled.into_param().abi(), textrange.into_param().abi()).ok()
17659     }
17660     #[cfg(feature = "Win32_Foundation")]
GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17661     pub unsafe fn GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17662         (::windows::runtime::Interface::vtable(self).68)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(ispairkerningenabled), ::std::mem::transmute(textrange)).ok()
17663     }
SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()>17664     pub unsafe fn SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()> {
17665         (::windows::runtime::Interface::vtable(self).69)(::std::mem::transmute_copy(self), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), textrange.into_param().abi()).ok()
17666     }
GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>17667     pub unsafe fn GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
17668         (::windows::runtime::Interface::vtable(self).70)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), ::std::mem::transmute(textrange)).ok()
17669     }
GetMetrics2(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS1>17670     pub unsafe fn GetMetrics2(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS1> {
17671         let mut result__: <DWRITE_TEXT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17672         (::windows::runtime::Interface::vtable(self).71)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS1>(result__)
17673     }
SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()>17674     pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()> {
17675         (::windows::runtime::Interface::vtable(self).72)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientation)).ok()
17676     }
GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION17677     pub unsafe fn GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION {
17678         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).73)(::std::mem::transmute_copy(self)))
17679     }
17680     #[cfg(feature = "Win32_Foundation")]
SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()>17681     pub unsafe fn SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()> {
17682         (::windows::runtime::Interface::vtable(self).74)(::std::mem::transmute_copy(self), islastlinewrappingenabled.into_param().abi()).ok()
17683     }
17684     #[cfg(feature = "Win32_Foundation")]
GetLastLineWrapping(&self) -> super::super::Foundation::BOOL17685     pub unsafe fn GetLastLineWrapping(&self) -> super::super::Foundation::BOOL {
17686         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).75)(::std::mem::transmute_copy(self)))
17687     }
SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()>17688     pub unsafe fn SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()> {
17689         (::windows::runtime::Interface::vtable(self).76)(::std::mem::transmute_copy(self), ::std::mem::transmute(opticalalignment)).ok()
17690     }
GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT17691     pub unsafe fn GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT {
17692         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).77)(::std::mem::transmute_copy(self)))
17693     }
SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>17694     pub unsafe fn SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
17695         (::windows::runtime::Interface::vtable(self).78)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
17696     }
GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>17697     pub unsafe fn GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
17698         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17699         (::windows::runtime::Interface::vtable(self).79)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
17700     }
InvalidateLayout(&self) -> ::windows::runtime::Result<()>17701     pub unsafe fn InvalidateLayout(&self) -> ::windows::runtime::Result<()> {
17702         (::windows::runtime::Interface::vtable(self).80)(::std::mem::transmute_copy(self)).ok()
17703     }
SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()>17704     pub unsafe fn SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()> {
17705         (::windows::runtime::Interface::vtable(self).81)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingoptions)).ok()
17706     }
GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING>17707     pub unsafe fn GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING> {
17708         let mut result__: <DWRITE_LINE_SPACING as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17709         (::windows::runtime::Interface::vtable(self).82)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_LINE_SPACING>(result__)
17710     }
17711     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics2(&self, linemetrics: *mut DWRITE_LINE_METRICS1, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>17712     pub unsafe fn GetLineMetrics2(&self, linemetrics: *mut DWRITE_LINE_METRICS1, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
17713         (::windows::runtime::Interface::vtable(self).83)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
17714     }
17715 }
17716 unsafe impl ::windows::runtime::Interface for IDWriteTextLayout3 {
17717     type Vtable = IDWriteTextLayout3_abi;
17718     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(131976530, 526, 19944, [172, 51, 108, 149, 61, 131, 249, 45]);
17719 }
17720 impl ::std::convert::From<IDWriteTextLayout3> for ::windows::runtime::IUnknown {
from(value: IDWriteTextLayout3) -> Self17721     fn from(value: IDWriteTextLayout3) -> Self {
17722         unsafe { ::std::mem::transmute(value) }
17723     }
17724 }
17725 impl ::std::convert::From<&IDWriteTextLayout3> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextLayout3) -> Self17726     fn from(value: &IDWriteTextLayout3) -> Self {
17727         ::std::convert::From::from(::std::clone::Clone::clone(value))
17728     }
17729 }
17730 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>17731     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
17732         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
17733     }
17734 }
17735 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>17736     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
17737         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
17738     }
17739 }
17740 impl ::std::convert::From<IDWriteTextLayout3> for IDWriteTextLayout2 {
from(value: IDWriteTextLayout3) -> Self17741     fn from(value: IDWriteTextLayout3) -> Self {
17742         unsafe { ::std::mem::transmute(value) }
17743     }
17744 }
17745 impl ::std::convert::From<&IDWriteTextLayout3> for IDWriteTextLayout2 {
from(value: &IDWriteTextLayout3) -> Self17746     fn from(value: &IDWriteTextLayout3) -> Self {
17747         ::std::convert::From::from(::std::clone::Clone::clone(value))
17748     }
17749 }
17750 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout2> for IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2>17751     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2> {
17752         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout2>::into(self))
17753     }
17754 }
17755 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout2> for &IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2>17756     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2> {
17757         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout2>::into(::std::clone::Clone::clone(self)))
17758     }
17759 }
17760 impl ::std::convert::From<IDWriteTextLayout3> for IDWriteTextLayout1 {
from(value: IDWriteTextLayout3) -> Self17761     fn from(value: IDWriteTextLayout3) -> Self {
17762         unsafe { ::std::mem::transmute(value) }
17763     }
17764 }
17765 impl ::std::convert::From<&IDWriteTextLayout3> for IDWriteTextLayout1 {
from(value: &IDWriteTextLayout3) -> Self17766     fn from(value: &IDWriteTextLayout3) -> Self {
17767         ::std::convert::From::from(::std::clone::Clone::clone(value))
17768     }
17769 }
17770 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout1> for IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1>17771     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1> {
17772         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout1>::into(self))
17773     }
17774 }
17775 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout1> for &IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1>17776     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1> {
17777         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout1>::into(::std::clone::Clone::clone(self)))
17778     }
17779 }
17780 impl ::std::convert::From<IDWriteTextLayout3> for IDWriteTextLayout {
from(value: IDWriteTextLayout3) -> Self17781     fn from(value: IDWriteTextLayout3) -> Self {
17782         unsafe { ::std::mem::transmute(value) }
17783     }
17784 }
17785 impl ::std::convert::From<&IDWriteTextLayout3> for IDWriteTextLayout {
from(value: &IDWriteTextLayout3) -> Self17786     fn from(value: &IDWriteTextLayout3) -> Self {
17787         ::std::convert::From::from(::std::clone::Clone::clone(value))
17788     }
17789 }
17790 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>17791     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
17792         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(self))
17793     }
17794 }
17795 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for &IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>17796     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
17797         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(::std::clone::Clone::clone(self)))
17798     }
17799 }
17800 impl ::std::convert::From<IDWriteTextLayout3> for IDWriteTextFormat {
from(value: IDWriteTextLayout3) -> Self17801     fn from(value: IDWriteTextLayout3) -> Self {
17802         unsafe { ::std::mem::transmute(value) }
17803     }
17804 }
17805 impl ::std::convert::From<&IDWriteTextLayout3> for IDWriteTextFormat {
from(value: &IDWriteTextLayout3) -> Self17806     fn from(value: &IDWriteTextLayout3) -> Self {
17807         ::std::convert::From::from(::std::clone::Clone::clone(value))
17808     }
17809 }
17810 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>17811     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
17812         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
17813     }
17814 }
17815 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextLayout3 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>17816     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
17817         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
17818     }
17819 }
17820 #[repr(C)]
17821 #[doc(hidden)]
17822 pub struct IDWriteTextLayout3_abi(
17823     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17824     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17825     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17826     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
17827     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
17828     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
17829     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
17830     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
17831     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
17832     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17833     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
17834     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
17835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
17836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
17837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
17838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
17839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
17842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17844     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
17845     #[cfg(not(feature = "Win32_Foundation"))] usize,
17846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
17847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
17848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
17849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
17851     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
17852     #[cfg(not(feature = "Win32_Foundation"))] usize,
17853     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxwidth: f32) -> ::windows::runtime::HRESULT,
17854     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxheight: f32) -> ::windows::runtime::HRESULT,
17855     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17856     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17857     #[cfg(not(feature = "Win32_Foundation"))] usize,
17858     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17859     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstyle: DWRITE_FONT_STYLE, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17860     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstretch: DWRITE_FONT_STRETCH, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17861     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsize: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17862     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasunderline: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17863     #[cfg(not(feature = "Win32_Foundation"))] usize,
17864     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasstrikethrough: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17865     #[cfg(not(feature = "Win32_Foundation"))] usize,
17866     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, drawingeffect: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17867     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inlineobject: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17868     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17869     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17870     #[cfg(not(feature = "Win32_Foundation"))] usize,
17871     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17872     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
17873     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontcollection: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17874     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17875     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17876     #[cfg(not(feature = "Win32_Foundation"))] usize,
17877     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17878     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17879     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17881     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17882     #[cfg(not(feature = "Win32_Foundation"))] usize,
17883     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17884     #[cfg(not(feature = "Win32_Foundation"))] usize,
17885     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, drawingeffect: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17886     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, inlineobject: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, typography: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17889     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17890     #[cfg(not(feature = "Win32_Foundation"))] usize,
17891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, renderer: ::windows::runtime::RawPtr, originx: f32, originy: f32) -> ::windows::runtime::HRESULT,
17892     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
17893     #[cfg(not(feature = "Win32_Foundation"))] usize,
17894     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS) -> ::windows::runtime::HRESULT,
17895     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, overhangs: *mut DWRITE_OVERHANG_METRICS) -> ::windows::runtime::HRESULT,
17896     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::HRESULT,
17897     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, minwidth: *mut f32) -> ::windows::runtime::HRESULT,
17898     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
17899     #[cfg(not(feature = "Win32_Foundation"))] usize,
17900     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, istrailinghit: super::super::Foundation::BOOL, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
17901     #[cfg(not(feature = "Win32_Foundation"))] usize,
17902     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::HRESULT,
17903     #[cfg(not(feature = "Win32_Foundation"))] usize,
17904     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ispairkerningenabled: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17905     #[cfg(not(feature = "Win32_Foundation"))] usize,
17906     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17907     #[cfg(not(feature = "Win32_Foundation"))] usize,
17908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
17910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS1) -> ::windows::runtime::HRESULT,
17911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::HRESULT,
17912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_VERTICAL_GLYPH_ORIENTATION,
17913     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, islastlinewrappingenabled: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
17914     #[cfg(not(feature = "Win32_Foundation"))] usize,
17915     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
17916     #[cfg(not(feature = "Win32_Foundation"))] usize,
17917     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::HRESULT,
17918     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_OPTICAL_ALIGNMENT,
17919     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17920     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17921     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
17922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
17923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *mut DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
17924     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS1, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
17925     #[cfg(not(feature = "Win32_Foundation"))] usize,
17926 );
17927 #[repr(transparent)]
17928 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
17929 pub struct IDWriteTextLayout4(::windows::runtime::IUnknown);
17930 impl IDWriteTextLayout4 {
SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()>17931     pub unsafe fn SetTextAlignment(&self, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::Result<()> {
17932         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(textalignment)).ok()
17933     }
SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()>17934     pub unsafe fn SetParagraphAlignment(&self, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::Result<()> {
17935         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(paragraphalignment)).ok()
17936     }
SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()>17937     pub unsafe fn SetWordWrapping(&self, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::Result<()> {
17938         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(wordwrapping)).ok()
17939     }
SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()>17940     pub unsafe fn SetReadingDirection(&self, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::Result<()> {
17941         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(readingdirection)).ok()
17942     }
SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()>17943     pub unsafe fn SetFlowDirection(&self, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::Result<()> {
17944         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(flowdirection)).ok()
17945     }
SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()>17946     pub unsafe fn SetIncrementalTabStop(&self, incrementaltabstop: f32) -> ::windows::runtime::Result<()> {
17947         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(incrementaltabstop)).ok()
17948     }
SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()>17949     pub unsafe fn SetTrimming<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>>(&self, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: Param1) -> ::windows::runtime::Result<()> {
17950         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), trimmingsign.into_param().abi()).ok()
17951     }
SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()>17952     pub unsafe fn SetLineSpacing(&self, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::Result<()> {
17953         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
17954     }
GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT17955     pub unsafe fn GetTextAlignment(&self) -> DWRITE_TEXT_ALIGNMENT {
17956         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
17957     }
GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT17958     pub unsafe fn GetParagraphAlignment(&self) -> DWRITE_PARAGRAPH_ALIGNMENT {
17959         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
17960     }
GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING17961     pub unsafe fn GetWordWrapping(&self) -> DWRITE_WORD_WRAPPING {
17962         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self)))
17963     }
GetReadingDirection(&self) -> DWRITE_READING_DIRECTION17964     pub unsafe fn GetReadingDirection(&self) -> DWRITE_READING_DIRECTION {
17965         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
17966     }
GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION17967     pub unsafe fn GetFlowDirection(&self) -> DWRITE_FLOW_DIRECTION {
17968         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
17969     }
GetIncrementalTabStop(&self) -> f3217970     pub unsafe fn GetIncrementalTabStop(&self) -> f32 {
17971         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
17972     }
GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()>17973     pub unsafe fn GetTrimming(&self, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::std::option::Option<IDWriteInlineObject>) -> ::windows::runtime::Result<()> {
17974         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(trimmingoptions), ::std::mem::transmute(trimmingsign)).ok()
17975     }
GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()>17976     pub unsafe fn GetLineSpacing(&self, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::Result<()> {
17977         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingmethod), ::std::mem::transmute(linespacing), ::std::mem::transmute(baseline)).ok()
17978     }
GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection>17979     pub unsafe fn GetFontCollection(&self) -> ::windows::runtime::Result<IDWriteFontCollection> {
17980         let mut result__: <IDWriteFontCollection as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
17981         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontCollection>(result__)
17982     }
GetFontFamilyNameLength(&self) -> u3217983     pub unsafe fn GetFontFamilyNameLength(&self) -> u32 {
17984         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self)))
17985     }
17986     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>17987     pub unsafe fn GetFontFamilyName(&self, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
17988         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize)).ok()
17989     }
GetFontWeight(&self) -> DWRITE_FONT_WEIGHT17990     pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT {
17991         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self)))
17992     }
GetFontStyle(&self) -> DWRITE_FONT_STYLE17993     pub unsafe fn GetFontStyle(&self) -> DWRITE_FONT_STYLE {
17994         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self)))
17995     }
GetFontStretch(&self) -> DWRITE_FONT_STRETCH17996     pub unsafe fn GetFontStretch(&self) -> DWRITE_FONT_STRETCH {
17997         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
17998     }
GetFontSize(&self) -> f3217999     pub unsafe fn GetFontSize(&self) -> f32 {
18000         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self)))
18001     }
GetLocaleNameLength(&self) -> u3218002     pub unsafe fn GetLocaleNameLength(&self) -> u32 {
18003         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self)))
18004     }
18005     #[cfg(feature = "Win32_Foundation")]
GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()>18006     pub unsafe fn GetLocaleName(&self, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::Result<()> {
18007         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), ::std::mem::transmute(localename), ::std::mem::transmute(namesize)).ok()
18008     }
SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()>18009     pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::runtime::Result<()> {
18010         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxwidth)).ok()
18011     }
SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()>18012     pub unsafe fn SetMaxHeight(&self, maxheight: f32) -> ::windows::runtime::Result<()> {
18013         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), ::std::mem::transmute(maxheight)).ok()
18014     }
SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18015     pub unsafe fn SetFontCollection<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontCollection>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontcollection: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18016         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), fontcollection.into_param().abi(), textrange.into_param().abi()).ok()
18017     }
18018     #[cfg(feature = "Win32_Foundation")]
SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18019     pub unsafe fn SetFontFamilyName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontfamilyname: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18020         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), fontfamilyname.into_param().abi(), textrange.into_param().abi()).ok()
18021     }
SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()>18022     pub unsafe fn SetFontWeight<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontweight: DWRITE_FONT_WEIGHT, textrange: Param1) -> ::windows::runtime::Result<()> {
18023         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontweight), textrange.into_param().abi()).ok()
18024     }
SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()>18025     pub unsafe fn SetFontStyle<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstyle: DWRITE_FONT_STYLE, textrange: Param1) -> ::windows::runtime::Result<()> {
18026         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstyle), textrange.into_param().abi()).ok()
18027     }
SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()>18028     pub unsafe fn SetFontStretch<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontstretch: DWRITE_FONT_STRETCH, textrange: Param1) -> ::windows::runtime::Result<()> {
18029         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontstretch), textrange.into_param().abi()).ok()
18030     }
SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()>18031     pub unsafe fn SetFontSize<'a, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontsize: f32, textrange: Param1) -> ::windows::runtime::Result<()> {
18032         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontsize), textrange.into_param().abi()).ok()
18033     }
18034     #[cfg(feature = "Win32_Foundation")]
SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18035     pub unsafe fn SetUnderline<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasunderline: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18036         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), hasunderline.into_param().abi(), textrange.into_param().abi()).ok()
18037     }
18038     #[cfg(feature = "Win32_Foundation")]
SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18039     pub unsafe fn SetStrikethrough<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, hasstrikethrough: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18040         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), hasstrikethrough.into_param().abi(), textrange.into_param().abi()).ok()
18041     }
SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18042     pub unsafe fn SetDrawingEffect<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, drawingeffect: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18043         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), drawingeffect.into_param().abi(), textrange.into_param().abi()).ok()
18044     }
SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18045     pub unsafe fn SetInlineObject<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, inlineobject: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18046         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), inlineobject.into_param().abi(), textrange.into_param().abi()).ok()
18047     }
SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18048     pub unsafe fn SetTypography<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteTypography>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, typography: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18049         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), typography.into_param().abi(), textrange.into_param().abi()).ok()
18050     }
18051     #[cfg(feature = "Win32_Foundation")]
SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18052     pub unsafe fn SetLocaleName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, localename: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18053         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), localename.into_param().abi(), textrange.into_param().abi()).ok()
18054     }
GetMaxWidth(&self) -> f3218055     pub unsafe fn GetMaxWidth(&self) -> f32 {
18056         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self)))
18057     }
GetMaxHeight(&self) -> f3218058     pub unsafe fn GetMaxHeight(&self) -> f32 {
18059         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self)))
18060     }
GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18061     pub unsafe fn GetFontCollection2(&self, currentposition: u32, fontcollection: *mut ::std::option::Option<IDWriteFontCollection>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18062         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontcollection), ::std::mem::transmute(textrange)).ok()
18063     }
GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18064     pub unsafe fn GetFontFamilyNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18065         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
18066     }
18067     #[cfg(feature = "Win32_Foundation")]
GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18068     pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18069         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontfamilyname), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
18070     }
GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18071     pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18072         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontweight), ::std::mem::transmute(textrange)).ok()
18073     }
GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18074     pub unsafe fn GetFontStyle2(&self, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18075         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstyle), ::std::mem::transmute(textrange)).ok()
18076     }
GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18077     pub unsafe fn GetFontStretch2(&self, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18078         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontstretch), ::std::mem::transmute(textrange)).ok()
18079     }
GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18080     pub unsafe fn GetFontSize2(&self, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18081         (::windows::runtime::Interface::vtable(self).50)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontsize), ::std::mem::transmute(textrange)).ok()
18082     }
18083     #[cfg(feature = "Win32_Foundation")]
GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18084     pub unsafe fn GetUnderline(&self, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18085         (::windows::runtime::Interface::vtable(self).51)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasunderline), ::std::mem::transmute(textrange)).ok()
18086     }
18087     #[cfg(feature = "Win32_Foundation")]
GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18088     pub unsafe fn GetStrikethrough(&self, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18089         (::windows::runtime::Interface::vtable(self).52)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(hasstrikethrough), ::std::mem::transmute(textrange)).ok()
18090     }
GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18091     pub unsafe fn GetDrawingEffect(&self, currentposition: u32, drawingeffect: *mut ::std::option::Option<::windows::runtime::IUnknown>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18092         (::windows::runtime::Interface::vtable(self).53)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(drawingeffect), ::std::mem::transmute(textrange)).ok()
18093     }
GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18094     pub unsafe fn GetInlineObject(&self, currentposition: u32, inlineobject: *mut ::std::option::Option<IDWriteInlineObject>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18095         (::windows::runtime::Interface::vtable(self).54)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(inlineobject), ::std::mem::transmute(textrange)).ok()
18096     }
GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18097     pub unsafe fn GetTypography(&self, currentposition: u32, typography: *mut ::std::option::Option<IDWriteTypography>, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18098         (::windows::runtime::Interface::vtable(self).55)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(typography), ::std::mem::transmute(textrange)).ok()
18099     }
GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18100     pub unsafe fn GetLocaleNameLength2(&self, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18101         (::windows::runtime::Interface::vtable(self).56)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(namelength), ::std::mem::transmute(textrange)).ok()
18102     }
18103     #[cfg(feature = "Win32_Foundation")]
GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18104     pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18105         (::windows::runtime::Interface::vtable(self).57)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(localename), ::std::mem::transmute(namesize), ::std::mem::transmute(textrange)).ok()
18106     }
Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()>18107     pub unsafe fn Draw<'a, Param1: ::windows::runtime::IntoParam<'a, IDWriteTextRenderer>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, renderer: Param1, originx: f32, originy: f32) -> ::windows::runtime::Result<()> {
18108         (::windows::runtime::Interface::vtable(self).58)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), renderer.into_param().abi(), ::std::mem::transmute(originx), ::std::mem::transmute(originy)).ok()
18109     }
18110     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>18111     pub unsafe fn GetLineMetrics(&self, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
18112         (::windows::runtime::Interface::vtable(self).59)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
18113     }
GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS>18114     pub unsafe fn GetMetrics(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS> {
18115         let mut result__: <DWRITE_TEXT_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18116         (::windows::runtime::Interface::vtable(self).60)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS>(result__)
18117     }
GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS>18118     pub unsafe fn GetOverhangMetrics(&self) -> ::windows::runtime::Result<DWRITE_OVERHANG_METRICS> {
18119         let mut result__: <DWRITE_OVERHANG_METRICS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18120         (::windows::runtime::Interface::vtable(self).61)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_OVERHANG_METRICS>(result__)
18121     }
GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()>18122     pub unsafe fn GetClusterMetrics(&self, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::Result<()> {
18123         (::windows::runtime::Interface::vtable(self).62)(::std::mem::transmute_copy(self), ::std::mem::transmute(clustermetrics), ::std::mem::transmute(maxclustercount), ::std::mem::transmute(actualclustercount)).ok()
18124     }
DetermineMinWidth(&self) -> ::windows::runtime::Result<f32>18125     pub unsafe fn DetermineMinWidth(&self) -> ::windows::runtime::Result<f32> {
18126         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18127         (::windows::runtime::Interface::vtable(self).63)(::std::mem::transmute_copy(self), &mut result__).from_abi::<f32>(result__)
18128     }
18129     #[cfg(feature = "Win32_Foundation")]
HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>18130     pub unsafe fn HitTestPoint(&self, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
18131         (::windows::runtime::Interface::vtable(self).64)(::std::mem::transmute_copy(self), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(istrailinghit), ::std::mem::transmute(isinside), ::std::mem::transmute(hittestmetrics)).ok()
18132     }
18133     #[cfg(feature = "Win32_Foundation")]
HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()>18134     pub unsafe fn HitTestTextPosition<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, textposition: u32, istrailinghit: Param1, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::Result<()> {
18135         (::windows::runtime::Interface::vtable(self).65)(::std::mem::transmute_copy(self), ::std::mem::transmute(textposition), istrailinghit.into_param().abi(), ::std::mem::transmute(pointx), ::std::mem::transmute(pointy), ::std::mem::transmute(hittestmetrics)).ok()
18136     }
18137     #[cfg(feature = "Win32_Foundation")]
HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()>18138     pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::Result<()> {
18139         (::windows::runtime::Interface::vtable(self).66)(
18140             ::std::mem::transmute_copy(self),
18141             ::std::mem::transmute(textposition),
18142             ::std::mem::transmute(textlength),
18143             ::std::mem::transmute(originx),
18144             ::std::mem::transmute(originy),
18145             ::std::mem::transmute(hittestmetrics),
18146             ::std::mem::transmute(maxhittestmetricscount),
18147             ::std::mem::transmute(actualhittestmetricscount),
18148         )
18149         .ok()
18150     }
18151     #[cfg(feature = "Win32_Foundation")]
SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()>18152     pub unsafe fn SetPairKerning<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param1: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, ispairkerningenabled: Param0, textrange: Param1) -> ::windows::runtime::Result<()> {
18153         (::windows::runtime::Interface::vtable(self).67)(::std::mem::transmute_copy(self), ispairkerningenabled.into_param().abi(), textrange.into_param().abi()).ok()
18154     }
18155     #[cfg(feature = "Win32_Foundation")]
GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18156     pub unsafe fn GetPairKerning(&self, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18157         (::windows::runtime::Interface::vtable(self).68)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(ispairkerningenabled), ::std::mem::transmute(textrange)).ok()
18158     }
SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()>18159     pub unsafe fn SetCharacterSpacing<'a, Param3: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: Param3) -> ::windows::runtime::Result<()> {
18160         (::windows::runtime::Interface::vtable(self).69)(::std::mem::transmute_copy(self), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), textrange.into_param().abi()).ok()
18161     }
GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18162     pub unsafe fn GetCharacterSpacing(&self, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18163         (::windows::runtime::Interface::vtable(self).70)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(leadingspacing), ::std::mem::transmute(trailingspacing), ::std::mem::transmute(minimumadvancewidth), ::std::mem::transmute(textrange)).ok()
18164     }
GetMetrics2(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS1>18165     pub unsafe fn GetMetrics2(&self) -> ::windows::runtime::Result<DWRITE_TEXT_METRICS1> {
18166         let mut result__: <DWRITE_TEXT_METRICS1 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18167         (::windows::runtime::Interface::vtable(self).71)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_TEXT_METRICS1>(result__)
18168     }
SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()>18169     pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::Result<()> {
18170         (::windows::runtime::Interface::vtable(self).72)(::std::mem::transmute_copy(self), ::std::mem::transmute(glyphorientation)).ok()
18171     }
GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION18172     pub unsafe fn GetVerticalGlyphOrientation(&self) -> DWRITE_VERTICAL_GLYPH_ORIENTATION {
18173         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).73)(::std::mem::transmute_copy(self)))
18174     }
18175     #[cfg(feature = "Win32_Foundation")]
SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()>18176     pub unsafe fn SetLastLineWrapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, islastlinewrappingenabled: Param0) -> ::windows::runtime::Result<()> {
18177         (::windows::runtime::Interface::vtable(self).74)(::std::mem::transmute_copy(self), islastlinewrappingenabled.into_param().abi()).ok()
18178     }
18179     #[cfg(feature = "Win32_Foundation")]
GetLastLineWrapping(&self) -> super::super::Foundation::BOOL18180     pub unsafe fn GetLastLineWrapping(&self) -> super::super::Foundation::BOOL {
18181         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).75)(::std::mem::transmute_copy(self)))
18182     }
SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()>18183     pub unsafe fn SetOpticalAlignment(&self, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::Result<()> {
18184         (::windows::runtime::Interface::vtable(self).76)(::std::mem::transmute_copy(self), ::std::mem::transmute(opticalalignment)).ok()
18185     }
GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT18186     pub unsafe fn GetOpticalAlignment(&self) -> DWRITE_OPTICAL_ALIGNMENT {
18187         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).77)(::std::mem::transmute_copy(self)))
18188     }
SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()>18189     pub unsafe fn SetFontFallback<'a, Param0: ::windows::runtime::IntoParam<'a, IDWriteFontFallback>>(&self, fontfallback: Param0) -> ::windows::runtime::Result<()> {
18190         (::windows::runtime::Interface::vtable(self).78)(::std::mem::transmute_copy(self), fontfallback.into_param().abi()).ok()
18191     }
GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback>18192     pub unsafe fn GetFontFallback(&self) -> ::windows::runtime::Result<IDWriteFontFallback> {
18193         let mut result__: <IDWriteFontFallback as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18194         (::windows::runtime::Interface::vtable(self).79)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IDWriteFontFallback>(result__)
18195     }
InvalidateLayout(&self) -> ::windows::runtime::Result<()>18196     pub unsafe fn InvalidateLayout(&self) -> ::windows::runtime::Result<()> {
18197         (::windows::runtime::Interface::vtable(self).80)(::std::mem::transmute_copy(self)).ok()
18198     }
SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()>18199     pub unsafe fn SetLineSpacing2(&self, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::Result<()> {
18200         (::windows::runtime::Interface::vtable(self).81)(::std::mem::transmute_copy(self), ::std::mem::transmute(linespacingoptions)).ok()
18201     }
GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING>18202     pub unsafe fn GetLineSpacing2(&self) -> ::windows::runtime::Result<DWRITE_LINE_SPACING> {
18203         let mut result__: <DWRITE_LINE_SPACING as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18204         (::windows::runtime::Interface::vtable(self).82)(::std::mem::transmute_copy(self), &mut result__).from_abi::<DWRITE_LINE_SPACING>(result__)
18205     }
18206     #[cfg(feature = "Win32_Foundation")]
GetLineMetrics2(&self, linemetrics: *mut DWRITE_LINE_METRICS1, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()>18207     pub unsafe fn GetLineMetrics2(&self, linemetrics: *mut DWRITE_LINE_METRICS1, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::Result<()> {
18208         (::windows::runtime::Interface::vtable(self).83)(::std::mem::transmute_copy(self), ::std::mem::transmute(linemetrics), ::std::mem::transmute(maxlinecount), ::std::mem::transmute(actuallinecount)).ok()
18209     }
SetFontAxisValues<'a, Param2: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, textrange: Param2) -> ::windows::runtime::Result<()>18210     pub unsafe fn SetFontAxisValues<'a, Param2: ::windows::runtime::IntoParam<'a, DWRITE_TEXT_RANGE>>(&self, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, textrange: Param2) -> ::windows::runtime::Result<()> {
18211         (::windows::runtime::Interface::vtable(self).84)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), textrange.into_param().abi()).ok()
18212     }
GetFontAxisValueCount(&self, currentposition: u32) -> u3218213     pub unsafe fn GetFontAxisValueCount(&self, currentposition: u32) -> u32 {
18214         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).85)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition)))
18215     }
GetFontAxisValues(&self, currentposition: u32, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()>18216     pub unsafe fn GetFontAxisValues(&self, currentposition: u32, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::Result<()> {
18217         (::windows::runtime::Interface::vtable(self).86)(::std::mem::transmute_copy(self), ::std::mem::transmute(currentposition), ::std::mem::transmute(fontaxisvalues), ::std::mem::transmute(fontaxisvaluecount), ::std::mem::transmute(textrange)).ok()
18218     }
GetAutomaticFontAxes(&self) -> DWRITE_AUTOMATIC_FONT_AXES18219     pub unsafe fn GetAutomaticFontAxes(&self) -> DWRITE_AUTOMATIC_FONT_AXES {
18220         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).87)(::std::mem::transmute_copy(self)))
18221     }
SetAutomaticFontAxes(&self, automaticfontaxes: DWRITE_AUTOMATIC_FONT_AXES) -> ::windows::runtime::Result<()>18222     pub unsafe fn SetAutomaticFontAxes(&self, automaticfontaxes: DWRITE_AUTOMATIC_FONT_AXES) -> ::windows::runtime::Result<()> {
18223         (::windows::runtime::Interface::vtable(self).88)(::std::mem::transmute_copy(self), ::std::mem::transmute(automaticfontaxes)).ok()
18224     }
18225 }
18226 unsafe impl ::windows::runtime::Interface for IDWriteTextLayout4 {
18227     type Vtable = IDWriteTextLayout4_abi;
18228     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(95010626, 8767, 17473, [181, 251, 130, 99, 104, 95, 85, 233]);
18229 }
18230 impl ::std::convert::From<IDWriteTextLayout4> for ::windows::runtime::IUnknown {
from(value: IDWriteTextLayout4) -> Self18231     fn from(value: IDWriteTextLayout4) -> Self {
18232         unsafe { ::std::mem::transmute(value) }
18233     }
18234 }
18235 impl ::std::convert::From<&IDWriteTextLayout4> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextLayout4) -> Self18236     fn from(value: &IDWriteTextLayout4) -> Self {
18237         ::std::convert::From::from(::std::clone::Clone::clone(value))
18238     }
18239 }
18240 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18241     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18242         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
18243     }
18244 }
18245 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18246     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18247         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
18248     }
18249 }
18250 impl ::std::convert::From<IDWriteTextLayout4> for IDWriteTextLayout3 {
from(value: IDWriteTextLayout4) -> Self18251     fn from(value: IDWriteTextLayout4) -> Self {
18252         unsafe { ::std::mem::transmute(value) }
18253     }
18254 }
18255 impl ::std::convert::From<&IDWriteTextLayout4> for IDWriteTextLayout3 {
from(value: &IDWriteTextLayout4) -> Self18256     fn from(value: &IDWriteTextLayout4) -> Self {
18257         ::std::convert::From::from(::std::clone::Clone::clone(value))
18258     }
18259 }
18260 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout3> for IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout3>18261     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout3> {
18262         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout3>::into(self))
18263     }
18264 }
18265 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout3> for &IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout3>18266     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout3> {
18267         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout3>::into(::std::clone::Clone::clone(self)))
18268     }
18269 }
18270 impl ::std::convert::From<IDWriteTextLayout4> for IDWriteTextLayout2 {
from(value: IDWriteTextLayout4) -> Self18271     fn from(value: IDWriteTextLayout4) -> Self {
18272         unsafe { ::std::mem::transmute(value) }
18273     }
18274 }
18275 impl ::std::convert::From<&IDWriteTextLayout4> for IDWriteTextLayout2 {
from(value: &IDWriteTextLayout4) -> Self18276     fn from(value: &IDWriteTextLayout4) -> Self {
18277         ::std::convert::From::from(::std::clone::Clone::clone(value))
18278     }
18279 }
18280 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout2> for IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2>18281     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2> {
18282         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout2>::into(self))
18283     }
18284 }
18285 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout2> for &IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2>18286     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout2> {
18287         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout2>::into(::std::clone::Clone::clone(self)))
18288     }
18289 }
18290 impl ::std::convert::From<IDWriteTextLayout4> for IDWriteTextLayout1 {
from(value: IDWriteTextLayout4) -> Self18291     fn from(value: IDWriteTextLayout4) -> Self {
18292         unsafe { ::std::mem::transmute(value) }
18293     }
18294 }
18295 impl ::std::convert::From<&IDWriteTextLayout4> for IDWriteTextLayout1 {
from(value: &IDWriteTextLayout4) -> Self18296     fn from(value: &IDWriteTextLayout4) -> Self {
18297         ::std::convert::From::from(::std::clone::Clone::clone(value))
18298     }
18299 }
18300 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout1> for IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1>18301     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1> {
18302         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout1>::into(self))
18303     }
18304 }
18305 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout1> for &IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1>18306     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout1> {
18307         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout1>::into(::std::clone::Clone::clone(self)))
18308     }
18309 }
18310 impl ::std::convert::From<IDWriteTextLayout4> for IDWriteTextLayout {
from(value: IDWriteTextLayout4) -> Self18311     fn from(value: IDWriteTextLayout4) -> Self {
18312         unsafe { ::std::mem::transmute(value) }
18313     }
18314 }
18315 impl ::std::convert::From<&IDWriteTextLayout4> for IDWriteTextLayout {
from(value: &IDWriteTextLayout4) -> Self18316     fn from(value: &IDWriteTextLayout4) -> Self {
18317         ::std::convert::From::from(::std::clone::Clone::clone(value))
18318     }
18319 }
18320 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>18321     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
18322         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(self))
18323     }
18324 }
18325 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextLayout> for &IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout>18326     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextLayout> {
18327         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextLayout>::into(::std::clone::Clone::clone(self)))
18328     }
18329 }
18330 impl ::std::convert::From<IDWriteTextLayout4> for IDWriteTextFormat {
from(value: IDWriteTextLayout4) -> Self18331     fn from(value: IDWriteTextLayout4) -> Self {
18332         unsafe { ::std::mem::transmute(value) }
18333     }
18334 }
18335 impl ::std::convert::From<&IDWriteTextLayout4> for IDWriteTextFormat {
from(value: &IDWriteTextLayout4) -> Self18336     fn from(value: &IDWriteTextLayout4) -> Self {
18337         ::std::convert::From::from(::std::clone::Clone::clone(value))
18338     }
18339 }
18340 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>18341     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
18342         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(self))
18343     }
18344 }
18345 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextFormat> for &IDWriteTextLayout4 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat>18346     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextFormat> {
18347         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextFormat>::into(::std::clone::Clone::clone(self)))
18348     }
18349 }
18350 #[repr(C)]
18351 #[doc(hidden)]
18352 pub struct IDWriteTextLayout4_abi(
18353     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18354     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textalignment: DWRITE_TEXT_ALIGNMENT) -> ::windows::runtime::HRESULT,
18357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, paragraphalignment: DWRITE_PARAGRAPH_ALIGNMENT) -> ::windows::runtime::HRESULT,
18358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wordwrapping: DWRITE_WORD_WRAPPING) -> ::windows::runtime::HRESULT,
18359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, readingdirection: DWRITE_READING_DIRECTION) -> ::windows::runtime::HRESULT,
18360     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, flowdirection: DWRITE_FLOW_DIRECTION) -> ::windows::runtime::HRESULT,
18361     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, incrementaltabstop: f32) -> ::windows::runtime::HRESULT,
18362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *const DWRITE_TRIMMING, trimmingsign: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18363     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: DWRITE_LINE_SPACING_METHOD, linespacing: f32, baseline: f32) -> ::windows::runtime::HRESULT,
18364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_TEXT_ALIGNMENT,
18365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_PARAGRAPH_ALIGNMENT,
18366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_WORD_WRAPPING,
18367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_READING_DIRECTION,
18368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FLOW_DIRECTION,
18369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
18370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, trimmingoptions: *mut DWRITE_TRIMMING, trimmingsign: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingmethod: *mut DWRITE_LINE_SPACING_METHOD, linespacing: *mut f32, baseline: *mut f32) -> ::windows::runtime::HRESULT,
18372     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18373     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18374     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
18375     #[cfg(not(feature = "Win32_Foundation"))] usize,
18376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_WEIGHT,
18377     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STYLE,
18378     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_FONT_STRETCH,
18379     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
18380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18381     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, namesize: u32) -> ::windows::runtime::HRESULT,
18382     #[cfg(not(feature = "Win32_Foundation"))] usize,
18383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxwidth: f32) -> ::windows::runtime::HRESULT,
18384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maxheight: f32) -> ::windows::runtime::HRESULT,
18385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontcollection: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18386     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfamilyname: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18387     #[cfg(not(feature = "Win32_Foundation"))] usize,
18388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontweight: DWRITE_FONT_WEIGHT, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18389     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstyle: DWRITE_FONT_STYLE, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18390     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontstretch: DWRITE_FONT_STRETCH, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontsize: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18392     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasunderline: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18393     #[cfg(not(feature = "Win32_Foundation"))] usize,
18394     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hasstrikethrough: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18395     #[cfg(not(feature = "Win32_Foundation"))] usize,
18396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, drawingeffect: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inlineobject: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, typography: ::windows::runtime::RawPtr, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18399     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, localename: super::super::Foundation::PWSTR, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18400     #[cfg(not(feature = "Win32_Foundation"))] usize,
18401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
18402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> f32,
18403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontcollection: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18405     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontfamilyname: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18406     #[cfg(not(feature = "Win32_Foundation"))] usize,
18407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontweight: *mut DWRITE_FONT_WEIGHT, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstyle: *mut DWRITE_FONT_STYLE, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontstretch: *mut DWRITE_FONT_STRETCH, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontsize: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18411     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasunderline: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18412     #[cfg(not(feature = "Win32_Foundation"))] usize,
18413     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, hasstrikethrough: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18414     #[cfg(not(feature = "Win32_Foundation"))] usize,
18415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, drawingeffect: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, inlineobject: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, typography: *mut ::windows::runtime::RawPtr, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, namelength: *mut u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18419     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, localename: super::super::Foundation::PWSTR, namesize: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18420     #[cfg(not(feature = "Win32_Foundation"))] usize,
18421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, renderer: ::windows::runtime::RawPtr, originx: f32, originy: f32) -> ::windows::runtime::HRESULT,
18422     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
18423     #[cfg(not(feature = "Win32_Foundation"))] usize,
18424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS) -> ::windows::runtime::HRESULT,
18425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, overhangs: *mut DWRITE_OVERHANG_METRICS) -> ::windows::runtime::HRESULT,
18426     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clustermetrics: *mut DWRITE_CLUSTER_METRICS, maxclustercount: u32, actualclustercount: *mut u32) -> ::windows::runtime::HRESULT,
18427     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, minwidth: *mut f32) -> ::windows::runtime::HRESULT,
18428     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pointx: f32, pointy: f32, istrailinghit: *mut super::super::Foundation::BOOL, isinside: *mut super::super::Foundation::BOOL, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
18429     #[cfg(not(feature = "Win32_Foundation"))] usize,
18430     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, istrailinghit: super::super::Foundation::BOOL, pointx: *mut f32, pointy: *mut f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS) -> ::windows::runtime::HRESULT,
18431     #[cfg(not(feature = "Win32_Foundation"))] usize,
18432     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: *mut DWRITE_HIT_TEST_METRICS, maxhittestmetricscount: u32, actualhittestmetricscount: *mut u32) -> ::windows::runtime::HRESULT,
18433     #[cfg(not(feature = "Win32_Foundation"))] usize,
18434     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ispairkerningenabled: super::super::Foundation::BOOL, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18435     #[cfg(not(feature = "Win32_Foundation"))] usize,
18436     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, ispairkerningenabled: *mut super::super::Foundation::BOOL, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18437     #[cfg(not(feature = "Win32_Foundation"))] usize,
18438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, leadingspacing: *mut f32, trailingspacing: *mut f32, minimumadvancewidth: *mut f32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18440     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, textmetrics: *mut DWRITE_TEXT_METRICS1) -> ::windows::runtime::HRESULT,
18441     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::runtime::HRESULT,
18442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_VERTICAL_GLYPH_ORIENTATION,
18443     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, islastlinewrappingenabled: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
18444     #[cfg(not(feature = "Win32_Foundation"))] usize,
18445     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> super::super::Foundation::BOOL,
18446     #[cfg(not(feature = "Win32_Foundation"))] usize,
18447     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, opticalalignment: DWRITE_OPTICAL_ALIGNMENT) -> ::windows::runtime::HRESULT,
18448     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_OPTICAL_ALIGNMENT,
18449     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18450     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfallback: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *const DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
18453     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linespacingoptions: *mut DWRITE_LINE_SPACING) -> ::windows::runtime::HRESULT,
18454     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, linemetrics: *mut DWRITE_LINE_METRICS1, maxlinecount: u32, actuallinecount: *mut u32) -> ::windows::runtime::HRESULT,
18455     #[cfg(not(feature = "Win32_Foundation"))] usize,
18456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontaxisvalues: *const DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, textrange: DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32) -> u32,
18458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, currentposition: u32, fontaxisvalues: *mut DWRITE_FONT_AXIS_VALUE, fontaxisvaluecount: u32, textrange: *mut DWRITE_TEXT_RANGE) -> ::windows::runtime::HRESULT,
18459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> DWRITE_AUTOMATIC_FONT_AXES,
18460     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, automaticfontaxes: DWRITE_AUTOMATIC_FONT_AXES) -> ::windows::runtime::HRESULT,
18461 );
18462 #[repr(transparent)]
18463 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
18464 pub struct IDWriteTextRenderer(::windows::runtime::IUnknown);
18465 impl IDWriteTextRenderer {
18466     #[cfg(feature = "Win32_Foundation")]
IsPixelSnappingDisabled(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<super::super::Foundation::BOOL>18467     pub unsafe fn IsPixelSnappingDisabled(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
18468         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18469         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
18470     }
GetCurrentTransform(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<DWRITE_MATRIX>18471     pub unsafe fn GetCurrentTransform(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<DWRITE_MATRIX> {
18472         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18473         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
18474     }
GetPixelsPerDip(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<f32>18475     pub unsafe fn GetPixelsPerDip(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<f32> {
18476         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18477         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<f32>(result__)
18478     }
18479     #[cfg(feature = "Win32_Foundation")]
DrawGlyphRun<'a, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: Param6) -> ::windows::runtime::Result<()>18480     pub unsafe fn DrawGlyphRun<'a, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: Param6) -> ::windows::runtime::Result<()> {
18481         (::windows::runtime::Interface::vtable(self).6)(
18482             ::std::mem::transmute_copy(self),
18483             ::std::mem::transmute(clientdrawingcontext),
18484             ::std::mem::transmute(baselineoriginx),
18485             ::std::mem::transmute(baselineoriginy),
18486             ::std::mem::transmute(measuringmode),
18487             ::std::mem::transmute(glyphrun),
18488             ::std::mem::transmute(glyphrundescription),
18489             clientdrawingeffect.into_param().abi(),
18490         )
18491         .ok()
18492     }
18493     #[cfg(feature = "Win32_Foundation")]
DrawUnderline<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()>18494     pub unsafe fn DrawUnderline<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()> {
18495         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(underline), clientdrawingeffect.into_param().abi()).ok()
18496     }
18497     #[cfg(feature = "Win32_Foundation")]
DrawStrikethrough<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()>18498     pub unsafe fn DrawStrikethrough<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()> {
18499         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(strikethrough), clientdrawingeffect.into_param().abi()).ok()
18500     }
18501     #[cfg(feature = "Win32_Foundation")]
DrawInlineObject<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>( &self, clientdrawingcontext: *const ::std::ffi::c_void, originx: f32, originy: f32, inlineobject: Param3, issideways: Param4, isrighttoleft: Param5, clientdrawingeffect: Param6, ) -> ::windows::runtime::Result<()>18502     pub unsafe fn DrawInlineObject<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(
18503         &self,
18504         clientdrawingcontext: *const ::std::ffi::c_void,
18505         originx: f32,
18506         originy: f32,
18507         inlineobject: Param3,
18508         issideways: Param4,
18509         isrighttoleft: Param5,
18510         clientdrawingeffect: Param6,
18511     ) -> ::windows::runtime::Result<()> {
18512         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(originx), ::std::mem::transmute(originy), inlineobject.into_param().abi(), issideways.into_param().abi(), isrighttoleft.into_param().abi(), clientdrawingeffect.into_param().abi()).ok()
18513     }
18514 }
18515 unsafe impl ::windows::runtime::Interface for IDWriteTextRenderer {
18516     type Vtable = IDWriteTextRenderer_abi;
18517     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4018831669, 23750, 17918, [136, 37, 197, 160, 114, 78, 184, 25]);
18518 }
18519 impl ::std::convert::From<IDWriteTextRenderer> for ::windows::runtime::IUnknown {
from(value: IDWriteTextRenderer) -> Self18520     fn from(value: IDWriteTextRenderer) -> Self {
18521         unsafe { ::std::mem::transmute(value) }
18522     }
18523 }
18524 impl ::std::convert::From<&IDWriteTextRenderer> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextRenderer) -> Self18525     fn from(value: &IDWriteTextRenderer) -> Self {
18526         ::std::convert::From::from(::std::clone::Clone::clone(value))
18527     }
18528 }
18529 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextRenderer {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18530     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18531         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
18532     }
18533 }
18534 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextRenderer {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18535     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18536         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
18537     }
18538 }
18539 impl ::std::convert::From<IDWriteTextRenderer> for IDWritePixelSnapping {
from(value: IDWriteTextRenderer) -> Self18540     fn from(value: IDWriteTextRenderer) -> Self {
18541         unsafe { ::std::mem::transmute(value) }
18542     }
18543 }
18544 impl ::std::convert::From<&IDWriteTextRenderer> for IDWritePixelSnapping {
from(value: &IDWriteTextRenderer) -> Self18545     fn from(value: &IDWriteTextRenderer) -> Self {
18546         ::std::convert::From::from(::std::clone::Clone::clone(value))
18547     }
18548 }
18549 impl<'a> ::windows::runtime::IntoParam<'a, IDWritePixelSnapping> for IDWriteTextRenderer {
into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping>18550     fn into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping> {
18551         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWritePixelSnapping>::into(self))
18552     }
18553 }
18554 impl<'a> ::windows::runtime::IntoParam<'a, IDWritePixelSnapping> for &IDWriteTextRenderer {
into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping>18555     fn into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping> {
18556         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWritePixelSnapping>::into(::std::clone::Clone::clone(self)))
18557     }
18558 }
18559 #[repr(C)]
18560 #[doc(hidden)]
18561 pub struct IDWriteTextRenderer_abi(
18562     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18563     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18565     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, isdisabled: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
18566     #[cfg(not(feature = "Win32_Foundation"))] usize,
18567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
18568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, pixelsperdip: *mut f32) -> ::windows::runtime::HRESULT,
18569     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18570     #[cfg(not(feature = "Win32_Foundation"))] usize,
18571     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18572     #[cfg(not(feature = "Win32_Foundation"))] usize,
18573     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18574     #[cfg(not(feature = "Win32_Foundation"))] usize,
18575     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, originx: f32, originy: f32, inlineobject: ::windows::runtime::RawPtr, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18576     #[cfg(not(feature = "Win32_Foundation"))] usize,
18577 );
18578 #[repr(transparent)]
18579 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
18580 pub struct IDWriteTextRenderer1(::windows::runtime::IUnknown);
18581 impl IDWriteTextRenderer1 {
18582     #[cfg(feature = "Win32_Foundation")]
IsPixelSnappingDisabled(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<super::super::Foundation::BOOL>18583     pub unsafe fn IsPixelSnappingDisabled(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
18584         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18585         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
18586     }
GetCurrentTransform(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<DWRITE_MATRIX>18587     pub unsafe fn GetCurrentTransform(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<DWRITE_MATRIX> {
18588         let mut result__: <DWRITE_MATRIX as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18589         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<DWRITE_MATRIX>(result__)
18590     }
GetPixelsPerDip(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<f32>18591     pub unsafe fn GetPixelsPerDip(&self, clientdrawingcontext: *const ::std::ffi::c_void) -> ::windows::runtime::Result<f32> {
18592         let mut result__: <f32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18593         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), &mut result__).from_abi::<f32>(result__)
18594     }
18595     #[cfg(feature = "Win32_Foundation")]
DrawGlyphRun<'a, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: Param6) -> ::windows::runtime::Result<()>18596     pub unsafe fn DrawGlyphRun<'a, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: Param6) -> ::windows::runtime::Result<()> {
18597         (::windows::runtime::Interface::vtable(self).6)(
18598             ::std::mem::transmute_copy(self),
18599             ::std::mem::transmute(clientdrawingcontext),
18600             ::std::mem::transmute(baselineoriginx),
18601             ::std::mem::transmute(baselineoriginy),
18602             ::std::mem::transmute(measuringmode),
18603             ::std::mem::transmute(glyphrun),
18604             ::std::mem::transmute(glyphrundescription),
18605             clientdrawingeffect.into_param().abi(),
18606         )
18607         .ok()
18608     }
18609     #[cfg(feature = "Win32_Foundation")]
DrawUnderline<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()>18610     pub unsafe fn DrawUnderline<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()> {
18611         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(underline), clientdrawingeffect.into_param().abi()).ok()
18612     }
18613     #[cfg(feature = "Win32_Foundation")]
DrawStrikethrough<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()>18614     pub unsafe fn DrawStrikethrough<'a, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: Param4) -> ::windows::runtime::Result<()> {
18615         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(strikethrough), clientdrawingeffect.into_param().abi()).ok()
18616     }
18617     #[cfg(feature = "Win32_Foundation")]
DrawInlineObject<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>( &self, clientdrawingcontext: *const ::std::ffi::c_void, originx: f32, originy: f32, inlineobject: Param3, issideways: Param4, isrighttoleft: Param5, clientdrawingeffect: Param6, ) -> ::windows::runtime::Result<()>18618     pub unsafe fn DrawInlineObject<'a, Param3: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(
18619         &self,
18620         clientdrawingcontext: *const ::std::ffi::c_void,
18621         originx: f32,
18622         originy: f32,
18623         inlineobject: Param3,
18624         issideways: Param4,
18625         isrighttoleft: Param5,
18626         clientdrawingeffect: Param6,
18627     ) -> ::windows::runtime::Result<()> {
18628         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(originx), ::std::mem::transmute(originy), inlineobject.into_param().abi(), issideways.into_param().abi(), isrighttoleft.into_param().abi(), clientdrawingeffect.into_param().abi()).ok()
18629     }
18630     #[cfg(feature = "Win32_Foundation")]
DrawGlyphRun2<'a, Param7: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: Param7) -> ::windows::runtime::Result<()>18631     pub unsafe fn DrawGlyphRun2<'a, Param7: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const DWRITE_GLYPH_RUN, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: Param7) -> ::windows::runtime::Result<()> {
18632         (::windows::runtime::Interface::vtable(self).10)(
18633             ::std::mem::transmute_copy(self),
18634             ::std::mem::transmute(clientdrawingcontext),
18635             ::std::mem::transmute(baselineoriginx),
18636             ::std::mem::transmute(baselineoriginy),
18637             ::std::mem::transmute(orientationangle),
18638             ::std::mem::transmute(measuringmode),
18639             ::std::mem::transmute(glyphrun),
18640             ::std::mem::transmute(glyphrundescription),
18641             clientdrawingeffect.into_param().abi(),
18642         )
18643         .ok()
18644     }
18645     #[cfg(feature = "Win32_Foundation")]
DrawUnderline2<'a, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: Param5) -> ::windows::runtime::Result<()>18646     pub unsafe fn DrawUnderline2<'a, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: Param5) -> ::windows::runtime::Result<()> {
18647         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(orientationangle), ::std::mem::transmute(underline), clientdrawingeffect.into_param().abi()).ok()
18648     }
18649     #[cfg(feature = "Win32_Foundation")]
DrawStrikethrough2<'a, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: Param5) -> ::windows::runtime::Result<()>18650     pub unsafe fn DrawStrikethrough2<'a, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: Param5) -> ::windows::runtime::Result<()> {
18651         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(clientdrawingcontext), ::std::mem::transmute(baselineoriginx), ::std::mem::transmute(baselineoriginy), ::std::mem::transmute(orientationangle), ::std::mem::transmute(strikethrough), clientdrawingeffect.into_param().abi()).ok()
18652     }
18653     #[cfg(feature = "Win32_Foundation")]
DrawInlineObject2<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>( &self, clientdrawingcontext: *const ::std::ffi::c_void, originx: f32, originy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, inlineobject: Param4, issideways: Param5, isrighttoleft: Param6, clientdrawingeffect: Param7, ) -> ::windows::runtime::Result<()>18654     pub unsafe fn DrawInlineObject2<'a, Param4: ::windows::runtime::IntoParam<'a, IDWriteInlineObject>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param7: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(
18655         &self,
18656         clientdrawingcontext: *const ::std::ffi::c_void,
18657         originx: f32,
18658         originy: f32,
18659         orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE,
18660         inlineobject: Param4,
18661         issideways: Param5,
18662         isrighttoleft: Param6,
18663         clientdrawingeffect: Param7,
18664     ) -> ::windows::runtime::Result<()> {
18665         (::windows::runtime::Interface::vtable(self).13)(
18666             ::std::mem::transmute_copy(self),
18667             ::std::mem::transmute(clientdrawingcontext),
18668             ::std::mem::transmute(originx),
18669             ::std::mem::transmute(originy),
18670             ::std::mem::transmute(orientationangle),
18671             inlineobject.into_param().abi(),
18672             issideways.into_param().abi(),
18673             isrighttoleft.into_param().abi(),
18674             clientdrawingeffect.into_param().abi(),
18675         )
18676         .ok()
18677     }
18678 }
18679 unsafe impl ::windows::runtime::Interface for IDWriteTextRenderer1 {
18680     type Vtable = IDWriteTextRenderer1_abi;
18681     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3554732340, 8864, 17022, [170, 228, 125, 149, 116, 181, 157, 177]);
18682 }
18683 impl ::std::convert::From<IDWriteTextRenderer1> for ::windows::runtime::IUnknown {
from(value: IDWriteTextRenderer1) -> Self18684     fn from(value: IDWriteTextRenderer1) -> Self {
18685         unsafe { ::std::mem::transmute(value) }
18686     }
18687 }
18688 impl ::std::convert::From<&IDWriteTextRenderer1> for ::windows::runtime::IUnknown {
from(value: &IDWriteTextRenderer1) -> Self18689     fn from(value: &IDWriteTextRenderer1) -> Self {
18690         ::std::convert::From::from(::std::clone::Clone::clone(value))
18691     }
18692 }
18693 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTextRenderer1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18694     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18695         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
18696     }
18697 }
18698 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTextRenderer1 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18699     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18700         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
18701     }
18702 }
18703 impl ::std::convert::From<IDWriteTextRenderer1> for IDWriteTextRenderer {
from(value: IDWriteTextRenderer1) -> Self18704     fn from(value: IDWriteTextRenderer1) -> Self {
18705         unsafe { ::std::mem::transmute(value) }
18706     }
18707 }
18708 impl ::std::convert::From<&IDWriteTextRenderer1> for IDWriteTextRenderer {
from(value: &IDWriteTextRenderer1) -> Self18709     fn from(value: &IDWriteTextRenderer1) -> Self {
18710         ::std::convert::From::from(::std::clone::Clone::clone(value))
18711     }
18712 }
18713 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextRenderer> for IDWriteTextRenderer1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextRenderer>18714     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextRenderer> {
18715         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextRenderer>::into(self))
18716     }
18717 }
18718 impl<'a> ::windows::runtime::IntoParam<'a, IDWriteTextRenderer> for &IDWriteTextRenderer1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextRenderer>18719     fn into_param(self) -> ::windows::runtime::Param<'a, IDWriteTextRenderer> {
18720         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWriteTextRenderer>::into(::std::clone::Clone::clone(self)))
18721     }
18722 }
18723 impl ::std::convert::From<IDWriteTextRenderer1> for IDWritePixelSnapping {
from(value: IDWriteTextRenderer1) -> Self18724     fn from(value: IDWriteTextRenderer1) -> Self {
18725         unsafe { ::std::mem::transmute(value) }
18726     }
18727 }
18728 impl ::std::convert::From<&IDWriteTextRenderer1> for IDWritePixelSnapping {
from(value: &IDWriteTextRenderer1) -> Self18729     fn from(value: &IDWriteTextRenderer1) -> Self {
18730         ::std::convert::From::from(::std::clone::Clone::clone(value))
18731     }
18732 }
18733 impl<'a> ::windows::runtime::IntoParam<'a, IDWritePixelSnapping> for IDWriteTextRenderer1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping>18734     fn into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping> {
18735         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWritePixelSnapping>::into(self))
18736     }
18737 }
18738 impl<'a> ::windows::runtime::IntoParam<'a, IDWritePixelSnapping> for &IDWriteTextRenderer1 {
into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping>18739     fn into_param(self) -> ::windows::runtime::Param<'a, IDWritePixelSnapping> {
18740         ::windows::runtime::Param::Owned(::std::convert::Into::<IDWritePixelSnapping>::into(::std::clone::Clone::clone(self)))
18741     }
18742 }
18743 #[repr(C)]
18744 #[doc(hidden)]
18745 pub struct IDWriteTextRenderer1_abi(
18746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18749     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, isdisabled: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
18750     #[cfg(not(feature = "Win32_Foundation"))] usize,
18751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, transform: *mut DWRITE_MATRIX) -> ::windows::runtime::HRESULT,
18752     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, pixelsperdip: *mut f32) -> ::windows::runtime::HRESULT,
18753     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18754     #[cfg(not(feature = "Win32_Foundation"))] usize,
18755     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18756     #[cfg(not(feature = "Win32_Foundation"))] usize,
18757     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18758     #[cfg(not(feature = "Win32_Foundation"))] usize,
18759     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, originx: f32, originy: f32, inlineobject: ::windows::runtime::RawPtr, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18760     #[cfg(not(feature = "Win32_Foundation"))] usize,
18761     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, measuringmode: DWRITE_MEASURING_MODE, glyphrun: *const ::std::mem::ManuallyDrop<DWRITE_GLYPH_RUN>, glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18762     #[cfg(not(feature = "Win32_Foundation"))] usize,
18763     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, underline: *const DWRITE_UNDERLINE, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18764     #[cfg(not(feature = "Win32_Foundation"))] usize,
18765     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, baselineoriginx: f32, baselineoriginy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, strikethrough: *const DWRITE_STRIKETHROUGH, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18766     #[cfg(not(feature = "Win32_Foundation"))] usize,
18767     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clientdrawingcontext: *const ::std::ffi::c_void, originx: f32, originy: f32, orientationangle: DWRITE_GLYPH_ORIENTATION_ANGLE, inlineobject: ::windows::runtime::RawPtr, issideways: super::super::Foundation::BOOL, isrighttoleft: super::super::Foundation::BOOL, clientdrawingeffect: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18768     #[cfg(not(feature = "Win32_Foundation"))] usize,
18769 );
18770 #[repr(transparent)]
18771 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
18772 pub struct IDWriteTypography(::windows::runtime::IUnknown);
18773 impl IDWriteTypography {
AddFontFeature<'a, Param0: ::windows::runtime::IntoParam<'a, DWRITE_FONT_FEATURE>>(&self, fontfeature: Param0) -> ::windows::runtime::Result<()>18774     pub unsafe fn AddFontFeature<'a, Param0: ::windows::runtime::IntoParam<'a, DWRITE_FONT_FEATURE>>(&self, fontfeature: Param0) -> ::windows::runtime::Result<()> {
18775         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), fontfeature.into_param().abi()).ok()
18776     }
GetFontFeatureCount(&self) -> u3218777     pub unsafe fn GetFontFeatureCount(&self) -> u32 {
18778         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self)))
18779     }
GetFontFeature(&self, fontfeatureindex: u32) -> ::windows::runtime::Result<DWRITE_FONT_FEATURE>18780     pub unsafe fn GetFontFeature(&self, fontfeatureindex: u32) -> ::windows::runtime::Result<DWRITE_FONT_FEATURE> {
18781         let mut result__: <DWRITE_FONT_FEATURE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
18782         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(fontfeatureindex), &mut result__).from_abi::<DWRITE_FONT_FEATURE>(result__)
18783     }
18784 }
18785 unsafe impl ::windows::runtime::Interface for IDWriteTypography {
18786     type Vtable = IDWriteTypography_abi;
18787     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1441861931, 7618, 19260, [149, 65, 244, 104, 148, 237, 133, 182]);
18788 }
18789 impl ::std::convert::From<IDWriteTypography> for ::windows::runtime::IUnknown {
from(value: IDWriteTypography) -> Self18790     fn from(value: IDWriteTypography) -> Self {
18791         unsafe { ::std::mem::transmute(value) }
18792     }
18793 }
18794 impl ::std::convert::From<&IDWriteTypography> for ::windows::runtime::IUnknown {
from(value: &IDWriteTypography) -> Self18795     fn from(value: &IDWriteTypography) -> Self {
18796         ::std::convert::From::from(::std::clone::Clone::clone(value))
18797     }
18798 }
18799 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IDWriteTypography {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18800     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18801         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
18802     }
18803 }
18804 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IDWriteTypography {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>18805     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
18806         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
18807     }
18808 }
18809 #[repr(C)]
18810 #[doc(hidden)]
18811 pub struct IDWriteTypography_abi(
18812     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18813     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18814     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18815     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfeature: DWRITE_FONT_FEATURE) -> ::windows::runtime::HRESULT,
18816     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
18817     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, fontfeatureindex: u32, fontfeature: *mut DWRITE_FONT_FEATURE) -> ::windows::runtime::HRESULT,
18818 );
18819