ScriptGetFontAlternateGlyphs 関数 (usp10.h)
指定した OpenType 機能を介してアクセスできる、指定した文字の代替グリフの一覧を取得します。
構文
HRESULT ScriptGetFontAlternateGlyphs(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, optional] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in] OPENTYPE_TAG tagFeature,
[in] WORD wGlyphId,
[in] int cMaxAlternates,
[out] WORD *pAlternateGlyphs,
[out] int *pcAlternates
);
パラメーター
[in, optional] hdc
デバイス コンテキストを処理します。 詳細については、「 キャッシュ」を参照してください。
[in, out] psc
スクリプト キャッシュを定義 するSCRIPT_CACHE 構造体へのポインター。
[in, optional] psa
ScriptItemizeOpenType の以前の呼び出しから取得したSCRIPT_ANALYSIS構造体へのポインター。 このパラメーターはシェイプ エンジンを識別するため、代替グリフの配列を正しいスコープで作成できます。
または、このパラメーターを NULL に設定して、フィルター処理されていない結果を受け取ることもできます。
[in] tagScript
代替グリフに関連付けられているスクリプト タグを定義する OPENTYPE_TAG 構造体。
[in] tagLangSys
代替グリフに関連付けられている言語タグを定義する OPENTYPE_TAG 構造体。
[in] tagFeature
代替グリフに関連付けられている特徴タグを定義する OPENTYPE_TAG 構造体。
[in] wGlyphId
文字マップ テーブルからマップされた元のグリフの識別子。
[in] cMaxAlternates
pAlternateGlyphs で指定された配列の長さ。
[out] pAlternateGlyphs
この関数がグリフ識別子の配列を取得するバッファーへのポインター。 配列には元のグリフが含まれます。その後に代替グリフが続きます。 最初の要素は常に元のグリフです。 代替フォームは、配列内のインデックスによって識別されます。 インデックスは、1 より大きく、 pcAlternates の値より小さい値です。
ユーザーがユーザー インターフェイスから代替フォームを選択すると、代替グリフが対応する文字に適用され、レンダリングが再フォーマットされます。
[out] pcAlternates
pAlternateGlyphs で指定された配列内の要素の数へのポインター。
戻り値
処理が正常に終了した場合は 0 を返します。 関数は、成功しない場合は 0 以外の HRESULT 値を返します。 アプリケーションでは、 SUCCEEDED マクロと FAILED マクロを使用して戻り値をテストできます。
代替グリフの数が cMaxAlternates の値を超えると、関数は E_OUTOFMEMORYで失敗します。 アプリケーションは、より大きなバッファーを使用してもう一度呼び出しを試すことができます。
注釈
代替グリフを使用する場合、アプリケーションは最初にフィーチャー タグを適用せずに元のグリフの形状を変更してから、代替グリフを選択します。 元のグリフは、基本グリフとして確立されます。 別の代替が必要な場合、元のグリフは、対応する代替リストと一致する情報を提供します。
代替グリフが基本グリフとして使用されている場合、一致する出力リストは見つかりません。 ユーザー インターフェイスは、別の代替を選択する機能を提供せずに、選択した最終フォームを使用します。
ScriptGetFontAlternateGlyphs の操作は、Script MismatchSingleGlyph によってエミュレートできます。 アプリケーションでは、グリフが置き換えられている間に、パラメーターを 1 つずつ試す必要があります。
Uniscribe を使用してフォントを整形する場合、 ScriptShapeOpenType は古い ScriptShape 関数よりも優先されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | usp10.h |
Library | Usp10.lib |
[DLL] | Usp10.dll |
再頒布可能パッケージ | Windows XP Usp10.dll バージョン 1.600 以降 |