ScriptXtoCP 関数 (usp10.h)

実行の x オフセットから論理文字クラスターの先頭または末尾の端を生成します。

構文

HRESULT ScriptXtoCP(
  [in]  int                   iX,
  [in]  int                   cChars,
  [in]  int                   cGlyphs,
  [in]  const WORD            *pwLogClust,
  [in]  const SCRIPT_VISATTR  *psva,
  [in]  const int             *piAdvance,
  [in]  const SCRIPT_ANALYSIS *psa,
  [out] int                   *piCP,
  [out] int                   *piTrailing
);

パラメーター

[in] iX

psa パラメーターで示されるSCRIPT_ANALYSIS構造体の fLogicalOrder メンバーによって指定された実行の末尾からのオフセット (論理単位)。

[in] cChars

実行中の論理コード ポイントの数。

[in] cGlyphs

実行中のグリフの数。

[in] pwLogClust

論理クラスターの配列へのポインター。

[in] psva

グリフのビジュアル属性を含む SCRIPT_VISATTR 構造体の配列へのポインター。

[in] piAdvance

事前幅の配列へのポインター。

[in] psa

SCRIPT_ANALYSIS構造体へのポインター。 fLogicalOrder メンバーは、実行の先頭エッジを使用する場合は TRUE、末尾のエッジを使用する場合は FALSE を示します。

[out] piCP

この関数が x 座標に対応する文字位置を取得するバッファーへのポインター。

[out] piTrailing

この関数が論理文字の先頭から iX 位置までの距離をコード ポイントで取得するバッファーへのポインター。 この値が 0 の場合、 iX 位置は論理文字の先頭端にあります。 詳細については、「解説」を参照してください。

戻り値

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

注釈

通常、この関数に渡される値は、他の Uniscribe 関数に対する以前の呼び出しの結果です。 詳細については、「 キャレット配置とヒット テストの管理 」を参照してください。

論理文字の先頭と末尾の端は、実行時のテキストの方向 (左から右または右から左) によって決まります。 左から右方向の場合、前端は左端と同じです。 右から左方向の場合、前端は右端です。

キャレットが従来はクラスターの中央 (アラビア語やヘブライ語など) に配置されているスクリプトの場合、取得した文字位置は行内の任意のコード ポイントに対して指定できます。 この場合、 piTrailing パラメーターは 0 または 1 に設定されます。

キャレットが従来クラスターの境界にスナップされているスクリプトの場合、取得された文字位置は常にクラスター内の最初のコード ポイントの位置になります (論理的に見なされます)。 piTrailing パラメーターは、0 またはクラスター内のコード ポイントの数に設定されます。

マウスヒットの適切なキャレット位置は、常に取得された文字位置と ピトレールによって示される距離です。

iX が実行外の位置を示す場合、ScriptXtoCP は、実行の各終了を超える余分に大きな文字があるかのように動作します。 これにより、次の表に示す動作が発生します。

iX 位置 (実行外) 結果
実行前、つまり実行が左から右の場合は iX< 0、実行が右から左の場合 は iX>= 進んだ値の合計 piCP の値は -1 で、piTrailing の値は 0 です
実行後、つまり、実行が左から右の場合は iX>= 進んだ値の合計、実行が右から左の場合は iX< 0。 piCP の値は cChars の値で、piTrailing の値は 1 です
 
大事な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 以降

こちらもご覧ください

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Uniscribe 関数