// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! Mappings for the content of dwrite_3.h
use ctypes::c_void;
use shared::basetsd::{UINT16, UINT32, UINT64};
use shared::minwindef::{BOOL, FILETIME, FLOAT};
use um::dcommon::{DWRITE_GLYPH_IMAGE_DATA, DWRITE_GLYPH_IMAGE_FORMATS, DWRITE_MEASU
RING_MODE};
use um::dwrite::{
DWRITE_FONT_SIMULATIONS, DWRITE_FONT_STRETCH, DWRITE_FONT_STYLE, DWRITE_FONT_WEIGHT,
DWRITE_GLYPH_RUN, DWRITE_INFORMATIONAL_STRING_ID, DWRITE_LINE_SPACING_METHOD, DWRITE_MATRIX,
DWRITE_PIXEL_GEOMETRY, DWRITE_RENDERING_MODE_ALIASED, DWRITE_RENDERING_MODE_DEFAULT,
DWRITE_RENDERING_MODE_GDI_CLASSIC, DWRITE_RENDERING_MODE_GDI_NATURAL,
DWRITE_RENDERING_MODE_NATURAL, DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC,
DWRITE_RENDERING_MODE_OUTLINE, IDWriteFont, IDWriteFontCollection, IDWriteFontCollectionVtbl,
IDWriteFontFace, IDWriteFontFamily, IDWriteFontFamilyVtbl, IDWriteFontFile, IDWriteFontList,
IDWriteFontListVtbl, IDWriteGdiInterop, IDWriteGdiInteropVtbl, IDWriteGlyphRunAnalysis,
IDWriteLocalizedStrings, IDWriteRenderingParams,
};
use um::dwrite_1::{DWRITE_OUTLINE_THRESHOLD, DWRITE_PANOSE, DWRITE_TEXT_ANTIALIAS_MODE};
use um::dwrite_2::{
DWRITE_GRID_FIT_MODE, IDWriteFactory2, IDWriteFactory2Vtbl, IDWriteFont2, IDWriteFont2Vtbl,
IDWriteFontFace2, IDWriteFontFace2Vtbl, IDWriteRenderingParams2, IDWriteRenderingParams2Vtbl,
IDWriteTextFormat1, IDWriteTextFormat1Vtbl, IDWriteTextLayout2, IDWriteTextLayout2Vtbl,
};
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::wingdi::{FONTSIGNATURE, LOGFONTW};
use um::winnt::{HRESULT, WCHAR};
pub const DWRITE_E_REMOTEFONT: HRESULT = 0 x8898500D;
pub const DWRITE_E_DOWNLOADCANCELLED: HRESULT = 0 x8898500E;
pub const DWRITE_E_DOWNLOADFAILED: HRESULT = 0 x8898500F;
pub const DWRITE_E_TOOMANYDOWNLOADS: HRESULT = 0 x88985010;
ENUM !{enum DWRITE_FONT_PROPERTY_ID {
DWRITE_FONT_PROPERTY_ID_NONE,
DWRITE_FONT_PROPERTY_ID_FAMILY_NAME,
DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME,
DWRITE_FONT_PROPERTY_ID_FACE_NAME,
DWRITE_FONT_PROPERTY_ID_FULL_NAME,
DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME,
DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME,
DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG,
DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG,
DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG,
DWRITE_FONT_PROPERTY_ID_WEIGHT ,
DWRITE_FONT_PROPERTY_ID_STRETCH,
DWRITE_FONT_PROPERTY_ID_STYLE,
DWRITE_FONT_PROPERTY_ID_TOTAL,
}}
STRUCT !{struct DWRITE_FONT_PROPERTY {
propertyId: DWRITE_FONT_PROPERTY_ID,
propertyValue: *const WCHAR,
localeName: *const WCHAR,
}}
ENUM !{enum DWRITE_LOCALITY {
DWRITE_LOCALITY_REMOTE,
DWRITE_LOCALITY_PARTIAL,
DWRITE_LOCALITY_LOCAL,
}}
ENUM !{enum DWRITE_RENDERING_MODE1 {
DWRITE_RENDERING_MODE1_DEFAULT = DWRITE_RENDERING_MODE_DEFAULT,
DWRITE_RENDERING_MODE1_ALIASED = DWRITE_RENDERING_MODE_ALIASED,
DWRITE_RENDERING_MODE1_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC,
DWRITE_RENDERING_MODE1_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL,
DWRITE_RENDERING_MODE1_NATURAL = DWRITE_RENDERING_MODE_NATURAL,
DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC,
DWRITE_RENDERING_MODE1_OUTLINE = DWRITE_RENDERING_MODE_OUTLINE,
DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED,
}}
RIDL!{#[ uuid(0 xb7924baa, 0 x391b, 0 x412a, 0 x8c, 0 x5c, 0 xe4, 0 x4c, 0 xc2, 0 xd8, 0 x67, 0 xdc)]
interface IDWriteRenderingParams3(IDWriteRenderingParams3Vtbl):
IDWriteRenderingParams2(IDWriteRenderingParams2Vtbl) {
fn GetRenderingMode1() -> DWRITE_RENDERING_MODE1,
}}
RIDL!{#[ uuid(0 x9a1b41c3, 0 xd3bb, 0 x466a, 0 x87, 0 xfc, 0 xfe, 0 x67, 0 x55, 0 x6a, 0 x3b, 0 x65)]
interface IDWriteFactory3(IDWriteFactory3Vtbl): IDWriteFactory2(IDWriteFactory2Vtbl) {
fn CreateGlyphRunAnalysis(
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: FLOAT,
baselineOriginY: FLOAT,
glyphRunAnalysis: *mut *mut IDWriteGlyphRunAnalysis,
) -> HRESULT,
fn CreateCustomRenderingParams(
gamma: FLOAT,
enhancedContrast: FLOAT,
grayscaleEnhancedContrast: FLOAT,
clearTypeLevel: FLOAT,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE1,
gridFitMode: DWRITE_GRID_FIT_MODE,
renderingParams: *mut *mut IDWriteRenderingParams3,
) -> HRESULT,
fn CreateFontFaceReference_2(
fontFile: *mut IDWriteFontFile,
faceIndex: UINT32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
fn CreateFontFaceReference_1(
filePath: *const WCHAR,
lastWriteTime: *const FILETIME,
faceIndex: UINT32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
fn GetSystemFontSet(
fontSet: *mut *mut IDWriteFontSet,
) -> HRESULT,
fn CreateFontSetBuilder(
fontSetBuilder: *mut *mut IDWriteFontSetBuilder,
) -> HRESULT,
fn CreateFontCollectionFromFontSet(
fontSet: *mut IDWriteFontSet,
fontCollection: *mut *mut IDWriteFontCollection1,
) -> HRESULT,
fn GetSystemFontCollection(
includeDownloadableFonts: BOOL,
fontCollection: *mut *mut IDWriteFontCollection1,
checkForUpdates: BOOL,
) -> HRESULT,
fn GetFontDownloadQueue(
fontDownloadQueue: *mut *mut IDWriteFontDownloadQueue,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x53585141, 0 xd9f8, 0 x4095, 0 x83, 0 x21, 0 xd7, 0 x3c, 0 xf6, 0 xbd, 0 x11, 0 x6b)]
interface IDWriteFontSet(IDWriteFontSetVtbl): IUnknown(IUnknownVtbl) {
fn GetFontCount() -> UINT32,
fn GetFontFaceReference(
listIndex: UINT32,
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
fn FindFontFaceReference(
fontFaceReference: *mut IDWriteFontFaceReference,
listIndex: *mut UINT32,
exists: *mut BOOL,
) -> HRESULT,
fn FindFontFace(
fontFace: *mut IDWriteFontFace,
listIndex: *mut UINT32,
exists: *mut BOOL,
) -> HRESULT,
fn GetPropertyValues_3(
propertyID: DWRITE_FONT_PROPERTY_ID,
values: *mut *mut IDWriteStringList,
) -> HRESULT,
fn GetPropertyValues_2(
propertyID: DWRITE_FONT_PROPERTY_ID,
preferredLocaleNames: *const WCHAR,
values: *mut *mut IDWriteStringList,
) -> HRESULT,
fn GetPropertyValues_1(
listIndex: UINT32,
propertyId: DWRITE_FONT_PROPERTY_ID,
exists: *mut BOOL,
values: *mut *mut IDWriteLocalizedStrings,
) -> HRESULT,
fn GetPropertyOccurrenceCount(
property: *const DWRITE_FONT_PROPERTY,
propertyOccurrenceCount: *mut UINT32,
) -> HRESULT,
fn GetMatchingFonts_2(
familyName: *const WCHAR,
fontWeight: DWRITE_FONT_WEIGHT,
fontStretch: DWRITE_FONT_STRETCH,
fontStyle: DWRITE_FONT_STYLE,
filteredSet: *mut *mut IDWriteFontSet,
) -> HRESULT,
fn GetMatchingFonts_1(
properties: *const DWRITE_FONT_PROPERTY,
propertyCount: UINT32,
filteredSet: *mut *mut IDWriteFontSet,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x2f642afe, 0 x9c68, 0 x4f40, 0 xb8, 0 xbe, 0 x45, 0 x74, 0 x01, 0 xaf, 0 xcb, 0 x3d)]
interface IDWriteFontSetBuilder(IDWriteFontSetBuilderVtbl): IUnknown(IUnknownVtbl) {
fn AddFontFaceReference_2(
fontFaceReference: *mut IDWriteFontFaceReference,
properties: *const DWRITE_FONT_PROPERTY,
propertyCount: UINT32,
) -> HRESULT,
fn AddFontFaceReference_1(
fontFaceReference: *mut IDWriteFontFaceReference,
) -> HRESULT,
fn AddFontSet(
fontSet: *mut IDWriteFontSet,
) -> HRESULT,
fn CreateFontSet(
fontSet: *mut *mut IDWriteFontSet,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x53585141, 0 xd9f8, 0 x4095, 0 x83, 0 x21, 0 xd7, 0 x3c, 0 xf6, 0 xbd, 0 x11, 0 x6c)]
interface IDWriteFontCollection1(IDWriteFontCollection1Vtbl):
IDWriteFontCollection(IDWriteFontCollectionVtbl) {
fn GetFontSet(
fontSet: *mut *mut IDWriteFontSet,
) -> HRESULT,
fn GetFontFamily(
index: UINT32,
fontFamily: *mut *mut IDWriteFontFamily1,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xda20d8ef, 0 x812a, 0 x4c43, 0 x98, 0 x02, 0 x62, 0 xec, 0 x4a, 0 xbd, 0 x7a, 0 xdf)]
interface IDWriteFontFamily1(IDWriteFontFamily1Vtbl):
IDWriteFontFamily(IDWriteFontFamilyVtbl) {
fn GetFontLocality(
listIndex: UINT32,
) -> DWRITE_LOCALITY,
fn GetFont(
listIndex: UINT32,
font: *mut *mut IDWriteFont3,
) -> HRESULT,
fn GetFontFaceReference(
listIndex: UINT32,
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xda20d8ef, 0 x812a, 0 x4c43, 0 x98, 0 x02, 0 x62, 0 xec, 0 x4a, 0 xbd, 0 x7a, 0 xde)]
interface IDWriteFontList1(IDWriteFontList1Vtbl): IDWriteFontList(IDWriteFontListVtbl) {
fn GetFontLocality(
listIndex: UINT32,
) -> DWRITE_LOCALITY,
fn GetFont(
listIndex: UINT32,
font: *mut *mut IDWriteFont3,
) -> HRESULT,
fn GetFontFaceReference(
listIndex: UINT32,
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x5e7fa7ca, 0 xdde3, 0 x424c, 0 x89, 0 xf0, 0 x9f, 0 xcd, 0 x6f, 0 xed, 0 x58, 0 xcd)]
interface IDWriteFontFaceReference(IDWriteFontFaceReferenceVtbl):
IUnknown(IUnknownVtbl) {
fn CreateFontFace(
fontFace: *mut *mut IDWriteFontFace3,
) -> HRESULT,
fn CreateFontFaceWithSimulations(
fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS,
fontFace: *mut *mut IDWriteFontFace3,
) -> HRESULT,
fn Equals(
fontFaceReference: *mut IDWriteFontFaceReference,
) -> BOOL,
fn GetFontFaceIndex() -> UINT32,
fn GetSimulations() -> DWRITE_FONT_SIMULATIONS,
fn GetFontFile(
fontFile: *mut *mut IDWriteFontFile,
) -> HRESULT,
fn GetLocalFileSize() -> UINT64,
fn GetFileSize() -> UINT64,
fn GetFileTime(
lastWriteTime: *mut FILETIME,
) -> HRESULT,
fn GetLocality() -> DWRITE_LOCALITY,
fn EnqueueFontDownloadRequest() -> HRESULT,
fn EnqueueCharacterDownloadRequest(
characters: *const WCHAR,
characterCount: UINT32,
) -> HRESULT,
fn EnqueueGlyphDownloadRequest(
glyphIndices: *const UINT16,
glyphCount: UINT32,
) -> HRESULT,
fn EnqueueFileFragmentDownloadRequest(
fileOffset: UINT64,
fragmentSize: UINT64,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x29748ed6, 0 x8c9c, 0 x4a6a, 0 xbe, 0 x0b, 0 xd9, 0 x12, 0 xe8, 0 x53, 0 x89, 0 x44)]
interface IDWriteFont3(IDWriteFont3Vtbl): IDWriteFont2(IDWriteFont2Vtbl) {
fn CreateFontFace(
fontFace: *mut *mut IDWriteFontFace3,
) -> HRESULT,
fn Equals(
font: *mut IDWriteFont,
) -> BOOL,
fn GetFontFaceReference(
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
fn HasCharacter(
unicodeValue: UINT32,
) -> BOOL,
fn GetLocality() -> DWRITE_LOCALITY,
}}
RIDL!{#[ uuid(0 xd37d7598, 0 x09be, 0 x4222, 0 xa2, 0 x36, 0 x20, 0 x81, 0 x34, 0 x1c, 0 xc1, 0 xf2)]
interface IDWriteFontFace3(IDWriteFontFace3Vtbl):
IDWriteFontFace2(IDWriteFontFace2Vtbl) {
fn GetFontFaceReference(
fontFaceReference: *mut *mut IDWriteFontFaceReference,
) -> HRESULT,
fn GetPanose(
panose: *mut DWRITE_PANOSE,
) -> (),
fn GetWeight() -> DWRITE_FONT_WEIGHT,
fn GetStretch() -> DWRITE_FONT_STRETCH,
fn GetStyle() -> DWRITE_FONT_STYLE,
fn GetFamilyNames(
names: *mut *mut IDWriteLocalizedStrings,
) -> HRESULT,
fn GetFaceNames(
names: *mut *mut IDWriteLocalizedStrings,
) -> HRESULT,
fn GetInformationalStrings(
informationalStringID: DWRITE_INFORMATIONAL_STRING_ID,
informationalStrings: *mut *mut IDWriteLocalizedStrings,
exists: *mut BOOL,
) -> HRESULT,
fn HasCharacter(
unicodeValue: UINT32,
) -> BOOL,
fn GetRecommendedRenderingMode(
fontEmSize: FLOAT,
dpiX: FLOAT,
dpiY: FLOAT,
transform: *const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: *mut IDWriteRenderingParams,
renderingMode: *mut DWRITE_RENDERING_MODE1,
gridFitMode: *mut DWRITE_GRID_FIT_MODE,
) -> HRESULT,
fn IsCharacterLocal(
unicodeValue: UINT32,
) -> BOOL,
fn IsGlyphLocal(
glyphId: UINT16,
) -> BOOL,
fn AreCharactersLocal(
characters: *const WCHAR,
characterCount: UINT32,
enqueueIfNotLocal: BOOL,
isLocal: *mut BOOL,
) -> HRESULT,
fn AreGlyphsLocal(
glyphIndices: *const UINT16,
glyphCount: UINT32,
enqueueIfNotLocal: BOOL,
isLocal: *mut BOOL,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xcfee3140, 0 x1157, 0 x47ca, 0 x8b, 0 x85, 0 x31, 0 xbf, 0 xcf, 0 x3f, 0 x2d, 0 x0e)]
interface IDWriteStringList(IDWriteStringListVtbl): IUnknown(IUnknownVtbl) {
fn GetCount() -> UINT32,
fn GetLocaleNameLength(
listIndex: UINT32,
length: *mut UINT32,
) -> HRESULT,
fn GetLocaleName(
listIndex: UINT32,
localeName: *mut WCHAR,
size: UINT32,
) -> HRESULT,
fn GetStringLength(
listIndex: UINT32,
length: *mut UINT32,
) -> HRESULT,
fn GetString(
listIndex: UINT32,
stringBuffer: *mut WCHAR,
stringBufferSize: UINT32,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xb06fe5b9, 0 x43ec, 0 x4393, 0 x88, 0 x1b, 0 xdb, 0 xe4, 0 xdc, 0 x72, 0 xfd, 0 xa7)]
interface IDWriteFontDownloadListener(IDWriteFontDownloadListenerVtbl):
IUnknown(IUnknownVtbl) {
fn DownloadCompleted(
downloadQueue: *mut IDWriteFontDownloadQueue,
context: *mut IUnknown,
downloadResult: HRESULT,
) -> (),
}}
RIDL!{#[ uuid(0 xb71e6052, 0 x5aea, 0 x4fa3, 0 x83, 0 x2e, 0 xf6, 0 x0d, 0 x43, 0 x1f, 0 x7e, 0 x91)]
interface IDWriteFontDownloadQueue(IDWriteFontDownloadQueueVtbl):
IUnknown(IUnknownVtbl) {
fn AddListener(
listener: *mut IDWriteFontDownloadListener,
token: *mut UINT32,
) -> HRESULT,
fn RemoveListener(
token: UINT32,
) -> HRESULT,
fn IsEmpty() -> BOOL,
fn BeginDownload(
context: *mut IUnknown,
) -> HRESULT,
fn CancelDownload() -> HRESULT,
fn GetGenerationCount() -> UINT64,
}}
RIDL!{#[ uuid(0 x4556be70, 0 x3abd, 0 x4f70, 0 x90, 0 xbe, 0 x42, 0 x17, 0 x80, 0 xa6, 0 xf5, 0 x15)]
interface IDWriteGdiInterop1(IDWriteGdiInterop1Vtbl):
IDWriteGdiInterop(IDWriteGdiInteropVtbl) {
fn CreateFontFromLOGFONT(
logFont: *const LOGFONTW,
fontCollection: *mut IDWriteFontCollection,
font: *mut *mut IDWriteFont,
) -> HRESULT,
fn GetFontSignature_2(
fontFace: *mut IDWriteFontFace,
fontSignature: *mut FONTSIGNATURE,
) -> HRESULT,
fn GetFontSignature_1(
font: *mut IDWriteFont,
fontSignature: *mut FONTSIGNATURE,
) -> HRESULT,
fn GetMatchingFontsByLOGFONT(
logFont: *const LOGFONTW,
fontSet: *mut IDWriteFontSet,
filteredSet: *mut *mut IDWriteFontSet,
) -> HRESULT,
}}
STRUCT !{struct DWRITE_LINE_METRICS1 {
length: UINT32,
trailingWhitespaceLength: UINT32,
newlineLength: UINT32,
height: FLOAT,
baseline: FLOAT,
isTrimmed: BOOL,
leadingBefore: FLOAT,
leadingAfter: FLOAT,
}}
ENUM !{enum DWRITE_FONT_LINE_GAP_USAGE {
DWRITE_FONT_LINE_GAP_USAGE_DEFAULT,
DWRITE_FONT_LINE_GAP_USAGE_DISABLED,
DWRITE_FONT_LINE_GAP_USAGE_ENABLED,
}}
STRUCT !{struct DWRITE_LINE_SPACING {
method: DWRITE_LINE_SPACING_METHOD,
height: FLOAT,
baseline: FLOAT,
leadingBefore: FLOAT,
fontLineGapUsage: DWRITE_FONT_LINE_GAP_USAGE,
}}
RIDL!{#[ uuid(0 xf67e0edd, 0 x9e3d, 0 x4ecc, 0 x8c, 0 x32, 0 x41, 0 x83, 0 x25, 0 x3d, 0 xfe, 0 x70)]
interface IDWriteTextFormat2(IDWriteTextFormat2Vtbl):
IDWriteTextFormat1(IDWriteTextFormat1Vtbl) {
fn SetLineSpacing(
lineSpacingOptions: *const DWRITE_LINE_SPACING,
) -> HRESULT,
fn GetLineSpacing(
lineSpacingOptions: *mut DWRITE_LINE_SPACING,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x07ddcd52, 0 x020e, 0 x4de8, 0 xac, 0 x33, 0 x6c, 0 x95, 0 x3d, 0 x83, 0 xf9, 0 x2d)]
interface IDWriteTextLayout3(IDWriteTextLayout3Vtbl):
IDWriteTextLayout2(IDWriteTextLayout2Vtbl) {
fn InvalidateLayout() -> HRESULT,
fn SetLineSpacing(
lineSpacingOptions: *const DWRITE_LINE_SPACING,
) -> HRESULT,
fn GetLineSpacing(
lineSpacingOptions: *mut DWRITE_LINE_SPACING,
) -> HRESULT,
fn GetLineMetrics(
lineMetrics: *mut DWRITE_LINE_METRICS1,
maxLineCount: UINT32,
actualLineCount: *mut UINT32,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x27f2a904, 0 x4eb8, 0 x441d, 0 x96, 0 x78, 0 x05, 0 x63, 0 xf5, 0 x3e, 0 x3e, 0 x2f)]
interface IDWriteFontFace4(IDWriteFontFace4Vtbl): IDWriteFontFace3(IDWriteFontFace3Vtbl) {
fn GetGlyphImageFormats_2(
glyph: UINT16,
ppemFirst: UINT32,
ppemLast: UINT32,
formats: *mut DWRITE_GLYPH_IMAGE_FORMATS,
) -> HRESULT,
fn GetGlyphImageFormats_1() -> DWRITE_GLYPH_IMAGE_FORMATS,
fn GetGlyphImageData(
glyph: UINT16,
ppem: UINT32,
format: DWRITE_GLYPH_IMAGE_FORMATS,
data: *mut DWRITE_GLYPH_IMAGE_DATA,
context: *mut *mut c_void,
) -> HRESULT,
fn ReleaseGlyphImageData(
context: *mut c_void,
) -> (),
}}
ENUM !{enum DWRITE_FONT_AXIS_TAG {
DWRITE_FONT_AXIS_TAG_WEIGHT = 0 x74686777,
DWRITE_FONT_AXIS_TAG_WIDTH = 0 x68746477,
DWRITE_FONT_AXIS_TAG_SLANT = 0 x746e6c73,
DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0 x7a73706f,
DWRITE_FONT_AXIS_TAG_ITALIC = 0 x6c617469,
}}
STRUCT !{struct DWRITE_FONT_AXIS_VALUE {
axisTag: DWRITE_FONT_AXIS_TAG,
value: FLOAT,
}}
STRUCT !{struct DWRITE_FONT_AXIS_RANGE {
axisTag: DWRITE_FONT_AXIS_TAG,
minValue: FLOAT,
maxValue: FLOAT,
}}
ENUM !{enum DWRITE_FONT_AXIS_ATTRIBUTES {
DWRITE_FONT_AXIS_ATTRIBUTES_NONE,
DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE,
DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN,
}}
RIDL!{#[ uuid(0 x98eff3a5, 0 xb667, 0 x479a, 0 xb1, 0 x45, 0 xe2, 0 xfa, 0 x5b, 0 x9f, 0 xdc, 0 x29)]
interface IDWriteFontFace5(IDWriteFontFace5Vtbl): IDWriteFontFace4(IDWriteFontFace4Vtbl) {
fn GetFontAxisValueCount() -> UINT32,
fn GetFontAxisValues(
values: *mut DWRITE_FONT_AXIS_VALUE,
valueCount: UINT32,
) -> HRESULT,
fn HasVariations() -> BOOL,
fn GetFontResource(
resource: *mut *mut IDWriteFontResource,
) -> HRESULT,
fn Equals(
fontFace: *mut IDWriteFontFace,
) -> BOOL,
}}
RIDL!{#[ uuid(0 xc081fe77, 0 x2fd1, 0 x41ac, 0 xa5, 0 xa3, 0 x34, 0 x98, 0 x3c, 0 x4b, 0 xa6, 0 x1a)]
interface IDWriteFontFaceReference1(IDWriteFontFaceReference1Vtbl):
IDWriteFontFaceReference(IDWriteFontFaceReferenceVtbl) {
fn CreateFontFace(
fontFace: *mut *mut IDWriteFontFace5,
) -> HRESULT,
fn GetFontAxisValueCount() -> UINT32,
fn GetFontAxisValues(
values: *mut DWRITE_FONT_AXIS_VALUE,
numValues: UINT32,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x1f803a76, 0 x6871, 0 x48e8, 0 x98, 0 x7f, 0 xb9, 0 x75, 0 x55, 0 x1c, 0 x50, 0 xf2)]
interface IDWriteFontResource(IDWriteFontResourceVtbl): IUnknown(IUnknownVtbl) {
fn GetFontFile(
fontFile: *mut *mut IDWriteFontFile,
) -> HRESULT,
fn GetFontFaceIndex() -> UINT32,
fn GetFontAxisCount() -> UINT32,
fn GetDefaultFontAxisValues(
values: *const DWRITE_FONT_AXIS_VALUE,
numValues: UINT32,
) -> HRESULT,
fn GetFontAxisRanges(
ranges: *const DWRITE_FONT_AXIS_RANGE,
numRanges: UINT32,
) -> HRESULT,
fn GetFontAxisAttributes(
axis: UINT32,
) -> DWRITE_FONT_AXIS_ATTRIBUTES,
fn GetAxisNames(
axis: UINT32,
names: *mut *mut IDWriteLocalizedStrings,
) -> HRESULT,
fn GetAxisValueNameCount(
axis: UINT32,
) -> UINT32,
fn GetAxisValueNames(
axis: UINT32,
axisValue: UINT32,
axisRange: *mut DWRITE_FONT_AXIS_RANGE,
names: *mut *mut IDWriteLocalizedStrings,
) -> HRESULT,
fn HasVariations() -> BOOL,
fn CreateFontFace(
simulations: DWRITE_FONT_SIMULATIONS,
axisValues: *const DWRITE_FONT_AXIS_VALUE,
numValues: UINT32,
fontFace: *mut *mut IDWriteFontFace5,
) -> HRESULT,
fn CreateFontFaceReference(
simulations: DWRITE_FONT_SIMULATIONS,
axisValues: *const DWRITE_FONT_AXIS_VALUE,
numValues: UINT32,
reference: *mut *mut IDWriteFontFaceReference1,
) -> HRESULT,
}}
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-22)
¤
*© Formatika GbR, Deutschland