#ifndef __usp10__
#define __usp10__
#if _MSC_VER > 1000
#pragma once
#endif
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#include <windows.h>
#include <specstrings.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#define SCRIPT_UNDEFINED 0
#define USP_E_SCRIPT_NOT_IN_FONT \
MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,0x200) // Script doesn't exist in font
typedef
void
*
;
_Check_return_ HRESULT WINAPI ScriptFreeCache(
_Inout_updates_(1) _At_(*psc, _Post_null_) SCRIPT_CACHE *psc); //InOut Cache handle
typedef
struct
{
:
16
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
6
;
}
;
typedef
struct
{
:
5
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
2
;
}
;
typedef
struct
{
:
10
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
;
}
;
typedef
struct
{
int
;
;
}
;
_Check_return_ HRESULT WINAPI ScriptItemize(
_In_reads_(cInChars) const WCHAR *pwcInChars, // In Unicode string to be itemized
int
,
int
,
_In_reads_opt_(1) const SCRIPT_CONTROL *psControl, // In Analysis control (optional)
_In_reads_opt_(1) const SCRIPT_STATE *psState, // In Initial bidi algorithm state (optional)
_Out_writes_to_(cMaxItems, *pcItems) SCRIPT_ITEM *pItems, // Out Array to receive itemization
_Out_writes_(1) int *pcItems); // Out Count of items processed (optional)
_Check_return_ HRESULT WINAPI ScriptLayout(
int
,
_In_reads_(cRuns) const BYTE *pbLevel, // In Array of run embedding levels
_Out_writes_all_opt_(cRuns) int *piVisualToLogical, // Out List of run indices in visual order
_Out_writes_all_opt_(cRuns) int *piLogicalToVisual); // Out List of visual run positions
typedef
enum
{
=
0
,
SCRIPT_JUSTIFY_ARABIC_BLANK
=
1
,
=
2
,
=
3
,
=
4
,
=
5
,
=
6
,
SCRIPT_JUSTIFY_ARABIC_NORMAL
=
7
,
SCRIPT_JUSTIFY_ARABIC_KASHIDA
=
8
,
SCRIPT_JUSTIFY_ARABIC_ALEF
=
9
,
=
10
,
=
11
,
=
12
,
SCRIPT_JUSTIFY_ARABIC_BARA
=
13
,
SCRIPT_JUSTIFY_ARABIC_SEEN
=
14
,
SCRIPT_JUSTIFY_ARABIC_SEEN_M
=
15
,
}
;
typedef
struct
{
:
4
;
:
1
;
:
1
;
:
1
;
:
1
;
:
8
;
}
;
_Check_return_ HRESULT WINAPI ScriptShape(
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Cache handle
_In_reads_(cChars) const WCHAR *pwcChars, // In Logical unicode run
int
,
int
,
_Inout_updates_(1) SCRIPT_ANALYSIS *psa, // InOut Result of ScriptItemize (may have fNoGlyphIndex set)
_Out_writes_to_(cMaxGlyphs, *pcGlyphs) WORD *pwOutGlyphs, // Out Output glyph buffer
_Out_writes_all_(cChars) WORD *pwLogClust, // Out Logical clusters
_Out_writes_to_(cMaxGlyphs, *pcGlyphs) SCRIPT_VISATTR *psva, // Out Visual glyph attributes
_Out_writes_(1) int *pcGlyphs); // Out Count of glyphs generated
#ifndef LSDEFS_DEFINED
typedef
struct
{
;
;
}
;
#endif
_Check_return_ HRESULT WINAPI ScriptPlace(
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Cache handle
_In_reads_(cGlyphs) const WORD *pwGlyphs, // In Glyph buffer from prior ScriptShape call
int
,
_In_reads_(cGlyphs) const SCRIPT_VISATTR *psva, // In Visual glyph attributes
_Inout_updates_(1) SCRIPT_ANALYSIS *psa, // InOut Result of ScriptItemize (may have fNoGlyphIndex set)
_Out_writes_all_(cGlyphs) int *piAdvance, // Out Advance wdiths
_Out_writes_all_opt_(cGlyphs) GOFFSET *pGoffset, // Out x,y offset for combining glyph
_Out_writes_(1) ABC *pABC); // Out Composite ABC for the whole run (Optional)
_Check_return_ HRESULT WINAPI ScriptTextOut(
const
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Cache handle
int
,
int
,
,
_In_reads_opt_(1) const RECT *lprc, // In optional clipping/opaquing rectangle
_In_reads_(1) const SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize
_Reserved_ const WCHAR *pwcReserved, // In Reserved (requires NULL)
_Reserved_ int iReserved, // In Reserved (requires 0)
_In_reads_(cGlyphs) const WORD *pwGlyphs, // In Glyph buffer from prior ScriptShape call
int
,
_In_reads_(cGlyphs) const int *piAdvance, // In Advance widths from ScriptPlace
_In_reads_opt_(cGlyphs) const int *piJustify, // In Justified advance widths (optional)
_In_reads_(cGlyphs) const GOFFSET *pGoffset); // In x,y offset for combining glyph
_Check_return_ HRESULT WINAPI ScriptJustify(
_In_reads_(cGlyphs) const SCRIPT_VISATTR *psva, // In Collected visual attributes for entire line
_In_reads_(cGlyphs) const int *piAdvance, // In Advance widths from ScriptPlace
int
,
int
,
int
,
_Out_writes_all_(cGlyphs) int *piJustify); // Out Updated advance widths to pass to ScriptTextOut
typedef
struct
{
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
3
;
}
;
_Check_return_ HRESULT WINAPI ScriptBreak(
_In_reads_(cChars) const WCHAR *pwcChars, // In Logical unicode item
int
,
_In_reads_(1) const SCRIPT_ANALYSIS *psa, // In Result of earlier ScriptItemize call
_Out_writes_all_(cChars) SCRIPT_LOGATTR *psla); // Out Logical character attributes
_Check_return_ HRESULT WINAPI ScriptCPtoX(
int
,
,
int
,
int
,
_In_reads_(cChars) const WORD *pwLogClust, // In Logical clusters
_In_reads_(cGlyphs) const SCRIPT_VISATTR *psva, // In Visual glyph attributes array
_In_reads_(cGlyphs) const int *piAdvance, // In Advance widths
_In_reads_(1) const SCRIPT_ANALYSIS *psa, // In Script analysis from item attributes
int
*
);
_Check_return_ HRESULT WINAPI ScriptXtoCP(
int
,
int
,
int
,
_In_reads_(cChars) const WORD *pwLogClust, // In Logical clusters
_In_reads_(cGlyphs) const SCRIPT_VISATTR *psva, // In Visual glyph attributes
_In_reads_(cGlyphs) const int *piAdvance, // In Advance widths
_In_reads_(1) const SCRIPT_ANALYSIS *psa, // In Script analysis from item attributes
_Out_writes_(1) int *piCP, // Out Resulting character position
_Out_writes_(1) int *piTrailing); // Out Leading or trailing half flag
_Check_return_ HRESULT WINAPI ScriptGetLogicalWidths(
_In_reads_(1) const SCRIPT_ANALYSIS *psa, // In Script analysis from item attributes
int
,
int
,
_In_reads_(cGlyphs) const int *piGlyphWidth, // In Advance widths
_In_reads_(cChars) const WORD *pwLogClust, // In Logical clusters
_In_reads_(cGlyphs) const SCRIPT_VISATTR *psva, // In Visual glyph attributes
_In_reads_(cChars) int *piDx); // Out Logical widths
_Check_return_ HRESULT WINAPI ScriptApplyLogicalWidth(
_In_reads_(cChars) const int *piDx, // In Logical dx array to apply
int
,
int
,
_In_reads_(cChars) const WORD *pwLogClust, // In Logical clusters
_In_reads_(cGlyphs) const SCRIPT_VISATTR *psva, // In Visual attributes from ScriptShape/Place
_In_reads_(cGlyphs) const int *piAdvance, // In Glyph advance widths from ScriptPlace
_In_reads_(1) const SCRIPT_ANALYSIS *psa, // In Script analysis from item attributes
_Inout_updates_opt_(1) ABC *pABC, // InOut Updated item ABC width (optional)
_Out_writes_all_(cGlyphs) int *piJustify); // Out Resulting glyph advance widths for ScriptTextOut
#define SGCM_RTL 0x00000001 // Return mirrored glyph for mirrorable Unicode codepoints
_Check_return_ HRESULT WINAPI ScriptGetCMap(
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Address of Cache handle
_In_reads_(cChars) const WCHAR *pwcInChars, // In Unicode codepoint(s) to look up
int
,
,
_Out_writes_(cChars) WORD *pwOutGlyphs); // Out Array of glyphs, one per input character
_Check_return_ HRESULT WINAPI ScriptGetGlyphABCWidth(
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Address of Cache handle
,
_Out_writes_(1) ABC *pABC); // Out ABC width
typedef
struct
{
:
16
;
:
1
;
:
1
;
:
1
;
:
1
;
:
8
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
:
1
;
}
;
_Check_return_ HRESULT WINAPI ScriptGetProperties(
_Outptr_result_buffer_(*piNumScripts) const SCRIPT_PROPERTIES ***ppSp, // Out Receives pointer to table of pointers to properties indexed by script
_Out_ int *piNumScripts); // Out Receives number of scripts (valid values are 0 through NumScripts-1)
typedef
struct
{
int
;
;
;
;
;
int
;
}
;
_Check_return_ HRESULT WINAPI ScriptGetFontProperties(
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Address of Cache handle
_Out_writes_(1) SCRIPT_FONTPROPERTIES *sfp); // Out Receives properties for this font
_Check_return_ HRESULT WINAPI ScriptCacheGetHeight(
,
_Inout_updates_(1) SCRIPT_CACHE *psc, // InOut Address of Cache handle
_Out_writes_(1) long *tmHeight); // Out Receives font height in pixels
#define SSA_PASSWORD 0x00000001 // Input string contains a single character to be duplicated iLength times
#define SSA_TAB 0x00000002 // Expand tabs
#define SSA_CLIP 0x00000004 // Clip string at iReqWidth
#define SSA_FIT 0x00000008 // Justify string to iReqWidth
#define SSA_DZWG 0x00000010 // Provide representation glyphs for control characters
#define SSA_FALLBACK 0x00000020 // Use fallback fonts
#define SSA_BREAK 0x00000040 // Return break flags (character and word stops)
#define SSA_GLYPHS 0x00000080 // Generate glyphs, positions and attributes
#define SSA_RTL 0x00000100 // Base embedding level 1
#define SSA_GCP 0x00000200 // Return missing glyphs and LogCLust with GetCharacterPlacement conventions
#define SSA_HOTKEY 0x00000400 // Replace '&' with underline on subsequent codepoint
#define SSA_METAFILE 0x00000800 // Write items with ExtTextOutW Unicode calls, not glyphs
#define SSA_LINK 0x00001000 // Apply FE font linking/association to non-complex text
#define SSA_HIDEHOTKEY 0x00002000 // Remove first '&' from displayed string
#define SSA_HOTKEYONLY 0x00002400 // Display underline only.
#define SSA_FULLMEASURE 0x04000000 // Internal - calculate full width and out the number of chars can fit in iReqWidth.
#define SSA_LPKANSIFALLBACK 0x08000000 // Internal - enable FallBack for all LPK Ansi calls Except BiDi hDC calls
#define SSA_PIDX 0x10000000 // Internal
#define SSA_LAYOUTRTL 0x20000000 // Internal - Used when DC is mirrored
#define SSA_DONTGLYPH 0x40000000 // Internal - Used only by GDI during metafiling - Use ExtTextOutA for positioning
#define SSA_NOKASHIDA 0x80000000 // Internal - Used by GCP to justify the non Arabic glyphs only.
typedef
struct
{
int
;
int
;
int
*
;
int
;
}
;
typedef
void
*
;
_Check_return_ HRESULT WINAPI ScriptStringAnalyse(
,
const
void
*
,
int
,
int
,
int
,
,
int
,
_In_reads_opt_(1) SCRIPT_CONTROL *psControl, //In Analysis control (optional)
_In_reads_opt_(1) SCRIPT_STATE *psState, //In Analysis initial state (optional)
_In_reads_opt_(cString) const int *piDx, //In Requested logical dx array
_In_reads_opt_(1) SCRIPT_TABDEF *pTabdef, //In Tab positions (optional)
const
*
,
_Outptr_result_buffer_(1) SCRIPT_STRING_ANALYSIS *pssa); //Out Analysis of string
_Check_return_ HRESULT WINAPI ScriptStringFree(
_Inout_updates_(1) SCRIPT_STRING_ANALYSIS *pssa); //InOut Address of pointer to analysis
const SIZE* WINAPI ScriptString_pSize(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa);
const int* WINAPI ScriptString_pcOutChars(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa);
const SCRIPT_LOGATTR* WINAPI ScriptString_pLogAttr(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa);
_Check_return_ HRESULT WINAPI ScriptStringGetOrder(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa,
*
);
_Check_return_ HRESULT WINAPI ScriptStringCPtoX(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa, //In String analysis
int
,
,
_Out_writes_(1) int *pX); //Out Corresponding x offset
_Check_return_ HRESULT WINAPI ScriptStringXtoCP(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa, // In
int
,
_Out_writes_(1) int *piCh, // Out
_Out_writes_(1) int *piTrailing); // Out
_Check_return_ HRESULT WINAPI ScriptStringGetLogicalWidths(
__stdcall
ScriptStringGetLogicalWidths
(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa,
int
*
);
_Check_return_ HRESULT WINAPI ScriptStringValidate(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa);
_Check_return_ HRESULT WINAPI ScriptStringOut(
_In_reads_(1) SCRIPT_STRING_ANALYSIS ssa, //In Analysis with glyphs
int
,
int
,
,
_In_reads_opt_(1) const RECT *prc, //In Clipping rectangle (iff ETO_CLIPPED)
int
,
int
,
);
#define SIC_COMPLEX 1 // Treat complex script letters as complex
#define SIC_ASCIIDIGIT 2 // Treat digits U+0030 through U+0039 as complex
#define SIC_NEUTRAL 4 // Treat neutrals as complex
_Check_return_ HRESULT WINAPI ScriptIsComplex(
_In_reads_(cInChars) const WCHAR *pwcInChars, //In String to be tested
int
,
);
typedef
struct
tag_SCRIPT_DIGITSUBSTITUTE
{
:
16
;
:
16
;
:
8
;
;
}
;
_Check_return_ HRESULT WINAPI ScriptRecordDigitSubstitution(
__stdcall
ScriptRecordDigitSubstitution
(
,
_Out_writes_(1) SCRIPT_DIGITSUBSTITUTE *psds); // Out Digit substitution settings
#define SCRIPT_DIGITSUBSTITUTE_CONTEXT 0 // Substitute to match preceeding letters
#define SCRIPT_DIGITSUBSTITUTE_NONE 1 // No substitution
#define SCRIPT_DIGITSUBSTITUTE_NATIONAL 2 // Substitute with official national digits
#define SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3 // Substitute with traditional digits of the locale
_Check_return_ HRESULT WINAPI ScriptApplyDigitSubstitution(
__stdcall
ScriptApplyDigitSubstitution
(
_In_reads_(1) const SCRIPT_DIGITSUBSTITUTE *psds, // In Digit substitution settings
_Out_writes_(1) SCRIPT_CONTROL *psc, // Out Script control structure
_Out_writes_(1) SCRIPT_STATE *pss); // Out Script state structure
#ifndef UNISCRIBE_OPENTYPE
#if (_WIN32_WINNT >= 0x0600)
#define UNISCRIBE_OPENTYPE 0x0100
#endif
#endif
#if (UNISCRIBE_OPENTYPE >= 0x0100)
typedef
;
#define SCRIPT_TAG_UNKNOWN 0x00000000
typedef
struct
{
;
;
}
;
typedef
struct
{
*;
int
;
} ;
typedef
struct
{
:
1
;
:
15
;
}
;
typedef
struct
{
;
;
}
;
_Check_return_ HRESULT WINAPI ScriptShapeOpenType(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_Inout_ SCRIPT_ANALYSIS *psa, // InOut Result of ScriptItemize (may have fNoGlyphIndex set)
_In_ OPENTYPE_TAG tagScript, // In Font script tag for shaping
_In_ OPENTYPE_TAG tagLangSys, // In Font language system tag for shaping
_In_reads_opt_(cRanges) int *rcRangeChars, // In Array of number of characters per range
_In_reads_opt_(cRanges) TEXTRANGE_PROPERTIES **rpRangeProperties, // In Array of range properties (for each range)
_In_ int cRanges, // In Number of ranges
_In_reads_(cChars) const WCHAR *pwcChars, // In Logical unicode run
_In_ int cChars, // In Length of unicode run
_In_ int cMaxGlyphs, // In Max glyphs to generate
_Out_writes_all_(cChars) WORD *pwLogClust, // Out Logical clusters
_Out_writes_all_(cChars) SCRIPT_CHARPROP *pCharProps, // Out Output buffer for character properties
_Out_writes_to_(cMaxGlyphs, *pcGlyphs) WORD *pwOutGlyphs, // Out Output glyph buffer
_Out_writes_to_(cMaxGlyphs, *pcGlyphs) SCRIPT_GLYPHPROP *pOutGlyphProps, // Out Visual glyph attributes
_Out_ int *pcGlyphs); // Out Count of glyphs generated
_Check_return_ HRESULT WINAPI ScriptPlaceOpenType(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_Inout_ SCRIPT_ANALYSIS *psa, // InOut Result of ScriptItemize (may have fNoGlyphIndex set)
_In_ OPENTYPE_TAG tagScript, // In Font script tag for shaping
_In_ OPENTYPE_TAG tagLangSys, // In Font language system tag for shaping
_In_reads_opt_(cRanges) int *rcRangeChars, // In Array of number of characters per range
_In_reads_opt_(cRanges) TEXTRANGE_PROPERTIES **rpRangeProperties, // In Array of range properties (for each range)
_In_ int cRanges, // In Number of ranges
_In_reads_(cChars) const WCHAR *pwcChars, // In Logical unicode run
_In_reads_(cChars) WORD *pwLogClust, // In Logical clusters
_In_reads_(cChars) SCRIPT_CHARPROP *pCharProps, // In Output buffer for character properties
_In_ int cChars, // In Length of unicode run
_In_reads_(cGlyphs) const WORD *pwGlyphs, // In Glyph buffer from prior ScriptShape call
_In_reads_(cGlyphs) const SCRIPT_GLYPHPROP *pGlyphProps, // In Glyph properties
_In_ int cGlyphs, // In Number of glyphs
_Out_writes_all_(cGlyphs) int *piAdvance, // Out Advance widths
_Out_writes_all_(cGlyphs) GOFFSET *pGoffset, // Out x,y offset for combining glyph
_Out_opt_ ABC *pABC); // Out Composite ABC for the whole run (Optional)
_Check_return_ HRESULT WINAPI ScriptItemizeOpenType(
_In_reads_(cInChars) const WCHAR *pwcInChars, // In Unicode string to be itemized
_In_ int cInChars, // In Codepoint count to itemize
_In_ int cMaxItems, // In Max length of itemization array
_In_opt_ const SCRIPT_CONTROL *psControl, // In Analysis control (optional)
_In_opt_ const SCRIPT_STATE *psState, // In Initial bidi algorithm state (optional)
_Out_writes_to_(cMaxItems, *pcItems) SCRIPT_ITEM *pItems, // Out Array to receive itemization
_Out_writes_to_(cMaxItems, *pcItems) OPENTYPE_TAG *pScriptTags, // Out Array of script tags - parallel to items
_Out_ int *pcItems); // Out Count of items processed (optional)
_Check_return_ HRESULT WINAPI ScriptGetFontScriptTags(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_In_opt_ SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize (can be NULL)
_In_ int cMaxTags, // In Length of pScriptTags array
_Out_writes_to_(cMaxTags, *pcTags) OPENTYPE_TAG *pScriptTags, // Out: list of script tags in the font
_Out_ int *pcTags // Out: Number of tags returned
);
_Check_return_ HRESULT WINAPI ScriptGetFontLanguageTags(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_In_opt_ SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize (can be NULL)
_In_ OPENTYPE_TAG tagScript, // In Font script tag
_In_ int cMaxTags, // In Length of pLangsys tags array
_Out_writes_to_(cMaxTags, *pcTags) OPENTYPE_TAG *pLangsysTags, // Out: list of Langsys tags in the font
_Out_ int *pcTags // Out: Number of tags returned
);
_Check_return_ HRESULT WINAPI ScriptGetFontFeatureTags(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_In_opt_ SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize (can be NULL)
_In_ OPENTYPE_TAG tagScript, // In Font script tag
_In_ OPENTYPE_TAG tagLangSys, // In Font language system tag for shaping
_In_ int cMaxTags, // In Length of pLangsys tags array
_Out_writes_to_(cMaxTags, *pcTags) OPENTYPE_TAG *pFeatureTags, // Out: list of feature tags in the font
_Out_ int *pcTags // Out: Number of tags returned
);
_Check_return_ HRESULT WINAPI ScriptGetFontAlternateGlyphs(
__stdcall
ScriptGetFontAlternateGlyphs
(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_In_opt_ SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize (can be NULL)
_In_ OPENTYPE_TAG tagScript, // In Font script tag
_In_ OPENTYPE_TAG tagLangSys, // In Font language system tag for shaping
_In_ OPENTYPE_TAG tagFeature, // In Feature tag to test for alternates
_In_ WORD wGlyphId, // In Original glyph
_In_ int cMaxAlternates, // In Length of pAlternateGlyphs tags array
_Out_writes_to_(cMaxAlternates, *pcAlternates) WORD *pAlternateGlyphs, // Out: list of feature tags in the font
_Out_ int *pcAlternates // Out: Number of alternates returned
);
_Check_return_ HRESULT WINAPI ScriptSubstituteSingleGlyph(
__stdcall
ScriptSubstituteSingleGlyph
(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_In_opt_ SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize (can be NULL)
_In_ OPENTYPE_TAG tagScript, // In Font script tag
_In_ OPENTYPE_TAG tagLangSys, // In Font language system tag for shaping
_In_ OPENTYPE_TAG tagFeature, // In Feature tag to test for alternates
_In_ LONG lParameter, // In Feature parameter
_In_ WORD wGlyphId, // In Original glyph id
_Out_ WORD *pwOutGlyphId // Out Substituted glyph id
);
_Check_return_ HRESULT WINAPI ScriptPositionSingleGlyph(
__stdcall
ScriptPositionSingleGlyph
(
_In_opt_ HDC hdc, // In Optional (see under caching)
_Inout_ SCRIPT_CACHE *psc, // InOut Cache handle
_In_opt_ SCRIPT_ANALYSIS *psa, // In Result of ScriptItemize (can be NULL)
_In_ OPENTYPE_TAG tagScript, // In Font script tag
_In_ OPENTYPE_TAG tagLangSys, // In Font language system tag for shaping
_In_ OPENTYPE_TAG tagFeature, // In Feature tag to test for alternates
_In_ LONG lParameter, // In Feature parameter
_In_ WORD wGlyphId, // In Glyph id to be moved
_In_ int iAdvance, // In Original glyph advance width
_In_ GOFFSET GOffset, // In Original glyph offset
_Out_ int *piOutAdvance, // Out Adjusted advance width
_Out_ GOFFSET *pOutGoffset // Out Adjusted offset
);
#endif // (UNISCRIBE_OPENTYPE >= 0x0100)
#ifdef __cplusplus
}
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif