Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following example calls ScriptGetProperties to find out if the script of each of several successive items requires glyph shaping.
const SCRIPT_PROPERTIES **g_ppScriptProperties;
int g_iMaxScript;
WCHAR *pwcInChars = L"Unicode string to itemize";
int cInChars = wcslen(pwcInChars);
const int cMaxItems = 20;
SCRIPT_ITEM si[cMaxItems + 1];
SCRIPT_ITEM *pItems = si;
int cItems;
ScriptGetProperties(&g_ppScriptProperties,
&g_iMaxScript);
HRESULT hResult = ScriptItemize(pwcInChars,
cInChars,
cMaxItems,
NULL,
NULL,
pItems,
&cItems);
if (hResult == 0) {
for (int i=0; i<cItems; i++) {
if (g_ppScriptProperties[pItems[i].a.eScript]->fComplex) {
// Item [i] is complex script text
// requiring glyph shaping.
} else {
// The text may be rendered legibly without using Uniscribe.
// However, Uniscribe may still be used as a means of accessing
// font typographic features.
}
}
} else {
// Handle the error.
}
Related topics