----------------------------------------
-- File : DWrite.ads --
-- Translator:Dongfeng.Gu,2018/10/31 --
-- Mail: [email protected] --
-- Progress:100% --
----------------------------------------
with win32; use win32;
with win32.Wingdi;
with win32.winbase; use win32.winbase;
with win32.windef; use win32.windef;
with win32.winnt; use win32.winnt;
with win32.rpcdce; use win32.rpcdce;
with win32.objbase; use win32.objbase;
with win32.Winerror;
with Interfaces.C;
WITH audiodefs; use audiodefs;
package DWrite is
subtype UINT8 is win32.BYTE;
subtype UINT16 is win32.WORD;
subtype int16 is win32.char;
subtype int32 is win32.int;
subtype uint32 is win32.DWORD;
type LPUINT32 is access all UINT32;
type LPIUNKNOWN is access all IUnknown;
type LPLOGFONTW is access all Wingdi.LOGFONTW;
function Shift_Left(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
function Lsh(A:dword;B:Natural) return dword is (Shift_Left(A,B));
function Shift_Right(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
function Rsh(A:dword;B:Natural) return dword is (Shift_Right(A,B));
type IDWriteFontFileLoader;
type LPIDWriteFontFileLoader is access all IDWriteFontFileLoader;
type LPLPIDWriteFontFileLoader is access all LPIDWriteFontFileLoader;
subtype LPDWriteFontFileLoader is LPIDWriteFontFileLoader;
subtype LPLPDWriteFontFileLoader is LPLPIDWriteFontFileLoader;
type IDWriteFontFileStream;
type LPIDWriteFontFileStream is access all IDWriteFontFileStream;
type LPLPIDWriteFontFileStream is access all LPIDWriteFontFileStream;
subtype LPDWriteFontFileStream is LPIDWriteFontFileStream;
subtype LPLPDWriteFontFileStream is LPLPIDWriteFontFileStream;
type IDWriteLocalFontFileLoader;
type LPIDWriteLocalFontFileLoader is access all IDWriteLocalFontFileLoader;
type LPLPIDWriteLocalFontFileLoader is access all LPIDWriteLocalFontFileLoader;
subtype LPDWriteLocalFontFileLoader is LPIDWriteLocalFontFileLoader;
subtype LPLPDWriteLocalFontFileLoader is LPLPIDWriteLocalFontFileLoader;
type IDWriteFontFile;
type LPIDWriteFontFile is access all IDWriteFontFile;
type LPLPIDWriteFontFile is access all LPIDWriteFontFile;
subtype LPDWriteFontFile is LPIDWriteFontFile;
subtype LPLPDWriteFontFile is LPLPIDWriteFontFile;
type IDWriteRenderingParams;
type LPIDWriteRenderingParams is access all IDWriteRenderingParams;
type LPLPIDWriteRenderingParams is access all LPIDWriteRenderingParams;
subtype LPDWriteRenderingParams is LPIDWriteRenderingParams;
subtype LPLPDWriteRenderingParams is LPLPIDWriteRenderingParams;
type IDWriteFontFace;
type LPIDWriteFontFace is access all IDWriteFontFace;
type LPLPIDWriteFontFace is access all LPIDWriteFontFace;
subtype LPDWriteFontFace is LPIDWriteFontFace;
subtype LPLPDWriteFontFace is LPLPIDWriteFontFace;
type IDWriteFontCollectionLoader;
type LPIDWriteFontCollectionLoader is access all IDWriteFontCollectionLoader;
type LPLPIDWriteFontCollectionLoader is access all LPIDWriteFontCollectionLoader;
subtype LPDWriteFontCollectionLoader is LPIDWriteFontCollectionLoader;
subtype LPLPDWriteFontCollectionLoader is LPLPIDWriteFontCollectionLoader;
type IDWriteFactory;
type LPIDWriteFactory is access all IDWriteFactory;
type LPLPIDWriteFactory is access all LPIDWriteFactory;
subtype LPDWriteFactory is LPIDWriteFactory;
subtype LPLPDWriteFactory is LPLPIDWriteFactory;
type IDWriteFontFileEnumerator;
type LPIDWriteFontFileEnumerator is access all IDWriteFontFileEnumerator;
type LPLPIDWriteFontFileEnumerator is access all LPIDWriteFontFileEnumerator;
subtype LPDWriteFontFileEnumerator is LPIDWriteFontFileEnumerator;
subtype LPLPDWriteFontFileEnumerator is LPLPIDWriteFontFileEnumerator;
type IDWriteLocalizedStrings;
type LPIDWriteLocalizedStrings is access all IDWriteLocalizedStrings;
type LPLPIDWriteLocalizedStrings is access all LPIDWriteLocalizedStrings;
subtype LPDWriteLocalizedStrings is LPIDWriteLocalizedStrings;
subtype LPLPDWriteLocalizedStrings is LPLPIDWriteLocalizedStrings;
type IDWriteFontCollection;
type LPIDWriteFontCollection is access all IDWriteFontCollection;
type LPLPIDWriteFontCollection is access all LPIDWriteFontCollection;
subtype LPDWriteFontCollection is LPIDWriteFontCollection;
subtype LPLPDWriteFontCollection is LPLPIDWriteFontCollection;
type IDWriteFontFamily;
type LPIDWriteFontFamily is access all IDWriteFontFamily;
type LPLPIDWriteFontFamily is access all LPIDWriteFontFamily;
subtype LPDWriteFontFamily is LPIDWriteFontFamily;
subtype LPLPDWriteFontFamily is LPLPIDWriteFontFamily;
type IDWriteFont;
type LPIDWriteFont is access all IDWriteFont;
type LPLPIDWriteFont is access all LPIDWriteFont;
subtype LPDWriteFont is LPIDWriteFont;
subtype LPLPDWriteFont is LPLPIDWriteFont;
type IDWriteFontList;
type LPIDWriteFontList is access all IDWriteFontList;
type LPLPIDWriteFontList is access all LPIDWriteFontList;
subtype LPDWriteFontList is LPIDWriteFontList;
subtype LPLPDWriteFontList is LPLPIDWriteFontList;
type IDWriteTextFormat;
type LPIDWriteTextFormat is access all IDWriteTextFormat;
type LPLPIDWriteTextFormat is access all LPIDWriteTextFormat;
subtype LPDWriteTextFormat is LPIDWriteTextFormat;
subtype LPLPDWriteTextFormat is LPLPIDWriteTextFormat;
type IDWriteInlineObject;
type LPIDWriteInlineObject is access all IDWriteInlineObject;
type LPLPIDWriteInlineObject is access all LPIDWriteInlineObject;
subtype LPDWriteInlineObject is LPIDWriteInlineObject;
subtype LPLPDWriteInlineObject is LPLPIDWriteInlineObject;
type IDWriteTypography;
type LPIDWriteTypography is access all IDWriteTypography;
type LPLPIDWriteTypography is access all LPIDWriteTypography;
subtype LPDWriteTypography is LPIDWriteTypography;
subtype LPLPDWriteTypography is LPLPIDWriteTypography;
type IDWriteNumberSubstitution;
type LPIDWriteNumberSubstitution is access all IDWriteNumberSubstitution;
type LPLPIDWriteNumberSubstitution is access all LPIDWriteNumberSubstitution;
subtype LPDWriteNumberSubstitution is LPIDWriteNumberSubstitution;
subtype LPLPDWriteNumberSubstitution is LPLPIDWriteNumberSubstitution;
type IDWriteTextAnalysisSource;
type LPIDWriteTextAnalysisSource is access all IDWriteTextAnalysisSource;
type LPLPIDWriteTextAnalysisSource is access all LPIDWriteTextAnalysisSource;
subtype LPDWriteTextAnalysisSource is LPIDWriteTextAnalysisSource;
subtype LPLPDWriteTextAnalysisSource is LPLPIDWriteTextAnalysisSource;
type IDWriteTextAnalysisSink;
type LPIDWriteTextAnalysisSink is access all IDWriteTextAnalysisSink;
type LPLPIDWriteTextAnalysisSink is access all LPIDWriteTextAnalysisSink;
subtype LPDWriteTextAnalysisSink is LPIDWriteTextAnalysisSink;
subtype LPLPDWriteTextAnalysisSink is LPLPIDWriteTextAnalysisSink;
type IDWriteTextAnalyzer;
type LPIDWriteTextAnalyzer is access all IDWriteTextAnalyzer;
type LPLPIDWriteTextAnalyzer is access all LPIDWriteTextAnalyzer;
subtype LPDWriteTextAnalyzer is LPIDWriteTextAnalyzer;
subtype LPLPDWriteTextAnalyzer is LPLPIDWriteTextAnalyzer;
type IDWriteTextRenderer;
type LPIDWriteTextRenderer is access all IDWriteTextRenderer;
type LPLPIDWriteTextRenderer is access all LPIDWriteTextRenderer;
subtype LPDWriteTextRenderer is LPIDWriteTextRenderer;
subtype LPLPDWriteTextRenderer is LPLPIDWriteTextRenderer;
type IDWritePixelSnapping;
type LPIDWritePixelSnapping is access all IDWritePixelSnapping;
type LPLPIDWritePixelSnapping is access all LPIDWritePixelSnapping;
subtype LPDWritePixelSnapping is LPIDWritePixelSnapping;
subtype LPLPDWritePixelSnapping is LPLPIDWritePixelSnapping;
type IDWriteTextLayout;
type LPIDWriteTextLayout is access all IDWriteTextLayout;
type LPLPIDWriteTextLayout is access all LPIDWriteTextLayout;
subtype LPDWriteTextLayout is LPIDWriteTextLayout;
subtype LPLPDWriteTextLayout is LPLPIDWriteTextLayout;
type IDWriteBitmapRenderTarget;
type LPIDWriteBitmapRenderTarget is access all IDWriteBitmapRenderTarget;
type LPLPIDWriteBitmapRenderTarget is access all LPIDWriteBitmapRenderTarget;
subtype LPDWriteBitmapRenderTarget is LPIDWriteBitmapRenderTarget;
subtype LPLPDWriteBitmapRenderTarget is LPLPIDWriteBitmapRenderTarget;
type IDWriteGdiInterop;
type LPIDWriteGdiInterop is access all IDWriteGdiInterop;
type LPLPIDWriteGdiInterop is access all LPIDWriteGdiInterop;
subtype LPDWriteGdiInterop is LPIDWriteGdiInterop;
subtype LPLPDWriteGdiInterop is LPLPIDWriteGdiInterop;
type IDWriteGlyphRunAnalysis;
type LPIDWriteGlyphRunAnalysis is access all IDWriteGlyphRunAnalysis;
type LPLPIDWriteGlyphRunAnalysis is access all LPIDWriteGlyphRunAnalysis;
subtype LPDWriteGlyphRunAnalysis is LPIDWriteGlyphRunAnalysis;
subtype LPLPDWriteGlyphRunAnalysis is LPLPIDWriteGlyphRunAnalysis;
type DWRITE_FONT_FILE_TYPE is (DWRITE_FONT_FILE_TYPE_UNKNOWN,
DWRITE_FONT_FILE_TYPE_CFF,
DWRITE_FONT_FILE_TYPE_TRUETYPE,
DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION,
DWRITE_FONT_FILE_TYPE_TYPE1_PFM,
DWRITE_FONT_FILE_TYPE_TYPE1_PFB,
DWRITE_FONT_FILE_TYPE_VECTOR,
DWRITE_FONT_FILE_TYPE_BITMAP);
type LPDWRITE_FONT_FILE_TYPE is access all DWRITE_FONT_FILE_TYPE;
type DWRITE_FONT_FACE_TYPE is (DWRITE_FONT_FACE_TYPE_CFF,
DWRITE_FONT_FACE_TYPE_TRUETYPE,
DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION,
DWRITE_FONT_FACE_TYPE_TYPE1,
DWRITE_FONT_FACE_TYPE_VECTOR,
DWRITE_FONT_FACE_TYPE_BITMAP,
DWRITE_FONT_FACE_TYPE_UNKNOWN);
type LPDWRITE_FONT_FACE_TYPE is access all DWRITE_FONT_FACE_TYPE;
type DWRITE_FONT_SIMULATIONS is (DWRITE_FONT_SIMULATIONS_NONE,
DWRITE_FONT_SIMULATIONS_BOLD,
DWRITE_FONT_SIMULATIONS_OBLIQUE);
for DWRITE_FONT_SIMULATIONS use (DWRITE_FONT_SIMULATIONS_NONE=>16#0000#,
DWRITE_FONT_SIMULATIONS_BOLD=>16#0001#,
DWRITE_FONT_SIMULATIONS_OBLIQUE=>16#0002#);
type DWRITE_FONT_WEIGHT is (DWRITE_FONT_WEIGHT_THIN,
DWRITE_FONT_WEIGHT_EXTRA_LIGHT,
--DWRITE_FONT_WEIGHT_ULTRA_LIGHT,
DWRITE_FONT_WEIGHT_LIGHT,
DWRITE_FONT_WEIGHT_NORMAL,
--DWRITE_FONT_WEIGHT_REGULAR,
DWRITE_FONT_WEIGHT_MEDIUM,
DWRITE_FONT_WEIGHT_DEMI_BOLD,
--DWRITE_FONT_WEIGHT_SEMI_BOLD,
DWRITE_FONT_WEIGHT_BOLD,
DWRITE_FONT_WEIGHT_EXTRA_BOLD,
--DWRITE_FONT_WEIGHT_ULTRA_BOLD,
DWRITE_FONT_WEIGHT_BLACK,
--DWRITE_FONT_WEIGHT_HEAVY,
DWRITE_FONT_WEIGHT_EXTRA_BLACK
--DWRITE_FONT_WEIGHT_ULTRA_BLACK
);
for DWRITE_FONT_WEIGHT use (DWRITE_FONT_WEIGHT_THIN=>100,
DWRITE_FONT_WEIGHT_EXTRA_LIGHT=>200,
DWRITE_FONT_WEIGHT_LIGHT=>300,
DWRITE_FONT_WEIGHT_NORMAL=>400,
DWRITE_FONT_WEIGHT_MEDIUM=>500,
DWRITE_FONT_WEIGHT_DEMI_BOLD=>600,
DWRITE_FONT_WEIGHT_BOLD=>700,
DWRITE_FONT_WEIGHT_EXTRA_BOLD=>800,
DWRITE_FONT_WEIGHT_BLACK=>900,
DWRITE_FONT_WEIGHT_EXTRA_BLACK=>950
);
type LPDWRITE_FONT_WEIGHT is access all DWRITE_FONT_WEIGHT;
DWRITE_FONT_WEIGHT_ULTRA_LIGHT:constant:=200;
DWRITE_FONT_WEIGHT_REGULAR:constant:=400;
DWRITE_FONT_WEIGHT_SEMI_BOLD:constant:=600;
DWRITE_FONT_WEIGHT_ULTRA_BOLD:constant:=800;
DWRITE_FONT_WEIGHT_HEAVY:constant:=900;
DWRITE_FONT_WEIGHT_ULTRA_BLACK:constant:=950;
type DWRITE_FONT_STRETCH is (DWRITE_FONT_STRETCH_UNDEFINED,
DWRITE_FONT_STRETCH_ULTRA_CONDENSED,
DWRITE_FONT_STRETCH_EXTRA_CONDENSED,
DWRITE_FONT_STRETCH_CONDENSED,
DWRITE_FONT_STRETCH_SEMI_CONDENSED,
DWRITE_FONT_STRETCH_NORMAL,
--DWRITE_FONT_STRETCH_MEDIUM,
DWRITE_FONT_STRETCH_SEMI_EXPANDED,
DWRITE_FONT_STRETCH_EXPANDED,
DWRITE_FONT_STRETCH_EXTRA_EXPANDED,
DWRITE_FONT_STRETCH_ULTRA_EXPANDED);
for DWRITE_FONT_STRETCH use (DWRITE_FONT_STRETCH_UNDEFINED=>0,
DWRITE_FONT_STRETCH_ULTRA_CONDENSED=>1,
DWRITE_FONT_STRETCH_EXTRA_CONDENSED=>2,
DWRITE_FONT_STRETCH_CONDENSED=>3,
DWRITE_FONT_STRETCH_SEMI_CONDENSED=>4,
DWRITE_FONT_STRETCH_NORMAL=>5,
DWRITE_FONT_STRETCH_SEMI_EXPANDED=>6,
DWRITE_FONT_STRETCH_EXPANDED=>7,
DWRITE_FONT_STRETCH_EXTRA_EXPANDED=>8,
DWRITE_FONT_STRETCH_ULTRA_EXPANDED=>9);
type LPDWRITE_FONT_STRETCH is access all DWRITE_FONT_STRETCH;
DWRITE_FONT_STRETCH_MEDIUM:constant:=5;
type DWRITE_FONT_STYLE is (DWRITE_FONT_STYLE_NORMAL,
DWRITE_FONT_STYLE_OBLIQUE,
DWRITE_FONT_STYLE_ITALIC);
type LPDWRITE_FONT_STYLE is access all DWRITE_FONT_STYLE;
type DWRITE_INFORMATIONAL_STRING_ID is (DWRITE_INFORMATIONAL_STRING_NONE,
DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE,
DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS,
DWRITE_INFORMATIONAL_STRING_TRADEMARK,
DWRITE_INFORMATIONAL_STRING_MANUFACTURER,
DWRITE_INFORMATIONAL_STRING_DESIGNER,
DWRITE_INFORMATIONAL_STRING_DESIGNER_URL,
DWRITE_INFORMATIONAL_STRING_DESCRIPTION,
DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL,
DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION,
DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL,
DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES,
DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT);
type DWRITE_FONT_METRICS is record
designUnitsPerEm: UINT16;
ascent: UINT16;
descent: UINT16;
lineGap: INT16;
capHeight: UINT16;
xHeight: UINT16;
underlinePosition: INT16;
underlineThickness: UINT16;
strikethroughPosition: INT16;
strikethroughThickness: UINT16;
end record;
type LPDWRITE_FONT_METRICS is access all DWRITE_FONT_METRICS;
type DWRITE_GLYPH_METRICS is record
leftSideBearing: INT32;
advanceWidth: UINT32;
rightSideBearing: INT32;
topSideBearing: INT32;
advanceHeight: UINT32;
bottomSideBearing: INT32;
verticalOriginY: INT32;
end record;
type LPDWRITE_GLYPH_METRICS is access all DWRITE_GLYPH_METRICS;
type DWRITE_GLYPH_OFFSET is record
advanceOffset: FLOAT;
ascenderOffset: FLOAT;
end record;
type LPDWRITE_GLYPH_OFFSET is access all DWRITE_GLYPH_OFFSET;
type DWRITE_FACTORY_TYPE is (DWRITE_FACTORY_TYPE_SHARED,
DWRITE_FACTORY_TYPE_ISOLATED);
use type Interfaces.C.unsigned_long;
-- MACRO FUNCTION
function DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d:uint8) return uint32 is (Lsh(uint32(d),24) or Lsh(uint32(c),16) or Lsh(uint32(b),8) or uint32(a));
IID_IDWriteFontFileLoader :constant GUID:=uuidof("727cad4e-d6af-4c9e-8a08-d695b11caa49");
type IDWriteFontFileLoader is record
QueryInterface:access function(THIS:LPIDWriteFontFileLoader;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontFileLoader) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontFileLoader) return ULONG with Convention=>Stdcall;
CreateStreamFromKey:access function(THIS:LPIDWriteFontFileLoader;fontFileReferenceKey:LPvoid;fontFileReferenceKeySize:UINT32;fontFileStream:LPLPIDWriteFontFileStream) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteLocalFontFileLoader :constant GUID:=uuidof("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2");
type IDWriteLocalFontFileLoader is record
QueryInterface:access function(THIS:LPIDWriteLocalFontFileLoader;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteLocalFontFileLoader) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteLocalFontFileLoader) return ULONG with Convention=>Stdcall;
CreateStreamFromKey:access function(THIS:LPIDWriteLocalFontFileLoader;fontFileReferenceKey:LPvoid;fontFileReferenceKeySize:UINT32;fontFileStream:LPLPIDWriteFontFileStream) return HRESULT with Convention=>Stdcall;
GetFilePathLengthFromKey:access function(THIS:LPIDWriteLocalFontFileLoader;fontFileReferenceKey:LPvoid;fontFileReferenceKeySize:UINT32;filePathLength:LPUINT32) return HRESULT with Convention=>Stdcall;
GetFilePathFromKey:access function(THIS:LPIDWriteLocalFontFileLoader;fontFileReferenceKey:LPvoid;fontFileReferenceKeySize:UINT32;filePath:LPWCHAR;filePathSize:UINT32) return HRESULT with Convention=>Stdcall;
GetLastWriteTimeFromKey:access function(THIS:LPIDWriteLocalFontFileLoader;fontFileReferenceKey:LPvoid;fontFileReferenceKeySize:UINT32;lastWriteTime:LPFILETIME) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontFileStream :constant GUID:=uuidof("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0");
type IDWriteFontFileStream is record
QueryInterface:access function(THIS:LPIDWriteFontFileStream;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontFileStream) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontFileStream) return ULONG with Convention=>Stdcall;
ReadFileFragment:access function(THIS:LPIDWriteFontFileStream;fragmentStart:LPLPvoid;fileOffset:UINT64;fragmentSize:UINT64;fragmentContext:LPLPvoid) return HRESULT with Convention=>Stdcall;
ReleaseFileFragment:access function(THIS:LPIDWriteFontFileStream;fragmentContext:LPvoid) return void with Convention=>Stdcall;
GetFileSize:access function(THIS:LPIDWriteFontFileStream;fileSize:LPUINT64) return HRESULT with Convention=>Stdcall;
GetLastWriteTime:access function(THIS:LPIDWriteFontFileStream;lastWriteTime:LPUINT64) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontFile :constant GUID:=uuidof("739d886a-cef5-47dc-8769-1a8b41bebbb0");
type IDWriteFontFile is record
QueryInterface:access function(THIS:LPIDWriteFontFile;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontFile) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontFile) return ULONG with Convention=>Stdcall;
GetReferenceKey:access function(THIS:LPIDWriteFontFile;fontFileReferenceKey:LPLPvoid;fontFileReferenceKeySize:LPUINT32) return HRESULT with Convention=>Stdcall;
GetLoader:access function(THIS:LPIDWriteFontFile;fontFileLoader:LPLPIDWriteFontFileLoader) return HRESULT with Convention=>Stdcall;
Analyze:access function(THIS:LPIDWriteFontFile;isSupportedFontType:LPBOOL;fontFileType:LPDWRITE_FONT_FILE_TYPE;fontFaceType:LPDWRITE_FONT_FACE_TYPE;numberOfFaces:LPUINT32) return HRESULT with Convention=>Stdcall;
end record;
type DWRITE_PIXEL_GEOMETRY is (DWRITE_PIXEL_GEOMETRY_FLAT,
DWRITE_PIXEL_GEOMETRY_RGB,
DWRITE_PIXEL_GEOMETRY_BGR);
type DWRITE_RENDERING_MODE is (DWRITE_RENDERING_MODE_DEFAULT,
DWRITE_RENDERING_MODE_ALIASED,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL,
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL,
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC,
DWRITE_RENDERING_MODE_OUTLINE);
type LPDWRITE_RENDERING_MODE is access all DWRITE_RENDERING_MODE;
type DWRITE_MATRIX is record
m11: FLOAT;
m12: FLOAT;
m21: FLOAT;
m22: FLOAT;
dx: FLOAT;
dy: FLOAT;
end record;
type LPDWRITE_MATRIX is access all DWRITE_MATRIX;
IID_IDWriteRenderingParams :constant GUID:=uuidof("2f0da53a-2add-47cd-82ee-d9ec34688e75");
type IDWriteRenderingParams is record
QueryInterface:access function(THIS:LPIDWriteRenderingParams;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteRenderingParams) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteRenderingParams) return ULONG with Convention=>Stdcall;
GetGamma:access function(THIS:LPIDWriteRenderingParams) return FLOAT with Convention=>Stdcall;
GetEnhancedContrast:access function(THIS:LPIDWriteRenderingParams) return FLOAT with Convention=>Stdcall;
GetClearTypeLevel:access function(THIS:LPIDWriteRenderingParams) return FLOAT with Convention=>Stdcall;
GetPixelGeometry:access function(THIS:LPIDWriteRenderingParams) return DWRITE_PIXEL_GEOMETRY with Convention=>Stdcall;
GetRenderingMode:access function(THIS:LPIDWriteRenderingParams) return DWRITE_RENDERING_MODE with Convention=>Stdcall;
end record;
type DWRITE_MEASURING_MODE is(
DWRITE_MEASURING_MODE_NATURAL,
DWRITE_MEASURING_MODE_GDI_CLASSIC,
DWRITE_MEASURING_MODE_GDI_NATURAL );
type LPDWRITE_MEASURING_MODE is access all DWRITE_MEASURING_MODE;
--
-- ÒÔÏÂD2D1¿ªÍ·µÄ¶¨ÒåÊǶ¨ÒåÓÚD2D1.hÖÐ,ÓÉÓÚÑ»·°üº¬µÄÔÒò,ÕâÀ︴ÖƹýÀ´ÁË
--
type D2D1_FILL_MODE is (D2D1_FILL_MODE_ALTERNATE,
D2D1_FILL_MODE_WINDING,
D2D1_FILL_MODE_FORCE_DWORD);
for D2D1_FILL_MODE use (D2D1_FILL_MODE_ALTERNATE=>0,
D2D1_FILL_MODE_WINDING=>1,
D2D1_FILL_MODE_FORCE_DWORD=>16#ffffffff#);
type D2D1_PATH_SEGMENT is (D2D1_PATH_SEGMENT_NONE,
D2D1_PATH_SEGMENT_FORCE_UNSTROKED,
D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN,
D2D1_PATH_SEGMENT_FORCE_DWORD);
for D2D1_PATH_SEGMENT use (D2D1_PATH_SEGMENT_NONE=>16#00000000#,
D2D1_PATH_SEGMENT_FORCE_UNSTROKED=>16#00000001#,
D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN=>16#00000002#,
D2D1_PATH_SEGMENT_FORCE_DWORD=>16#ffffffff#);
type D2D1_FIGURE_BEGIN is (D2D1_FIGURE_BEGIN_FILLED,
D2D1_FIGURE_BEGIN_HOLLOW,
D2D1_FIGURE_BEGIN_FORCE_DWORD);
for D2D1_FIGURE_BEGIN use (D2D1_FIGURE_BEGIN_FILLED=>0,
D2D1_FIGURE_BEGIN_HOLLOW=>1,
D2D1_FIGURE_BEGIN_FORCE_DWORD=>16#ffffffff#);
type D2D1_FIGURE_END is (D2D1_FIGURE_END_OPEN,
D2D1_FIGURE_END_CLOSED,
D2D1_FIGURE_END_FORCE_DWORD);
for D2D1_FIGURE_END use (D2D1_FIGURE_END_OPEN=>0,
D2D1_FIGURE_END_CLOSED=>1,
D2D1_FIGURE_END_FORCE_DWORD=>16#ffffffff#);
type D2D1_POINT_2F is record
x,y:float;
end record;
type LPCD2D1_POINT_2F is access constant D2D1_POINT_2F;
type D2D1_BEZIER_SEGMENT is record
point1: D2D1_POINT_2F;
point2: D2D1_POINT_2F;
point3: D2D1_POINT_2F;
end record;
type LPD2D1_BEZIER_SEGMENT is access all D2D1_BEZIER_SEGMENT;
type LPCD2D1_BEZIER_SEGMENT is access constant D2D1_BEZIER_SEGMENT;
IID_ID2D1SimplifiedGeometrySink : constant GUID:=uuidof("2cd9069e-12e2-11dc-9fed-001143a055f9");
type ID2D1SimplifiedGeometrySink;
type LPID2D1SimplifiedGeometrySink is access all ID2D1SimplifiedGeometrySink;
type ID2D1SimplifiedGeometrySink is record
QueryInterface:access function(THIS:LPID2D1SimplifiedGeometrySink;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPID2D1SimplifiedGeometrySink) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPID2D1SimplifiedGeometrySink) return ULONG with Convention=>Stdcall;
SetFillMode:access function(THIS:LPID2D1SimplifiedGeometrySink;fillMode:D2D1_FILL_MODE) return void with Convention=>Stdcall;
SetSegmentFlags:access function(THIS:LPID2D1SimplifiedGeometrySink;vertexFlags:D2D1_PATH_SEGMENT) return void with Convention=>Stdcall;
BeginFigure:access function(THIS:LPID2D1SimplifiedGeometrySink;startPoint:D2D1_POINT_2F;figureBegin:D2D1_FIGURE_BEGIN) return void with Convention=>Stdcall;
AddLines:access function(THIS:LPID2D1SimplifiedGeometrySink;points:LPCD2D1_POINT_2F;pointsCount:UINT) return void with Convention=>Stdcall;
AddBeziers:access function(THIS:LPID2D1SimplifiedGeometrySink;beziers:LPCD2D1_BEZIER_SEGMENT;beziersCount:UINT) return void with Convention=>Stdcall;
EndFigure:access function(THIS:LPID2D1SimplifiedGeometrySink;figureEnd:D2D1_FIGURE_END) return void with Convention=>Stdcall;
Close:access function(THIS:LPID2D1SimplifiedGeometrySink) return HRESULT with Convention=>Stdcall;
end record;
-- ÁÙʱÌæ´ú D2D1ÀïÃæ
subtype IDWriteGeometrySink is ID2D1SimplifiedGeometrySink;
type LPIDWriteGeometrySink is access all ID2D1SimplifiedGeometrySink;
IID_IDWriteFontFace :constant GUID:=uuidof("5f49804d-7024-4d43-bfa9-d25984f53849");
type IDWriteFontFace is record
QueryInterface:access function(THIS:LPIDWriteFontFace;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontFace) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontFace) return ULONG with Convention=>Stdcall;
GetType:access function(THIS:LPIDWriteFontFace) return DWRITE_FONT_FACE_TYPE with Convention=>Stdcall;
GetFiles:access function(THIS:LPIDWriteFontFace;numberOfFiles:LPUINT32;fontFiles:LPLPIDWriteFontFile) return HRESULT with Convention=>Stdcall;
GetIndex:access function(THIS:LPIDWriteFontFace) return UINT32 with Convention=>Stdcall;
GetSimulations:access function(THIS:LPIDWriteFontFace) return DWRITE_FONT_SIMULATIONS with Convention=>Stdcall;
IsSymbolFont:access function(THIS:LPIDWriteFontFace) return BOOL with Convention=>Stdcall;
GetMetrics:access function(THIS:LPIDWriteFontFace;fontFaceMetrics:LPDWRITE_FONT_METRICS) return void with Convention=>Stdcall;
GetGlyphCount:access function(THIS:LPIDWriteFontFace) return UINT16 with Convention=>Stdcall;
GetDesignGlyphMetrics:access function(THIS:LPIDWriteFontFace;glyphIndices:LPUINT16;glyphCount:UINT32;glyphMetrics:LPDWRITE_GLYPH_METRICS;isSideways:BOOL:=0) return HRESULT with Convention=>Stdcall;
GetGlyphIndices:access function(THIS:LPIDWriteFontFace;codePoints:LPUINT32;codePointCount:UINT32;glyphIndices:LPUINT16) return HRESULT with Convention=>Stdcall;
TryGetFontTable:access function(THIS:LPIDWriteFontFace;openTypeTableTag:UINT32;tableData:LPLPCvoid;tableSize:LPUINT32;tableContext:LPLPvoid;exists:LPBOOL) return HRESULT with Convention=>Stdcall;
ReleaseFontTable:access function(THIS:LPIDWriteFontFace;tableContext:LPvoid) return void with Convention=>Stdcall;
GetGlyphRunOutline:access function(THIS:LPIDWriteFontFace;emSize:FLOAT;glyphIndices:LPUINT16;glyphAdvances:LPFLOAT;glyphOffsets:LPDWRITE_GLYPH_OFFSET;glyphCount:UINT32;isSideways:BOOL;isRightToLeft:BOOL;geometrySink:LPIDWriteGeometrySink) return HRESULT with Convention=>Stdcall;
GetRecommendedRenderingMode:access function(THIS:LPIDWriteFontFace;emSize:FLOAT;pixelsPerDip:FLOAT;measuringMode:DWRITE_MEASURING_MODE;renderingParams:LPIDWriteRenderingParams;renderingMode:LPDWRITE_RENDERING_MODE) return HRESULT with Convention=>Stdcall;
GetGdiCompatibleMetrics:access function(THIS:LPIDWriteFontFace;emSize:FLOAT;pixelsPerDip:FLOAT;transform:LPDWRITE_MATRIX;fontFaceMetrics:LPDWRITE_FONT_METRICS) return HRESULT with Convention=>Stdcall;
GetGdiCompatibleGlyphMetrics:access function(THIS:LPIDWriteFontFace;emSize:FLOAT;pixelsPerDip:FLOAT;transform:LPDWRITE_MATRIX;useGdiNatural:BOOL;glyphIndices:LPUINT16;glyphCount:UINT32;glyphMetrics:LPDWRITE_GLYPH_METRICS;isSideways:BOOL:=0) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontCollectionLoader :constant GUID:=uuidof("cca920e4-52f0-492b-bfa8-29c72ee0a468");
type IDWriteFontCollectionLoader is record
QueryInterface:access function(THIS:LPIDWriteFontCollectionLoader;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontCollectionLoader) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontCollectionLoader) return ULONG with Convention=>Stdcall;
CreateEnumeratorFromKey:access function(THIS:LPIDWriteFontCollectionLoader;factory:LPIDWriteFactory;collectionKey:LPvoid;collectionKeySize:UINT32;fontFileEnumerator:LPLPIDWriteFontFileEnumerator) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontFileEnumerator :constant GUID:=uuidof("72755049-5ff7-435d-8348-4be97cfa6c7c");
type IDWriteFontFileEnumerator is record
QueryInterface:access function(THIS:LPIDWriteFontFileEnumerator;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontFileEnumerator) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontFileEnumerator) return ULONG with Convention=>Stdcall;
MoveNext:access function(THIS:LPIDWriteFontFileEnumerator;hasCurrentFile:LPBOOL) return HRESULT with Convention=>Stdcall;
GetCurrentFontFile:access function(THIS:LPIDWriteFontFileEnumerator;fontFile:LPLPIDWriteFontFile) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteLocalizedStrings :constant GUID:=uuidof("08256209-099a-4b34-b86d-c22b110e7771");
type IDWriteLocalizedStrings is record
QueryInterface:access function(THIS:LPIDWriteLocalizedStrings;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteLocalizedStrings) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteLocalizedStrings) return ULONG with Convention=>Stdcall;
GetCount:access function(THIS:LPIDWriteLocalizedStrings) return UINT32 with Convention=>Stdcall;
FindLocaleName:access function(THIS:LPIDWriteLocalizedStrings;localeName:LPWCHAR;index:LPUINT32;exists:LPBOOL) return HRESULT with Convention=>Stdcall;
GetLocaleNameLength:access function(THIS:LPIDWriteLocalizedStrings;index:UINT32;length:LPUINT32) return HRESULT with Convention=>Stdcall;
GetLocaleName:access function(THIS:LPIDWriteLocalizedStrings;index:UINT32;localeName:LPWCHAR;size:UINT32) return HRESULT with Convention=>Stdcall;
GetStringLength:access function(THIS:LPIDWriteLocalizedStrings;index:UINT32;length:LPUINT32) return HRESULT with Convention=>Stdcall;
GetString:access function(THIS:LPIDWriteLocalizedStrings;index:UINT32;stringBuffer:LPWCHAR;size:UINT32) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontCollection :constant GUID:=uuidof("a84cee02-3eea-4eee-a827-87c1a02a0fcc");
type IDWriteFontCollection is record
QueryInterface:access function(THIS:LPIDWriteFontCollection;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontCollection) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontCollection) return ULONG with Convention=>Stdcall;
GetFontFamilyCount:access function(THIS:LPIDWriteFontCollection) return UINT32 with Convention=>Stdcall;
GetFontFamily:access function(THIS:LPIDWriteFontCollection;index:UINT32;fontFamily:LPLPIDWriteFontFamily) return HRESULT with Convention=>Stdcall;
FindFamilyName:access function(THIS:LPIDWriteFontCollection;familyName:LPWCHAR;index:LPUINT32;exists:LPBOOL) return HRESULT with Convention=>Stdcall;
GetFontFromFontFace:access function(THIS:LPIDWriteFontCollection;fontFace:LPIDWriteFontFace;font:LPLPIDWriteFont) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontList :constant GUID:=uuidof("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb");
type IDWriteFontList is record
QueryInterface:access function(THIS:LPIDWriteFontList;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontList) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontList) return ULONG with Convention=>Stdcall;
GetFontCollection:access function(THIS:LPIDWriteFontList;fontCollection:LPLPIDWriteFontCollection) return HRESULT with Convention=>Stdcall;
GetFontCount:access function(THIS:LPIDWriteFontList;Arg2:void) return UINT32 with Convention=>Stdcall;
GetFont:access function(THIS:LPIDWriteFontList;index:UINT32;font:LPLPIDWriteFont) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFontFamily :constant GUID:=uuidof("da20d8ef-812a-4c43-9802-62ec4abd7add");
type IDWriteFontFamily is record
QueryInterface:access function(THIS:LPIDWriteFontFamily;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFontFamily) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFontFamily) return ULONG with Convention=>Stdcall;
GetFontCollection:access function(THIS:LPIDWriteFontFamily;fontCollection:LPLPIDWriteFontCollection) return HRESULT with Convention=>Stdcall;
GetFontCount:access function(THIS:LPIDWriteFontFamily;Arg2:void) return UINT32 with Convention=>Stdcall;
GetFont:access function(THIS:LPIDWriteFontFamily;index:UINT32;font:LPLPIDWriteFont) return HRESULT with Convention=>Stdcall;
GetFamilyNames:access function(THIS:LPIDWriteFontFamily;names:LPLPIDWriteLocalizedStrings) return HRESULT with Convention=>Stdcall;
GetFirstMatchingFont:access function(THIS:LPIDWriteFontFamily;weight:DWRITE_FONT_WEIGHT;stretch:DWRITE_FONT_STRETCH;style:DWRITE_FONT_STYLE;matchingFont:LPLPIDWriteFont) return HRESULT with Convention=>Stdcall;
GetMatchingFonts:access function(THIS:LPIDWriteFontFamily;weight:DWRITE_FONT_WEIGHT;stretch:DWRITE_FONT_STRETCH;style:DWRITE_FONT_STYLE;matchingFonts:LPLPIDWriteFontList) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFont :constant GUID:=uuidof("acd16696-8c14-4f5d-877e-fe3fc1d32737");
type IDWriteFont is record
QueryInterface:access function(THIS:LPIDWriteFont;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFont) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFont) return ULONG with Convention=>Stdcall;
GetFontFamily:access function(THIS:LPIDWriteFont;fontFamily:LPLPIDWriteFontFamily) return HRESULT with Convention=>Stdcall;
GetWeight:access function(THIS:LPIDWriteFont) return DWRITE_FONT_WEIGHT with Convention=>Stdcall;
GetStretch:access function(THIS:LPIDWriteFont) return DWRITE_FONT_STRETCH with Convention=>Stdcall;
GetStyle:access function(THIS:LPIDWriteFont) return DWRITE_FONT_STYLE with Convention=>Stdcall;
IsSymbolFont:access function(THIS:LPIDWriteFont) return BOOL with Convention=>Stdcall;
GetFaceNames:access function(THIS:LPIDWriteFont;names:LPLPIDWriteLocalizedStrings) return HRESULT with Convention=>Stdcall;
GetInformationalStrings:access function(THIS:LPIDWriteFont;informationalStringID:DWRITE_INFORMATIONAL_STRING_ID;informationalStrings:LPLPIDWriteLocalizedStrings;exists:LPBOOL) return HRESULT with Convention=>Stdcall;
GetSimulations:access function(THIS:LPIDWriteFont) return DWRITE_FONT_SIMULATIONS with Convention=>Stdcall;
GetMetrics:access function(THIS:LPIDWriteFont;fontMetrics:LPDWRITE_FONT_METRICS) return void with Convention=>Stdcall;
HasCharacter:access function(THIS:LPIDWriteFont;unicodeValue:UINT32;exists:LPBOOL) return HRESULT with Convention=>Stdcall;
CreateFontFace:access function(THIS:LPIDWriteFont;fontFace:LPLPIDWriteFontFace) return HRESULT with Convention=>Stdcall;
end record;
type DWRITE_READING_DIRECTION is (DWRITE_READING_DIRECTION_LEFT_TO_RIGHT,
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT);
type DWRITE_FLOW_DIRECTION is (DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM);
type DWRITE_TEXT_ALIGNMENT is (DWRITE_TEXT_ALIGNMENT_LEADING,
DWRITE_TEXT_ALIGNMENT_TRAILING,
DWRITE_TEXT_ALIGNMENT_CENTER);
type DWRITE_PARAGRAPH_ALIGNMENT is (DWRITE_PARAGRAPH_ALIGNMENT_NEAR,
DWRITE_PARAGRAPH_ALIGNMENT_FAR,
DWRITE_PARAGRAPH_ALIGNMENT_CENTER);
type DWRITE_WORD_WRAPPING is (DWRITE_WORD_WRAPPING_WRAP,
DWRITE_WORD_WRAPPING_NO_WRAP);
type DWRITE_LINE_SPACING_METHOD is (DWRITE_LINE_SPACING_METHOD_DEFAULT,
DWRITE_LINE_SPACING_METHOD_UNIFORM);
type LPDWRITE_LINE_SPACING_METHOD is access all DWRITE_LINE_SPACING_METHOD;
type DWRITE_TRIMMING_GRANULARITY is (DWRITE_TRIMMING_GRANULARITY_NONE,
DWRITE_TRIMMING_GRANULARITY_CHARACTER,
DWRITE_TRIMMING_GRANULARITY_WORD);
type DWRITE_FONT_FEATURE_TAG is new int;
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS :constant DWRITE_FONT_FEATURE_TAG:=16#63703263#;
DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS :constant DWRITE_FONT_FEATURE_TAG:=16#63726661#;
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS :constant DWRITE_FONT_FEATURE_TAG:=16#63733263#;
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES :constant DWRITE_FONT_FEATURE_TAG:=16#746c6163#;
DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS :constant DWRITE_FONT_FEATURE_TAG:=16#65736163#;
DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION :constant DWRITE_FONT_FEATURE_TAG:=16#706d6363#;
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES :constant DWRITE_FONT_FEATURE_TAG:=16#67696c63#;
DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING :constant DWRITE_FONT_FEATURE_TAG:=16#70737063#;
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH :constant DWRITE_FONT_FEATURE_TAG:=16#68777363#;
DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING :constant DWRITE_FONT_FEATURE_TAG:=16#73727563#;
DWRITE_FONT_FEATURE_TAG_DEFAULT :constant DWRITE_FONT_FEATURE_TAG:=16#746c6664#;
DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES :constant DWRITE_FONT_FEATURE_TAG:=16#67696c64#;
DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS :constant DWRITE_FONT_FEATURE_TAG:=16#74707865#;
DWRITE_FONT_FEATURE_TAG_FRACTIONS :constant DWRITE_FONT_FEATURE_TAG:=16#63617266#;
DWRITE_FONT_FEATURE_TAG_FULL_WIDTH:constant DWRITE_FONT_FEATURE_TAG:=16#64697766#;
DWRITE_FONT_FEATURE_TAG_HALF_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#666c6168#;
DWRITE_FONT_FEATURE_TAG_HALANT_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#6e6c6168#;
DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH:constant DWRITE_FONT_FEATURE_TAG:=16#746c6168#;
DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#74736968#;
DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES:constant DWRITE_FONT_FEATURE_TAG:=16#616e6b68#;
DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES:constant DWRITE_FONT_FEATURE_TAG:=16#67696c68#;
DWRITE_FONT_FEATURE_TAG_HALF_WIDTH:constant DWRITE_FONT_FEATURE_TAG:=16#64697768#;
DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#6f6a6f68#;
DWRITE_FONT_FEATURE_TAG_JIS04_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#3430706a#;
DWRITE_FONT_FEATURE_TAG_JIS78_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#3837706a#;
DWRITE_FONT_FEATURE_TAG_JIS83_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#3338706a#;
DWRITE_FONT_FEATURE_TAG_JIS90_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#3039706a#;
DWRITE_FONT_FEATURE_TAG_KERNING:constant DWRITE_FONT_FEATURE_TAG:=16#6e72656b#;
DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES:constant DWRITE_FONT_FEATURE_TAG:=16#6167696c#;
DWRITE_FONT_FEATURE_TAG_LINING_FIGURES:constant DWRITE_FONT_FEATURE_TAG:=16#6d756e6c#;
DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#6c636f6c#;
DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING:constant DWRITE_FONT_FEATURE_TAG:=16#6b72616d#;
DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK:constant DWRITE_FONT_FEATURE_TAG:=16#6b72676d#;
DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING:constant DWRITE_FONT_FEATURE_TAG:=16#6b6d6b6d#;
DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#746c616e#;
DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#6b636c6e#;
DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES:constant DWRITE_FONT_FEATURE_TAG:=16#6d756e6f#;
DWRITE_FONT_FEATURE_TAG_ORDINALS:constant DWRITE_FONT_FEATURE_TAG:=16#6e64726f#;
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH:constant DWRITE_FONT_FEATURE_TAG:=16#746c6170#;
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS:constant DWRITE_FONT_FEATURE_TAG:=16#70616370#;
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES:constant DWRITE_FONT_FEATURE_TAG:=16#6d756e70#;
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS:constant DWRITE_FONT_FEATURE_TAG:=16#64697770#;
DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS:constant DWRITE_FONT_FEATURE_TAG:=16#64697771#;
DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES:constant DWRITE_FONT_FEATURE_TAG:=16#67696c72#;
DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#79627572#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES:constant DWRITE_FONT_FEATURE_TAG:=16#746c6173#;
DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS:constant DWRITE_FONT_FEATURE_TAG:=16#666e6973#;
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS:constant DWRITE_FONT_FEATURE_TAG:=16#70636d73#;
DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#6c706d73#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1:constant DWRITE_FONT_FEATURE_TAG:=16#31307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2:constant DWRITE_FONT_FEATURE_TAG:=16#32307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3:constant DWRITE_FONT_FEATURE_TAG:=16#33307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4:constant DWRITE_FONT_FEATURE_TAG:=16#34307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5:constant DWRITE_FONT_FEATURE_TAG:=16#35307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6:constant DWRITE_FONT_FEATURE_TAG:=16#36307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7:constant DWRITE_FONT_FEATURE_TAG:=16#37307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8:constant DWRITE_FONT_FEATURE_TAG:=16#38307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9:constant DWRITE_FONT_FEATURE_TAG:=16#39307373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10:constant DWRITE_FONT_FEATURE_TAG:=16#30317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11:constant DWRITE_FONT_FEATURE_TAG:=16#31317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12:constant DWRITE_FONT_FEATURE_TAG:=16#32317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13:constant DWRITE_FONT_FEATURE_TAG:=16#33317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14:constant DWRITE_FONT_FEATURE_TAG:=16#34317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15:constant DWRITE_FONT_FEATURE_TAG:=16#35317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16:constant DWRITE_FONT_FEATURE_TAG:=16#36317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17:constant DWRITE_FONT_FEATURE_TAG:=16#37317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18:constant DWRITE_FONT_FEATURE_TAG:=16#38317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19:constant DWRITE_FONT_FEATURE_TAG:=16#39317373#;
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20:constant DWRITE_FONT_FEATURE_TAG:=16#30327373#;
DWRITE_FONT_FEATURE_TAG_SUBSCRIPT:constant DWRITE_FONT_FEATURE_TAG:=16#73627573#;
DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT:constant DWRITE_FONT_FEATURE_TAG:=16#73707573#;
DWRITE_FONT_FEATURE_TAG_SWASH:constant DWRITE_FONT_FEATURE_TAG:=16#68737773#;
DWRITE_FONT_FEATURE_TAG_TITLING:constant DWRITE_FONT_FEATURE_TAG:=16#6c746974#;
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#6d616e74#;
DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES:constant DWRITE_FONT_FEATURE_TAG:=16#6d756e74#;
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS:constant DWRITE_FONT_FEATURE_TAG:=16#64617274#;
DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS:constant DWRITE_FONT_FEATURE_TAG:=16#64697774#;
DWRITE_FONT_FEATURE_TAG_UNICASE:constant DWRITE_FONT_FEATURE_TAG:=16#63696e75#;
DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO:constant DWRITE_FONT_FEATURE_TAG:=16#6f72657a#;
type DWRITE_TEXT_RANGE is record
startPosition: UINT32;
length: UINT32;
end record;
type LPDWRITE_TEXT_RANGE is access all DWRITE_TEXT_RANGE;
type DWRITE_FONT_FEATURE is record
nameTag: DWRITE_FONT_FEATURE_TAG;
parameter: UINT32;
end record;
type LPDWRITE_FONT_FEATURE is access all DWRITE_FONT_FEATURE;
type DWRITE_TYPOGRAPHIC_FEATURES is record
features:LPDWRITE_FONT_FEATURE;
featureCount: UINT32;
end record;
type LPDWRITE_TYPOGRAPHIC_FEATURES is access all DWRITE_TYPOGRAPHIC_FEATURES;
type LPLPDWRITE_TYPOGRAPHIC_FEATURES is access all LPDWRITE_TYPOGRAPHIC_FEATURES;
type DWRITE_TRIMMING is record
granularity: DWRITE_TRIMMING_GRANULARITY;
delimiter: UINT32;
delimiterCount: UINT32;
end record;
type LPDWRITE_TRIMMING is access all DWRITE_TRIMMING;
IID_IDWriteTextFormat :constant GUID:=uuidof("9c906818-31d7-4fd3-a151-7c5e225db55a");
type IDWriteTextFormat is record
QueryInterface:access function(THIS:LPIDWriteTextFormat;riid:REFIID;ppvObj:LPLPVOID) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTextFormat) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTextFormat) return ULONG with Convention=>Stdcall;
SetTextAlignment:access function(THIS:LPIDWriteTextFormat;textAlignment:DWRITE_TEXT_ALIGNMENT) return HRESULT with Convention=>Stdcall;
SetParagraphAlignment:access function(THIS:LPIDWriteTextFormat;paragraphAlignment:DWRITE_PARAGRAPH_ALIGNMENT) return HRESULT with Convention=>Stdcall;
SetWordWrapping:access function(THIS:LPIDWriteTextFormat;wordWrapping:DWRITE_WORD_WRAPPING) return HRESULT with Convention=>Stdcall;
SetReadingDirection:access function(THIS:LPIDWriteTextFormat;readingDirection:DWRITE_READING_DIRECTION) return HRESULT with Convention=>Stdcall;
SetFlowDirection:access function(THIS:LPIDWriteTextFormat;flowDirection:DWRITE_FLOW_DIRECTION) return HRESULT with Convention=>Stdcall;
SetIncrementalTabStop:access function(THIS:LPIDWriteTextFormat;incrementalTabStop:FLOAT) return HRESULT with Convention=>Stdcall;
SetTrimming:access function(THIS:LPIDWriteTextFormat;trimmingOptions:LPDWRITE_TRIMMING;trimmingSign:LPIDWriteInlineObject) return HRESULT with Convention=>Stdcall;
SetLineSpacing:access function(THIS:LPIDWriteTextFormat;lineSpacingMethod:DWRITE_LINE_SPACING_METHOD;lineSpacing:FLOAT;baseline:FLOAT) return HRESULT with Convention=>Stdcall;
GetTextAlignment:access function(THIS:LPIDWriteTextFormat) return DWRITE_TEXT_ALIGNMENT with Convention=>Stdcall;
GetParagraphAlignment:access function(THIS:LPIDWriteTextFormat) return DWRITE_PARAGRAPH_ALIGNMENT with Convention=>Stdcall;
GetWordWrapping:access function(THIS:LPIDWriteTextFormat) return DWRITE_WORD_WRAPPING with Convention=>Stdcall;
GetReadingDirection:access function(THIS:LPIDWriteTextFormat) return DWRITE_READING_DIRECTION with Convention=>Stdcall;
GetFlowDirection:access function(THIS:LPIDWriteTextFormat) return DWRITE_FLOW_DIRECTION with Convention=>Stdcall;
GetIncrementalTabStop:access function(THIS:LPIDWriteTextFormat) return FLOAT with Convention=>Stdcall;
GetTrimming:access function(THIS:LPIDWriteTextFormat;trimmingOptions:LPDWRITE_TRIMMING;trimmingSign:LPLPIDWriteInlineObject) return HRESULT with Convention=>Stdcall;
GetLineSpacing:access function(THIS:LPIDWriteTextFormat;lineSpacingMethod:LPDWRITE_LINE_SPACING_METHOD;lineSpacing:LPFLOAT;baseline:LPFLOAT) return HRESULT with Convention=>Stdcall;
GetFontCollection:access function(THIS:LPIDWriteTextFormat;fontCollection:LPLPIDWriteFontCollection) return HRESULT with Convention=>Stdcall;
GetFontFamilyNameLength:access function(THIS:LPIDWriteTextFormat) return UINT32 with Convention=>Stdcall;
GetFontFamilyName:access function(THIS:LPIDWriteTextFormat;fontFamilyName:LPWCHAR;nameSize:UINT32) return HRESULT with Convention=>Stdcall;
GetFontWeight:access function(THIS:LPIDWriteTextFormat) return DWRITE_FONT_WEIGHT with Convention=>Stdcall;
GetFontStyle:access function(THIS:LPIDWriteTextFormat) return DWRITE_FONT_STYLE with Convention=>Stdcall;
GetFontStretch:access function(THIS:LPIDWriteTextFormat) return DWRITE_FONT_STRETCH with Convention=>Stdcall;
GetFontSize:access function(THIS:LPIDWriteTextFormat) return FLOAT with Convention=>Stdcall;
GetLocaleNameLength:access function(THIS:LPIDWriteTextFormat) return UINT32 with Convention=>Stdcall;
GetLocaleName:access function(THIS:LPIDWriteTextFormat;localeName:LPWCHAR;nameSize:UINT32) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteTypography :constant GUID:=uuidof("55f1112b-1dc2-4b3c-9541-f46894ed85b6");
type IDWriteTypography is record
QueryInterface:access function(THIS:LPIDWriteTypography;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTypography) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTypography) return ULONG with Convention=>Stdcall;
AddFontFeature:access function(THIS:LPIDWriteTypography;fontFeature:DWRITE_FONT_FEATURE) return HRESULT with Convention=>Stdcall;
GetFontFeatureCount:access function(THIS:LPIDWriteTypography) return UINT32 with Convention=>Stdcall;
GetFontFeature:access function(THIS:LPIDWriteTypography;fontFeatureIndex:UINT32;fontFeature:LPDWRITE_FONT_FEATURE) return HRESULT with Convention=>Stdcall;
end record;
type DWRITE_SCRIPT_SHAPES is (DWRITE_SCRIPT_SHAPES_DEFAULT,
DWRITE_SCRIPT_SHAPES_NO_VISUAL);
for DWRITE_SCRIPT_SHAPES use (DWRITE_SCRIPT_SHAPES_DEFAULT=>0,
DWRITE_SCRIPT_SHAPES_NO_VISUAL=>1);
type DWRITE_SCRIPT_ANALYSIS is record
script: UINT16;
shapes: DWRITE_SCRIPT_SHAPES;
end record;
type LPDWRITE_SCRIPT_ANALYSIS is access all DWRITE_SCRIPT_ANALYSIS;
type DWRITE_BREAK_CONDITION is (DWRITE_BREAK_CONDITION_NEUTRAL,
DWRITE_BREAK_CONDITION_CAN_BREAK,
DWRITE_BREAK_CONDITION_MAY_NOT_BREAK,
DWRITE_BREAK_CONDITION_MUST_BREAK);
type LPDWRITE_BREAK_CONDITION is access all DWRITE_BREAK_CONDITION;
type DWRITE_LINE_BREAKPOINT is record
breakConditionBefore: UINT8;
breakConditionAfter: UINT8;
isWhitespace: UINT8;
isSoftHyphen: UINT8;
padding: UINT8;
end record;
type LPDWRITE_LINE_BREAKPOINT is access all DWRITE_LINE_BREAKPOINT;
type DWRITE_NUMBER_SUBSTITUTION_METHOD is (DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE,
DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL,
DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE,
DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL,
DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL);
IID_IDWriteNumberSubstitution :constant GUID:=uuidof("14885CC9-BAB0-4f90-B6ED-5C366A2CD03D");
type IDWriteNumberSubstitution is record
QueryInterface:access function(THIS:LPIDWriteNumberSubstitution;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteNumberSubstitution) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteNumberSubstitution) return ULONG with Convention=>Stdcall;
end record;
type DWRITE_SHAPING_TEXT_PROPERTIES is record
isShapedAlone: UINT16;
reserved: UINT16;
end record;
type LPDWRITE_SHAPING_TEXT_PROPERTIES is access all DWRITE_SHAPING_TEXT_PROPERTIES;
type DWRITE_SHAPING_GLYPH_PROPERTIES is record
justification: UINT16;
isClusterStart: UINT16;
isDiacritic: UINT16;
isZeroWidthSpace: UINT16;
reserved: UINT16;
end record;
type LPDWRITE_SHAPING_GLYPH_PROPERTIES is access all DWRITE_SHAPING_GLYPH_PROPERTIES;
IID_IDWriteTextAnalysisSource :constant GUID:=uuidof("688e1a58-5094-47c8-adc8-fbcea60ae92b");
type IDWriteTextAnalysisSource is record
QueryInterface:access function(THIS:LPIDWriteTextAnalysisSource;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTextAnalysisSource) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTextAnalysisSource) return ULONG with Convention=>Stdcall;
GetTextAtPosition:access function(THIS:LPIDWriteTextAnalysisSource;textPosition:UINT32;textString:access LPWCHAR;textLength:LPUINT32) return HRESULT with Convention=>Stdcall;
GetTextBeforePosition:access function(THIS:LPIDWriteTextAnalysisSource;textPosition:UINT32;textString:access LPWCHAR;textLength:LPUINT32) return HRESULT with Convention=>Stdcall;
GetParagraphReadingDirection:access function(THIS:LPIDWriteTextAnalysisSource) return DWRITE_READING_DIRECTION with Convention=>Stdcall;
GetLocaleName:access function(THIS:LPIDWriteTextAnalysisSource;textPosition:UINT32;textLength:LPUINT32;localeName:access LPWCHAR) return HRESULT with Convention=>Stdcall;
GetNumberSubstitution:access function(THIS:LPIDWriteTextAnalysisSource;textPosition:UINT32;textLength:LPUINT32;numberSubstitution:LPLPIDWriteNumberSubstitution) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteTextAnalysisSink :constant GUID:=uuidof("5810cd44-0ca0-4701-b3fa-bec5182ae4f6");
type IDWriteTextAnalysisSink is record
QueryInterface:access function(THIS:LPIDWriteTextAnalysisSink;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTextAnalysisSink) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTextAnalysisSink) return ULONG with Convention=>Stdcall;
SetScriptAnalysis:access function(THIS:LPIDWriteTextAnalysisSink;textPosition:UINT32;textLength:UINT32;scriptAnalysis:LPDWRITE_SCRIPT_ANALYSIS) return HRESULT with Convention=>Stdcall;
SetLineBreakpoints:access function(THIS:LPIDWriteTextAnalysisSink;textPosition:UINT32;textLength:UINT32;lineBreakpoints:LPDWRITE_LINE_BREAKPOINT) return HRESULT with Convention=>Stdcall;
SetBidiLevel:access function(THIS:LPIDWriteTextAnalysisSink;textPosition:UINT32;textLength:UINT32;explicitLevel:UINT8;resolvedLevel:UINT8) return HRESULT with Convention=>Stdcall;
SetNumberSubstitution:access function(THIS:LPIDWriteTextAnalysisSink;textPosition:UINT32;textLength:UINT32;numberSubstitution:LPIDWriteNumberSubstitution) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteTextAnalyzer :constant GUID:=uuidof("b7e6163e-7f46-43b4-84b3-e4e6249c365d");
type IDWriteTextAnalyzer is record
QueryInterface:access function(THIS:LPIDWriteTextAnalyzer;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTextAnalyzer) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTextAnalyzer) return ULONG with Convention=>Stdcall;
AnalyzeScript:access function(THIS:LPIDWriteTextAnalyzer;analysisSource:LPIDWriteTextAnalysisSource;textPosition:UINT32;textLength:UINT32;analysisSink:LPIDWriteTextAnalysisSink) return HRESULT with Convention=>Stdcall;
AnalyzeBidi:access function(THIS:LPIDWriteTextAnalyzer;analysisSource:LPIDWriteTextAnalysisSource;textPosition:UINT32;textLength:UINT32;analysisSink:LPIDWriteTextAnalysisSink) return HRESULT with Convention=>Stdcall;
AnalyzeNumberSubstitution:access function(THIS:LPIDWriteTextAnalyzer;analysisSource:LPIDWriteTextAnalysisSource;textPosition:UINT32;textLength:UINT32;analysisSink:LPIDWriteTextAnalysisSink) return HRESULT with Convention=>Stdcall;
AnalyzeLineBreakpoints:access function(THIS:LPIDWriteTextAnalyzer;analysisSource:LPIDWriteTextAnalysisSource;textPosition:UINT32;textLength:UINT32;analysisSink:LPIDWriteTextAnalysisSink) return HRESULT with Convention=>Stdcall;
GetGlyphs:access function(THIS:LPIDWriteTextAnalyzer;textString:LPWCHAR;textLength:UINT32;fontFace:LPIDWriteFontFace;isSideways:BOOL;isRightToLeft:BOOL;scriptAnalysis:LPDWRITE_SCRIPT_ANALYSIS;localeName:LPWCHAR;numberSubstitution:LPIDWriteNumberSubstitution;features:LPLPDWRITE_TYPOGRAPHIC_FEATURES;featureRangeLengths:LPUINT32;featureRanges:UINT32;maxGlyphCount:UINT32;clusterMap:LPUINT16;textProps:LPDWRITE_SHAPING_TEXT_PROPERTIES;glyphIndices:LPUINT16;glyphProps:LPDWRITE_SHAPING_GLYPH_PROPERTIES;actualGlyphCount:LPUINT32) return HRESULT with Convention=>Stdcall;
GetGlyphPlacements:access function(THIS:LPIDWriteTextAnalyzer;textString:LPWCHAR;clusterMap:LPUINT16;textProps:LPDWRITE_SHAPING_TEXT_PROPERTIES;textLength:UINT32;glyphIndices:LPUINT16;glyphProps:LPDWRITE_SHAPING_GLYPH_PROPERTIES;glyphCount:UINT32;fontFace:LPIDWriteFontFace;fontEmSize:FLOAT;isSideways:BOOL;isRightToLeft:BOOL;scriptAnalysis:LPDWRITE_SCRIPT_ANALYSIS;localeName:LPWCHAR;features:LPLPDWRITE_TYPOGRAPHIC_FEATURES;featureRangeLengths:LPUINT32;featureRanges:UINT32;glyphAdvances:LPFLOAT;glyphOffsets:LPDWRITE_GLYPH_OFFSET) return HRESULT with Convention=>Stdcall;
GetGdiCompatibleGlyphPlacements:access function(THIS:LPIDWriteTextAnalyzer;textString:LPWCHAR;clusterMap:LPUINT16;textProps:LPDWRITE_SHAPING_TEXT_PROPERTIES;textLength:UINT32;glyphIndices:LPUINT16;glyphProps:LPDWRITE_SHAPING_GLYPH_PROPERTIES;glyphCount:UINT32;fontFace:LPIDWriteFontFace;fontEmSize:FLOAT;pixelsPerDip:FLOAT;transform:LPDWRITE_MATRIX;useGdiNatural:BOOL;isSideways:BOOL;isRightToLeft:BOOL;scriptAnalysis:LPDWRITE_SCRIPT_ANALYSIS;localeName:LPWCHAR;features:LPLPDWRITE_TYPOGRAPHIC_FEATURES;featureRangeLengths:LPUINT32;featureRanges:UINT32;glyphAdvances:LPFLOAT;glyphOffsets:LPDWRITE_GLYPH_OFFSET) return HRESULT with Convention=>Stdcall;
end record;
type DWRITE_GLYPH_RUN is record
fontFace:LPIDWriteFontFace;
fontEmSize: FLOAT;
glyphCount: UINT32;
glyphIndices:LPUINT16;
glyphAdvances:LPFLOAT;
glyphOffsets:LPDWRITE_GLYPH_OFFSET;
isSideways: BOOL;
bidiLevel: UINT32;
end record;
type LPDWRITE_GLYPH_RUN is access all DWRITE_GLYPH_RUN;
type LPCDWRITE_GLYPH_RUN is access constant DWRITE_GLYPH_RUN;
type DWRITE_GLYPH_RUN_DESCRIPTION is record
localeName:LPWCHAR;
string:LPWCHAR;
stringLength: UINT32;
clusterMap:LPUINT16;
textPosition: UINT32;
end record;
type LPDWRITE_GLYPH_RUN_DESCRIPTION is access all DWRITE_GLYPH_RUN_DESCRIPTION;
type DWRITE_UNDERLINE is record
width: FLOAT;
thickness: FLOAT;
offset: FLOAT;
runHeight: FLOAT;
readingDirection: DWRITE_READING_DIRECTION;
flowDirection: DWRITE_FLOW_DIRECTION;
localeName:LPWCHAR;
measuringMode: DWRITE_MEASURING_MODE;
end record;
type LPDWRITE_UNDERLINE is access all DWRITE_UNDERLINE;
type DWRITE_STRIKETHROUGH is record
width: FLOAT;
thickness: FLOAT;
offset: FLOAT;
readingDirection: DWRITE_READING_DIRECTION;
flowDirection: DWRITE_FLOW_DIRECTION;
localeName:LPWCHAR;
measuringMode: DWRITE_MEASURING_MODE;
end record;
type LPDWRITE_STRIKETHROUGH is access all DWRITE_STRIKETHROUGH;
type DWRITE_LINE_METRICS is record
length: UINT32;
trailingWhitespaceLength: UINT32;
newlineLength: UINT32;
height: FLOAT;
baseline: FLOAT;
isTrimmed: BOOL;
end record;
type LPDWRITE_LINE_METRICS is access all DWRITE_LINE_METRICS;
type DWRITE_CLUSTER_METRICS is record
width: FLOAT;
length: UINT16;
canWrapLineAfter: UINT16;
isWhitespace: UINT16;
isNewline: UINT16;
isSoftHyphen: UINT16;
isRightToLeft: UINT16;
padding: UINT16;
end record;
type LPDWRITE_CLUSTER_METRICS is access all DWRITE_CLUSTER_METRICS;
type DWRITE_TEXT_METRICS is record
left: FLOAT;
top: FLOAT;
width: FLOAT;
widthIncludingTrailingWhitespace: FLOAT;
height: FLOAT;
layoutWidth: FLOAT;
layoutHeight: FLOAT;
maxBidiReorderingDepth: UINT32;
lineCount: UINT32;
end record;
type LPDWRITE_TEXT_METRICS is access all DWRITE_TEXT_METRICS;
type DWRITE_INLINE_OBJECT_METRICS is record
width: FLOAT;
height: FLOAT;
baseline: FLOAT;
supportsSideways: BOOL;
end record;
type LPDWRITE_INLINE_OBJECT_METRICS is access all DWRITE_INLINE_OBJECT_METRICS;
type DWRITE_OVERHANG_METRICS is record
left: FLOAT;
top: FLOAT;
right: FLOAT;
bottom: FLOAT;
end record;
type LPDWRITE_OVERHANG_METRICS is access all DWRITE_OVERHANG_METRICS;
type DWRITE_HIT_TEST_METRICS is record
textPosition: UINT32;
length: UINT32;
left: FLOAT;
top: FLOAT;
width: FLOAT;
height: FLOAT;
bidiLevel: UINT32;
isText: BOOL;
isTrimmed: BOOL;
end record;
type LPDWRITE_HIT_TEST_METRICS is access all DWRITE_HIT_TEST_METRICS;
IID_IDWriteInlineObject :constant GUID:=uuidof("8339FDE3-106F-47ab-8373-1C6295EB10B3");
type IDWriteInlineObject is record
QueryInterface:access function(THIS:LPIDWriteInlineObject;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteInlineObject) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteInlineObject) return ULONG with Convention=>Stdcall;
Draw:access function(THIS:LPIDWriteInlineObject;clientDrawingContext:LPvoid;renderer:LPIDWriteTextRenderer;originX:FLOAT;originY:FLOAT;isSideways:BOOL;isRightToLeft:BOOL;clientDrawingEffect:LPIUnknown) return HRESULT with Convention=>Stdcall;
GetMetrics:access function(THIS:LPIDWriteInlineObject;metrics:LPDWRITE_INLINE_OBJECT_METRICS) return HRESULT with Convention=>Stdcall;
GetOverhangMetrics:access function(THIS:LPIDWriteInlineObject;overhangs:LPDWRITE_OVERHANG_METRICS) return HRESULT with Convention=>Stdcall;
GetBreakConditions:access function(THIS:LPIDWriteInlineObject;breakConditionBefore:LPDWRITE_BREAK_CONDITION;breakConditionAfter:LPDWRITE_BREAK_CONDITION) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWritePixelSnapping :constant GUID:=uuidof("eaf3a2da-ecf4-4d24-b644-b34f6842024b");
type IDWritePixelSnapping is record
QueryInterface:access function(THIS:LPIDWritePixelSnapping;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWritePixelSnapping) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWritePixelSnapping) return ULONG with Convention=>Stdcall;
IsPixelSnappingDisabled:access function(THIS:LPIDWritePixelSnapping;clientDrawingContext:LPvoid;isDisabled:LPBOOL) return HRESULT with Convention=>Stdcall;
GetCurrentTransform:access function(THIS:LPIDWritePixelSnapping;clientDrawingContext:LPvoid;transform:LPDWRITE_MATRIX) return HRESULT with Convention=>Stdcall;
GetPixelsPerDip:access function(THIS:LPIDWritePixelSnapping;clientDrawingContext:LPvoid;pixelsPerDip:LPFLOAT) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteTextRenderer :constant GUID:=uuidof("ef8a8135-5cc6-45fe-8825-c5a0724eb819");
type IDWriteTextRenderer is record
QueryInterface:access function(THIS:LPIDWriteTextRenderer;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTextRenderer) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTextRenderer) return ULONG with Convention=>Stdcall;
IsPixelSnappingDisabled:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;isDisabled:LPBOOL) return HRESULT with Convention=>Stdcall;
GetCurrentTransform:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;transform:LPDWRITE_MATRIX) return HRESULT with Convention=>Stdcall;
GetPixelsPerDip:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;pixelsPerDip:LPFLOAT) return HRESULT with Convention=>Stdcall;
DrawGlyphRun:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;baselineOriginX:FLOAT;baselineOriginY:FLOAT;measuringMode:DWRITE_MEASURING_MODE;glyphRun:LPDWRITE_GLYPH_RUN;glyphRunDescription:LPDWRITE_GLYPH_RUN_DESCRIPTION;clientDrawingEffect:LPIUnknown) return HRESULT with Convention=>Stdcall;
DrawUnderline:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;baselineOriginX:FLOAT;baselineOriginY:FLOAT;underline:LPDWRITE_UNDERLINE;clientDrawingEffect:LPIUnknown) return HRESULT with Convention=>Stdcall;
DrawStrikethrough:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;baselineOriginX:FLOAT;baselineOriginY:FLOAT;strikethrough:LPDWRITE_STRIKETHROUGH;clientDrawingEffect:LPIUnknown) return HRESULT with Convention=>Stdcall;
DrawInlineObject:access function(THIS:LPIDWriteTextRenderer;clientDrawingContext:LPvoid;originX:FLOAT;originY:FLOAT;inlineObject:LPIDWriteInlineObject;isSideways:BOOL;isRightToLeft:BOOL;clientDrawingEffect:LPIUnknown) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteTextLayout :constant GUID:=uuidof("53737037-6d14-410b-9bfe-0b182bb70961");
type IDWriteTextLayout is record
QueryInterface:access function(THIS:LPIDWriteTextLayout;riid:REFIID;ppvObj:LPLPVOID) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteTextLayout) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteTextLayout) return ULONG with Convention=>Stdcall;
SetTextAlignment:access function(THIS:LPIDWriteTextLayout;textAlignment:DWRITE_TEXT_ALIGNMENT) return HRESULT with Convention=>Stdcall;
SetParagraphAlignment:access function(THIS:LPIDWriteTextLayout;paragraphAlignment:DWRITE_PARAGRAPH_ALIGNMENT) return HRESULT with Convention=>Stdcall;
SetWordWrapping:access function(THIS:LPIDWriteTextLayout;wordWrapping:DWRITE_WORD_WRAPPING) return HRESULT with Convention=>Stdcall;
SetReadingDirection:access function(THIS:LPIDWriteTextLayout;readingDirection:DWRITE_READING_DIRECTION) return HRESULT with Convention=>Stdcall;
SetFlowDirection:access function(THIS:LPIDWriteTextLayout;flowDirection:DWRITE_FLOW_DIRECTION) return HRESULT with Convention=>Stdcall;
SetIncrementalTabStop:access function(THIS:LPIDWriteTextLayout;incrementalTabStop:FLOAT) return HRESULT with Convention=>Stdcall;
SetTrimming:access function(THIS:LPIDWriteTextLayout;trimmingOptions:LPDWRITE_TRIMMING;trimmingSign:LPIDWriteInlineObject) return HRESULT with Convention=>Stdcall;
SetLineSpacing:access function(THIS:LPIDWriteTextLayout;lineSpacingMethod:DWRITE_LINE_SPACING_METHOD;lineSpacing:FLOAT;baseline:FLOAT) return HRESULT with Convention=>Stdcall;
GetTextAlignment:access function(THIS:LPIDWriteTextLayout) return DWRITE_TEXT_ALIGNMENT with Convention=>Stdcall;
GetParagraphAlignment:access function(THIS:LPIDWriteTextLayout) return DWRITE_PARAGRAPH_ALIGNMENT with Convention=>Stdcall;
GetWordWrapping:access function(THIS:LPIDWriteTextLayout) return DWRITE_WORD_WRAPPING with Convention=>Stdcall;
GetReadingDirection:access function(THIS:LPIDWriteTextLayout) return DWRITE_READING_DIRECTION with Convention=>Stdcall;
GetFlowDirection:access function(THIS:LPIDWriteTextLayout) return DWRITE_FLOW_DIRECTION with Convention=>Stdcall;
GetIncrementalTabStop:access function(THIS:LPIDWriteTextLayout) return FLOAT with Convention=>Stdcall;
GetTrimming:access function(THIS:LPIDWriteTextLayout;trimmingOptions:LPDWRITE_TRIMMING;trimmingSign:LPLPIDWriteInlineObject) return HRESULT with Convention=>Stdcall;
GetLineSpacing:access function(THIS:LPIDWriteTextLayout;lineSpacingMethod:LPDWRITE_LINE_SPACING_METHOD;lineSpacing:LPFLOAT;baseline:LPFLOAT) return HRESULT with Convention=>Stdcall;
GetFontCollection:access function(THIS:LPIDWriteTextLayout;fontCollection:LPLPIDWriteFontCollection) return HRESULT with Convention=>Stdcall;
GetFontFamilyNameLength:access function(THIS:LPIDWriteTextLayout) return UINT32 with Convention=>Stdcall;
GetFontFamilyName:access function(THIS:LPIDWriteTextLayout;fontFamilyName:LPWCHAR;nameSize:UINT32) return HRESULT with Convention=>Stdcall;
GetFontWeight:access function(THIS:LPIDWriteTextLayout) return DWRITE_FONT_WEIGHT with Convention=>Stdcall;
GetFontStyle:access function(THIS:LPIDWriteTextLayout) return DWRITE_FONT_STYLE with Convention=>Stdcall;
GetFontStretch:access function(THIS:LPIDWriteTextLayout) return DWRITE_FONT_STRETCH with Convention=>Stdcall;
GetFontSize:access function(THIS:LPIDWriteTextLayout) return FLOAT with Convention=>Stdcall;
GetLocaleNameLength:access function(THIS:LPIDWriteTextLayout) return UINT32 with Convention=>Stdcall;
GetLocaleName:access function(THIS:LPIDWriteTextLayout;localeName:LPWCHAR;nameSize:UINT32) return HRESULT with Convention=>Stdcall;
SetMaxWidth:access function(THIS:LPIDWriteTextLayout;maxWidth:FLOAT) return HRESULT with Convention=>Stdcall;
SetMaxHeight:access function(THIS:LPIDWriteTextLayout;maxHeight:FLOAT) return HRESULT with Convention=>Stdcall;
SetFontCollection:access function(THIS:LPIDWriteTextLayout;fontCollection:LPIDWriteFontCollection;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetFontFamilyName:access function(THIS:LPIDWriteTextLayout;fontFamilyName:LPWCHAR;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetFontWeight:access function(THIS:LPIDWriteTextLayout;fontWeight:DWRITE_FONT_WEIGHT;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetFontStyle:access function(THIS:LPIDWriteTextLayout;fontStyle:DWRITE_FONT_STYLE;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetFontStretch:access function(THIS:LPIDWriteTextLayout;fontStretch:DWRITE_FONT_STRETCH;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetFontSize:access function(THIS:LPIDWriteTextLayout;fontSize:FLOAT;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetUnderline:access function(THIS:LPIDWriteTextLayout;hasUnderline:BOOL;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetStrikethrough:access function(THIS:LPIDWriteTextLayout;hasStrikethrough:BOOL;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetDrawingEffect:access function(THIS:LPIDWriteTextLayout;drawingEffect:LPIUnknown;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetInlineObject:access function(THIS:LPIDWriteTextLayout;inlineObject:LPIDWriteInlineObject;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetTypography:access function(THIS:LPIDWriteTextLayout;typography:LPIDWriteTypography;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
SetLocaleName:access function(THIS:LPIDWriteTextLayout;localeName:LPWCHAR;textRange:DWRITE_TEXT_RANGE) return HRESULT with Convention=>Stdcall;
GetMaxWidth:access function(THIS:LPIDWriteTextLayout) return FLOAT with Convention=>Stdcall;
GetMaxHeight:access function(THIS:LPIDWriteTextLayout) return FLOAT with Convention=>Stdcall;
GetFontCollection1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;fontCollection:LPLPIDWriteFontCollection;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetFontFamilyNameLength1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;nameLength:LPUINT32;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetFontFamilyName1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;fontFamilyName:LPWCHAR;nameSize:UINT32;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetFontWeight1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;fontWeight:LPDWRITE_FONT_WEIGHT;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetFontStyle1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;fontStyle:LPDWRITE_FONT_STYLE;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetFontStretch1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;fontStretch:LPDWRITE_FONT_STRETCH;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetFontSize1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;fontSize:LPFLOAT;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetUnderline:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;hasUnderline:LPBOOL;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetStrikethrough:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;hasStrikethrough:LPBOOL;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetDrawingEffect1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;drawingEffect:access LPIUnknown;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetInlineObject:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;inlineObject:LPLPIDWriteInlineObject;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetTypography:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;typography:LPLPIDWriteTypography;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetLocaleNameLength1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;nameLength:LPUINT32;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
GetLocaleName1:access function(THIS:LPIDWriteTextLayout;currentPosition:UINT32;localeName:LPWCHAR;nameSize:UINT32;textRange:LPDWRITE_TEXT_RANGE:=Null) return HRESULT with Convention=>Stdcall;
Draw:access function(THIS:LPIDWriteTextLayout;clientDrawingContext:LPvoid;renderer:LPIDWriteTextRenderer;originX:FLOAT;originY:FLOAT) return HRESULT with Convention=>Stdcall;
GetLineMetrics:access function(THIS:LPIDWriteTextLayout;lineMetrics:LPDWRITE_LINE_METRICS;maxLineCount:UINT32;actualLineCount:LPUINT32) return HRESULT with Convention=>Stdcall;
GetMetrics:access function(THIS:LPIDWriteTextLayout;textMetrics:LPDWRITE_TEXT_METRICS) return HRESULT with Convention=>Stdcall;
GetOverhangMetrics:access function(THIS:LPIDWriteTextLayout;overhangs:LPDWRITE_OVERHANG_METRICS) return HRESULT with Convention=>Stdcall;
GetClusterMetrics:access function(THIS:LPIDWriteTextLayout;clusterMetrics:LPDWRITE_CLUSTER_METRICS;maxClusterCount:UINT32;actualClusterCount:LPUINT32) return HRESULT with Convention=>Stdcall;
DetermineMinWidth:access function(THIS:LPIDWriteTextLayout;minWidth:LPFLOAT) return HRESULT with Convention=>Stdcall;
HitTestPoint:access function(THIS:LPIDWriteTextLayout;pointX:FLOAT;pointY:FLOAT;isTrailingHit:LPBOOL;isInside:LPBOOL;hitTestMetrics:LPDWRITE_HIT_TEST_METRICS) return HRESULT with Convention=>Stdcall;
HitTestTextPosition:access function(THIS:LPIDWriteTextLayout;textPosition:UINT32;isTrailingHit:BOOL;pointX:LPFLOAT;pointY:LPFLOAT;hitTestMetrics:LPDWRITE_HIT_TEST_METRICS) return HRESULT with Convention=>Stdcall;
HitTestTextRange:access function(THIS:LPIDWriteTextLayout;textPosition:UINT32;textLength:UINT32;originX:FLOAT;originY:FLOAT;hitTestMetrics:LPDWRITE_HIT_TEST_METRICS;maxHitTestMetricsCount:UINT32;actualHitTestMetricsCount:LPUINT32) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteBitmapRenderTarget :constant GUID:=uuidof("5e5a32a3-8dff-4773-9ff6-0696eab77267");
type IDWriteBitmapRenderTarget is record
QueryInterface:access function(THIS:LPIDWriteBitmapRenderTarget;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteBitmapRenderTarget) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteBitmapRenderTarget) return ULONG with Convention=>Stdcall;
DrawGlyphRun:access function(THIS:LPIDWriteBitmapRenderTarget;baselineOriginX:FLOAT;baselineOriginY:FLOAT;measuringMode:DWRITE_MEASURING_MODE;glyphRun:LPDWRITE_GLYPH_RUN;renderingParams:LPIDWriteRenderingParams;textColor:COLORREF;blackBoxRect:LPRECT:=Null) return HRESULT with Convention=>Stdcall;
GetMemoryDC:access function(THIS:LPIDWriteBitmapRenderTarget) return HDC with Convention=>Stdcall;
GetPixelsPerDip:access function(THIS:LPIDWriteBitmapRenderTarget) return FLOAT with Convention=>Stdcall;
SetPixelsPerDip:access function(THIS:LPIDWriteBitmapRenderTarget;pixelsPerDip:FLOAT) return HRESULT with Convention=>Stdcall;
GetCurrentTransform:access function(THIS:LPIDWriteBitmapRenderTarget;transform:LPDWRITE_MATRIX) return HRESULT with Convention=>Stdcall;
SetCurrentTransform:access function(THIS:LPIDWriteBitmapRenderTarget;transform:LPDWRITE_MATRIX) return HRESULT with Convention=>Stdcall;
GetSize:access function(THIS:LPIDWriteBitmapRenderTarget;size:LPSIZE) return HRESULT with Convention=>Stdcall;
Resize:access function(THIS:LPIDWriteBitmapRenderTarget;width:UINT32;height:UINT32) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteGdiInterop :constant GUID:=uuidof("1edd9491-9853-4299-898f-6432983b6f3a");
type IDWriteGdiInterop is record
QueryInterface:access function(THIS:LPIDWriteGdiInterop;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteGdiInterop) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteGdiInterop) return ULONG with Convention=>Stdcall;
CreateFontFromLOGFONT:access function(THIS:LPIDWriteGdiInterop;logFont:LPLOGFONTW;font:LPLPIDWriteFont) return HRESULT with Convention=>Stdcall;
ConvertFontToLOGFONT:access function(THIS:LPIDWriteGdiInterop;font:LPIDWriteFont;logFont:LPLOGFONTW;isSystemFont:LPBOOL) return HRESULT with Convention=>Stdcall;
ConvertFontFaceToLOGFONT:access function(THIS:LPIDWriteGdiInterop;font:LPIDWriteFontFace;logFont:LPLOGFONTW) return HRESULT with Convention=>Stdcall;
CreateFontFaceFromHdc:access function(THIS:LPIDWriteGdiInterop;hdc:windef.HDC;fontFace:LPLPIDWriteFontFace) return HRESULT with Convention=>Stdcall;
CreateBitmapRenderTarget:access function(THIS:LPIDWriteGdiInterop;hdc:windef.HDC;width:UINT32;height:UINT32;renderTarget:LPLPIDWriteBitmapRenderTarget) return HRESULT with Convention=>Stdcall;
end record;
type DWRITE_TEXTURE_TYPE is (DWRITE_TEXTURE_ALIASED_1x1,
DWRITE_TEXTURE_CLEARTYPE_3x1);
DWRITE_ALPHA_MAX : constant := 255;
IID_IDWriteGlyphRunAnalysis :constant GUID:=uuidof("7d97dbf7-e085-42d4-81e3-6a883bded118");
type IDWriteGlyphRunAnalysis is record
QueryInterface:access function(THIS:LPIDWriteGlyphRunAnalysis;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteGlyphRunAnalysis) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteGlyphRunAnalysis) return ULONG with Convention=>Stdcall;
GetAlphaTextureBounds:access function(THIS:LPIDWriteGlyphRunAnalysis;textureType:DWRITE_TEXTURE_TYPE;textureBounds:LPRECT) return HRESULT with Convention=>Stdcall;
CreateAlphaTexture:access function(THIS:LPIDWriteGlyphRunAnalysis;textureType:DWRITE_TEXTURE_TYPE;textureBounds:LPRECT;alphaValues:LPBYTE;bufferSize:UINT32) return HRESULT with Convention=>Stdcall;
GetAlphaBlendParams:access function(THIS:LPIDWriteGlyphRunAnalysis;renderingParams:LPIDWriteRenderingParams;blendGamma:LPFLOAT;blendEnhancedContrast:LPFLOAT;blendClearTypeLevel:LPFLOAT) return HRESULT with Convention=>Stdcall;
end record;
IID_IDWriteFactory :constant GUID:=uuidof("b859ee5a-d838-4b5b-a2e8-1adc7d93db48");
type IDWriteFactory is record
QueryInterface:access function(THIS:LPIDWriteFactory;riid:REFIID;ppvObj:LPLPvoid) return HRESULT with Convention=>Stdcall;
AddRef:access function(THIS:LPIDWriteFactory) return ULONG with Convention=>Stdcall;
Release:access function(THIS:LPIDWriteFactory) return ULONG with Convention=>Stdcall;
GetSystemFontCollection:access function(THIS:LPIDWriteFactory;fontCollection:LPLPIDWriteFontCollection;checkForUpdates:BOOL:=0) return HRESULT with Convention=>Stdcall;
CreateCustomFontCollection:access function(THIS:LPIDWriteFactory;collectionLoader:LPIDWriteFontCollectionLoader;collectionKey:LPvoid;collectionKeySize:UINT32;fontCollection:LPLPIDWriteFontCollection) return HRESULT with Convention=>Stdcall;
RegisterFontCollectionLoader:access function(THIS:LPIDWriteFactory;fontCollectionLoader:LPIDWriteFontCollectionLoader) return HRESULT with Convention=>Stdcall;
UnregisterFontCollectionLoader:access function(THIS:LPIDWriteFactory;fontCollectionLoader:LPIDWriteFontCollectionLoader) return HRESULT with Convention=>Stdcall;
CreateFontFileReference:access function(THIS:LPIDWriteFactory;filePath:LPWCHAR;lastWriteTime:LPFILETIME;fontFile:LPLPIDWriteFontFile) return HRESULT with Convention=>Stdcall;
CreateCustomFontFileReference:access function(THIS:LPIDWriteFactory;fontFileReferenceKey:LPvoid;fontFileReferenceKeySize:UINT32;fontFileLoader:LPIDWriteFontFileLoader;fontFile:LPLPIDWriteFontFile) return HRESULT with Convention=>Stdcall;
CreateFontFace:access function(THIS:LPIDWriteFactory;fontFaceType:DWRITE_FONT_FACE_TYPE;numberOfFiles:UINT32;fontFiles:LPLPIDWriteFontFile;faceIndex:UINT32;fontFaceSimulationFlags:DWRITE_FONT_SIMULATIONS;fontFace:LPLPIDWriteFontFace) return HRESULT with Convention=>Stdcall;
CreateRenderingParams:access function(THIS:LPIDWriteFactory;renderingParams:LPLPIDWriteRenderingParams) return HRESULT with Convention=>Stdcall;
CreateMonitorRenderingParams:access function(THIS:LPIDWriteFactory;monitor:win32.winnt.HANDLE;renderingParams:LPLPIDWriteRenderingParams) return HRESULT with Convention=>Stdcall;
CreateCustomRenderingParams:access function(THIS:LPIDWriteFactory;gamma:FLOAT;enhancedContrast:FLOAT;clearTypeLevel:FLOAT;pixelGeometry:DWRITE_PIXEL_GEOMETRY;renderingMode:DWRITE_RENDERING_MODE;renderingParams:LPLPIDWriteRenderingParams) return HRESULT with Convention=>Stdcall;
RegisterFontFileLoader:access function(THIS:LPIDWriteFactory;fontFileLoader:LPIDWriteFontFileLoader) return HRESULT with Convention=>Stdcall;
UnregisterFontFileLoader:access function(THIS:LPIDWriteFactory;fontFileLoader:LPIDWriteFontFileLoader) return HRESULT with Convention=>Stdcall;
CreateTextFormat:access function(THIS:LPIDWriteFactory;fontFamilyName:LPWCHAR;fontCollection:LPIDWriteFontCollection;fontWeight:DWRITE_FONT_WEIGHT;fontStyle:DWRITE_FONT_STYLE;fontStretch:DWRITE_FONT_STRETCH;fontSize:FLOAT;localeName:LPWCHAR;textFormat:LPLPIDWriteTextFormat) return HRESULT with Convention=>Stdcall;
CreateTypography:access function(THIS:LPIDWriteFactory;typography:LPLPIDWriteTypography) return HRESULT with Convention=>Stdcall;
GetGdiInterop:access function(THIS:LPIDWriteFactory;gdiInterop:LPLPIDWriteGdiInterop) return HRESULT with Convention=>Stdcall;
CreateTextLayout:access function(THIS:LPIDWriteFactory;string:LPWCHAR;stringLength:UINT32;textFormat:LPIDWriteTextFormat;maxWidth:FLOAT;maxHeight:FLOAT;textLayout:LPLPIDWriteTextLayout) return HRESULT with Convention=>Stdcall;
CreateGdiCompatibleTextLayout:access function(THIS:LPIDWriteFactory;string:LPWCHAR;stringLength:UINT32;textFormat:LPIDWriteTextFormat;layoutWidth:FLOAT;layoutHeight:FLOAT;pixelsPerDip:FLOAT;transform:LPDWRITE_MATRIX;useGdiNatural:BOOL;textLayout:LPLPIDWriteTextLayout) return HRESULT with Convention=>Stdcall;
CreateEllipsisTrimmingSign:access function(THIS:LPIDWriteFactory;textFormat:LPIDWriteTextFormat;trimmingSign:LPLPIDWriteInlineObject) return HRESULT with Convention=>Stdcall;
CreateTextAnalyzer:access function(THIS:LPIDWriteFactory;textAnalyzer:LPLPIDWriteTextAnalyzer) return HRESULT with Convention=>Stdcall;
CreateNumberSubstitution:access function(THIS:LPIDWriteFactory;substitutionMethod:DWRITE_NUMBER_SUBSTITUTION_METHOD;localeName:LPWCHAR;ignoreUserOverride:BOOL;numberSubstitution:LPLPIDWriteNumberSubstitution) return HRESULT with Convention=>Stdcall;
CreateGlyphRunAnalysis:access function(THIS:LPIDWriteFactory;glyphRun:LPDWRITE_GLYPH_RUN;pixelsPerDip:FLOAT;transform:LPDWRITE_MATRIX;renderingMode:DWRITE_RENDERING_MODE;measuringMode:DWRITE_MEASURING_MODE;baselineOriginX:FLOAT;baselineOriginY:FLOAT;glyphRunAnalysis:LPLPIDWriteGlyphRunAnalysis) return HRESULT with Convention=>Stdcall;
end record;
function DWriteCreateFactory(factoryType:DWRITE_FACTORY_TYPE;iid:REFIID;factory:access LPIUnknown) return HRESULT with Import,Convention=>stdcall,external_name=>"DWriteCreateFactory";
FACILITY_DWRITE : constant := 16#898#;
DWRITE_ERR_BASE : constant := 16#5000#;
use type Interfaces.C.unsigned_short;
function MAKE_DWRITE_HR(severity, code:word) return HRESULT is (win32.winerror.MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code)));
function MAKE_DWRITE_HR_ERR(code:word) return HRESULT is (MAKE_DWRITE_HR(win32.Winerror.SEVERITY_ERROR, code));
DWRITE_E_FILEFORMAT : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#000#);
DWRITE_E_UNEXPECTED : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#001#);
DWRITE_E_NOFONT : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#002#);
DWRITE_E_FILENOTFOUND : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#003#);
DWRITE_E_FILEACCESS : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#004#);
DWRITE_E_FONTCOLLECTIONOBSOLETE : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#005#);
DWRITE_E_ALREADYREGISTERED : constant HRESULT:= MAKE_DWRITE_HR_ERR(16#006#);
--
-- THE END.
--
end DWrite;