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 8以降: Windows 7 で実行する機能を維持するために、Uniscribe を使用するモジュールでは、ライブラリ リストで gdi32.lib の前に Usp10.lib を指定する必要があります。
 

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー usp10.h
Library Usp10.lib
[DLL] Usp10.dll
再頒布可能パッケージ Windows XP Usp10.dll バージョン 1.600 以降

こちらもご覧ください

キャッシュ

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

ScriptShapeOpenType

ScriptSubstituteSingleGlyph

Uniscribe

Uniscribe 関数