ScriptPlaceOpenType 関数 (usp10.h)

ScriptShapeOpenType の出力から OpenType 情報を使用して Unicode 実行のグリフとビジュアル属性を生成します。

構文

HRESULT ScriptPlaceOpenType(
  [in, optional]  HDC                    hdc,
  [in, out]       SCRIPT_CACHE           *psc,
  [in, out]       SCRIPT_ANALYSIS        *psa,
  [in]            OPENTYPE_TAG           tagScript,
  [in]            OPENTYPE_TAG           tagLangSys,
  [in, optional]  int                    *rcRangeChars,
  [in, optional]  TEXTRANGE_PROPERTIES   **rpRangeProperties,
  [in]            int                    cRanges,
  [in]            const WCHAR            *pwcChars,
  [in]            WORD                   *pwLogClust,
  [in]            SCRIPT_CHARPROP        *pCharProps,
  [in]            int                    cChars,
  [in]            const WORD             *pwGlyphs,
  [in]            const SCRIPT_GLYPHPROP *pGlyphProps,
  [in]            int                    cGlyphs,
  [out]           int                    *piAdvance,
  [out]           GOFFSET                *pGoffset,
  [out, optional] ABC                    *pABC
);

パラメーター

[in, optional] hdc

デバイス コンテキストを処理します。 詳細については、「 キャッシュ」を参照してください。

[in, out] psc

スクリプト キャッシュを識別する SCRIPT_CACHE 構造体へのポインター。

[in, out] psa

ScriptItemizeOpenType の以前の呼び出しから取得したSCRIPT_ANALYSIS構造体へのポインター。 この構造体は、生成されたグリフの一覧とそれに関連付けられた幅、および x と y の配置オフセットを制御するシェイプ エンジンを識別します。

または、このパラメーターを NULL に設定して、フィルター処理されていない結果を受け取ることもできます。

[in] tagScript

使用する書き込みシステムの OpenType スクリプト タグを含む OPENTYPE_TAG 構造体。

[in] tagLangSys

書き込みシステムの OpenType 言語タグを含む OPENTYPE_TAG 構造体。

[in, optional] rcRangeChars

各範囲の文字数の配列。 メンバーの数は、 cRanges パラメーターに示されます。 値の合計は cChars の値と等しい必要があります。

[in, optional] rpRangeProperties

各範囲のプロパティを定義する TEXTRANGE_PROPERTIES 構造体の配列。 要素の数は、 cRanges パラメーターによって定義されます。

[in] cRanges

OpenType 機能範囲の数。

[in] pwcChars

実行を含む Unicode 文字の配列へのポインター。 要素の数は、 cRanges パラメーターによって定義されます。

[in] pwLogClust

論理クラスター情報の配列へのポインター。 配列内の各要素は、 pwcChars によって定義された配列内の文字に対応します。 各要素の値は、実行の最初のグリフから、対応する文字を含むクラスター内の最初のグリフへのオフセットです。 SCRIPT_ANALYSIS構造体の fRTL メンバーが TRUE に設定されている場合、pwLogClust 内の要素は配列の読み取り時に減少します。

[in] pCharProps

Unicode 実行の文字プロパティ値の配列へのポインター。

[in] cChars

Unicode 実行の文字数。

[in] pwGlyphs

ScriptShapeOpenType 関数の以前の呼び出しから取得したグリフ バッファーへのポインター。

[in] pGlyphProps

取得する各グリフの属性の配列へのポインター。 値の数は cGlyphs の値と等しくなります。 グリフごとに 1 つのグリフ プロパティがあるため、このパラメーターには cGlyphs で示される要素の数があります。

[in] cGlyphs

グリフ配列バッファー内のグリフの数。

[out] piAdvance

cGlyphs で示される長さの配列へのポインター。この関数は、事前の幅情報を取得します。

[out] pGoffset

この構造体がグリフの結合の x オフセットと y オフセットを取得する GOFFSET 構造体の配列へのポインター。 この配列は 、cGlyphs で示される長さである必要があります。

[out, optional] pABC

この関数が実行全体の ABC 幅を取得する ABC 構造体へのポインター。

戻り値

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

cGlyphs で示される出力バッファーの長さが小さすぎる場合、関数はE_OUTOFMEMORYを返します。 アプリケーションは、より大きなバッファーを使用してもう一度呼び出しを試すことができます。

psc パラメーターで指定されたスクリプト キャッシュにグリフを配置するのに十分な情報が含まれていない場合、関数は E_PENDINGを返し、hdc パラメーターは NULL として渡され、関数が配置プロセスを完了できません。 アプリケーションは、実行用に正しいデバイス コンテキストを設定し、 hdc の適切な値と他のすべてのパラメーターを同じにして、この関数をもう一度呼び出す必要があります。

解説

この関数は、以前の ScriptPlace 関数よりも優先されます。 ScriptPlaceOpenType の利点には、次のようなものがあります。

  • パラメーターは、フォント レイアウト テーブルの OpenType タグに直接対応します。
  • パラメーターは、各文字に適用される特徴を定義します。 入力は範囲に分割され、各範囲には OpenType プロパティが関連付けられています。
項目全体の複合 ABC 幅は、開始位置の左側と、事前幅の合計によって暗黙的に示される長さの右側にグリフが どれだけオーバーハング しているかを識別します。 行の前方向の幅の合計は、正確に abcA+abcB+abcC です。 abcA と abcC の値は、8 ビットで表されるセルの高さの比率として維持されるため、約 +/-1% です。 取得される合計幅 ( piAdvance によって示される abcA+abcB+abcC 値の合計) は、TrueType シェーピング エンジンの解像度に正確です。

fLogicalOrder メンバーが psa パラメーターによって示されるSCRIPT_ANALYSIS構造体に設定されていない限り、すべての配列は視覚的な順序になります。

大事な 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 以降

関連項目

テキストを Uniscribe で表示する

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Uniscribe 関数