次の方法で共有


ScriptGetCMap 関数 (usp10.h)

TrueType cmap テーブルまたは古いスタイルのフォントに実装されている標準の cmap テーブルに従って、文字列内の Unicode 文字のグリフ インデックスを取得します。

構文

HRESULT ScriptGetCMap(
  [in]      HDC          hdc,
  [in, out] SCRIPT_CACHE *psc,
  [in]      const WCHAR  *pwcInChars,
  [in]      int          cChars,
  [in]      DWORD        dwFlags,
  [out]     WORD         *pwOutGlyphs
);

パラメーター

[in] hdc

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

[in, out] psc

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

[in] pwcInChars

Unicode 文字の文字列へのポインター。

[in] cChars

pwcInChars で示される文字列内の Unicode 文字の数。

[in] dwFlags

グリフの特別な処理を指定するフラグ。 既定では、グリフは特別な処理なしで論理的な順序で提供されます。 このパラメーターには、次の値を指定できます。

意味
SGCM_RTL
pwOutGlyphs によって示されるグリフ配列には、ミラー化された同等のグリフのミラー化されたグリフが含まれている必要があります。

[out] pwOutGlyphs

関数がグリフ インデックスの配列を取得するバッファーへのポインター。 このバッファーの長さは、 pwcInChars によって示される入力バッファーと同じ長さにする必要があります。 各コード ポイントは、1 つのグリフにマップされます。

戻り値

すべての Unicode コード ポイントがフォントに存在する場合は、S_OKを返します。 関数は、成功しない場合は、以下に示す 0 以外の HRESULT 値のいずれかを返します。

戻り値 説明
E_HANDLE フォントまたはオペレーティング システムはグリフ インデックスをサポートしていません。
S_FALSE 一部の Unicode コード ポイントは、既定のグリフにマップされていました。

注釈

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

この関数を使用すると、選択したフォントでサポートされている実行内の文字を決定できます。 アプリケーションは、取得したグリフ バッファーをスキャンし、既定のグリフを探して、使用できない文字を特定できます。 アプリケーションでは、 ScriptGetFontProperties を呼び出して、選択したフォントの既定のグリフ インデックスを決定する必要があります。

この関数の戻り値は、不足しているグリフが存在していることを示します。

メモ 関数は、入力配列と出力配列内の要素の間に 1 対 1 の関係があると想定します。 ただし、関数は UTF-16 サロゲート ペアに対してこの関係をサポートしていません。 サロゲート ペアの場合、関数は補助プレーン文字のグリフ インデックスを取得しません。 同様に、この関数は Unicode Variation-Selector (VS) シーケンスをサポートしていません。各シーケンスは、Unicode グラフィック文字の後に、そのグラフィック文字の特定のグリフ表現を選択するための VARIATION SELECTOR 文字のセットの 1 つで構成されます。 VS シーケンスの場合、関数は、VS シーケンスの特定のグリフのグリフ インデックスではなく、2 文字の cmap によってマップされた既定のグリフのグリフ インデックスを取得します。
 
一部のコード ポイントは、グリフの組み合わせと 1 つのグリフ (00C9 など) によってレンダリングできます。ラテン大文字 E と急性。 この場合、フォントで大文字の E グリフと急性グリフがサポートされているが、00C9 のグリフが 1 つではない場合、 ScriptGetCMap は 00C9 がサポートされていないことを示します。 これらの種類のコード ポイントを含む文字列のフォント サポートを決定するために、アプリケーションは ScriptShape を呼び出すことができます。 関数がS_OKを返す場合、アプリケーションは不足しているグリフの出力をチェックする必要があります。
大事な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_CACHE

ScriptGetFontProperties

ScriptShape

Uniscribe

Uniscribe 関数