ScriptJustify 関数 (usp10.h)

ScriptTextOut 関数に渡されたときにテキストの配置を許可する事前幅テーブルを作成します。

構文

HRESULT ScriptJustify(
  [in]  const SCRIPT_VISATTR *psva,
  [in]  const int            *piAdvance,
  [in]  int                  cGlyphs,
  [in]  int                  iDx,
  [in]  int                  iMinKashida,
  [out] int                  *piJustify
);

パラメーター

[in] psva

SCRIPT_VISATTR構造体を含む、cGlyphs で示される長さの配列へのポインター。 各構造体には、処理する行のグリフのビジュアル属性が含まれています。

[in] piAdvance

ScriptPlace の以前の呼び出しから取得された、cGlyphs で示される長さの拡張幅配列へのポインター。

[in] cGlyphs

psvapiAdvance で示される配列のグリフの数。 このパラメーターは、出力パラメーター piJustify のグリフの数も示します。

[in] iDx

目的の変更の幅 (ピクセル単位)、減少の増加のいずれか。

[in] iMinKashida

生成するカシダ グリフの最小幅。

[out] piJustify

この関数が配列を取得するバッファーへのポインター。 cGlyphs で示される長さであり、両端揃えの事前幅が含まれます。 両端揃えの幅は、"セルの幅" と呼ばれ、不公平な進み幅と区別されます。

戻り値

処理が正常に終了した場合は 0 を返します。 関数が成功しない場合は、0 以外の HRESULT 値を返します。 アプリケーションは、 SUCCEEDED マクロと FAILED マクロを使用して戻り値をテストできます。

注釈

この関数が通常呼び出されるコンテキストについては、「 Uniscribe でテキストを表示 する」を参照してください。

この関数は、多言語の正当な理由の簡単な実装を提供します。 これは、ライン上の各グリフ位置で行う調整の量を確立します。 ScriptShape の呼び出しによって生成されたSCRIPT_VISATTR配列が解釈され、kashida が最も優先されます。 この関数は、使用できる kashida ポイントがない場合に、単語間の間隔を使用します。 使用可能な単語間ポイントがない場合は、文字間の間隔が使用されます。

メモ高度なテキスト フォーマッタは、フォーマッタ固有の機能と、SCRIPT_VISATTR配列内の ScriptShape によって取得された情報を組み合わせることによって、独自のデルタ dx 配列を生成する場合があります。
 
アプリケーションは、ScriptJustify によって生成された両端揃えの事前幅を piJustify パラメーターの ScriptTextOut に渡す必要があります。

ScriptJustify は、各グリフの更新された事前幅を含む両端揃え配列を作成します。 グリフの高度な幅を大きくすると、グリフの右側に余分な幅がレンダリングされ、空白またはアラビア語テキストの場合はカシダがレンダリングされます。

メモ カシダの挿入は、視覚的に正当化するためにグリフの右側に発生します。 Microsoft Word と Microsoft PowerPoint では、この概念が使用されます。 kashida 配置アルゴリズムの変更は、アラビア語の TextOut 理由ハンドラーなど、特定のスクリプトの対応する ScriptTextOut ハンドラーの変更に伴う必要があります。
 
アプリケーションで、両端揃えできないグリフの処理を試みる場合があります。その場合、SCRIPT_VISATTRuJustification メンバーが SCRIPT_JUSTIFY_NONE に設定されます。 この場合、 ScriptJustifypiAdvance で示される入力配列を piJustify で示される出力配列にコピーし、S_FALSEをアプリケーションに返します。
大事なWindows 8以降: Windows 7 で実行する機能を維持するには、Uniscribe を使用するモジュールで、ライブラリ リストで gdi32.lib の前に Usp10.lib を指定する必要があります。
 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー usp10.h
Library Usp10.lib
[DLL] Usp10.dll
再頒布可能パッケージ Windows Me/98/95 のインターネット エクスプローラー 5 以降

こちらもご覧ください

Uniscribe でテキストを表示する

SCRIPT_VISATTR

ScriptPlace

ScriptShape

ScriptTextOut

Uniscribe

Uniscribe 関数