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 プロパティが関連付けられています。
fLogicalOrder メンバーが psa パラメーターによって示されるSCRIPT_ANALYSIS構造体に設定されていない限り、すべての配列は視覚的な順序になります。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | usp10.h |
Library | Usp10.lib |
[DLL] | Usp10.dll |
再頒布可能パッケージ | Windows XP Usp10.dll バージョン 1.600 以降 |