次の方法で共有


ScriptRecordDigitSubstitution 関数 (usp10.h)

各国語サポート (NLS) のネイティブ数字と数字の置換設定を読み取り、 SCRIPT_DIGITSUBSTITUTE 構造で記録します。 詳細については、「 Digit Shapes」を参照してください。

構文

HRESULT ScriptRecordDigitSubstitution(
  [in]  LCID                   Locale,
  [out] SCRIPT_DIGITSUBSTITUTE *psds
);

パラメーター

[in] Locale

クエリを実行するロケールのロケール識別子。 通常、アプリケーションでは、このパラメーターを LOCALE_USER_DEFAULT に設定する必要があります。 または、特定のロケールを LOCALE_NOUSEROVERRIDE と組み合わせて既定の設定を取得することもできます。

[out] psds

SCRIPT_DIGITSUBSTITUTE構造体へのポインター。 この構造体は、後で ScriptApplyDigitSubstitution に渡すことができます。

戻り値

成功した場合はS_OKを返します。 関数が成功しない場合は、0 以外の HRESULT 値を返します。

エラーの戻り値は次のとおりです。

  • E_INVALIDARG。 Locale パラメーターは、無効なロケールまたはインストールされていないロケールを示します。
  • E_POINTER。 psds パラメーターは NULL に設定されています

解説

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

この関数は、アラビア語とペルシャ語のロケールに対してのみコンテキスト桁の置換をサポートします。 その他のロケールの場合、コンテキスト桁の置換は置換なしにマップされます。

次の例は、この関数を呼び出す一般的な方法を示しています。

SCRIPT_DIGITSUBSTITUTE sds;
ScriptRecordDigitSubstitution(LOCALE_USER_DEFAULT, &sds);

次の例に示すように、すべての項目化で、アプリケーションで結果を使用できます。

SCRIPT_CONTROL sc = {0};
SCRIPT_STATE   ss = {0};
ScriptApplyDigitSubstitution(&sds, &sc, &ss);

パフォーマンス上の理由から、アプリケーションで ScriptRecordDigitSubstitution を頻繁に呼び出さないでください。 この関数では、 ScriptItemize または ScriptStringAnalyse が呼び出されるたびに呼び出すには、かなりのオーバーヘッドが必要です。 代わりに、アプリケーションは SCRIPT_DIGITSUBSTITUTE 構造を保存し、 WM_SETTINGCHANGE メッセージを受信したときにのみ更新できます。 または、専用スレッドで RegNotifyChangeKeyValue 呼び出しが HKCU\コントロール パネル\International のレジストリの変更を示している場合に、アプリケーションで構造体を更新することもできます。

大事な Windows 8 以降: Windows 7 で実行する機能を維持するには、Uniscribe を使用するモジュールで、ライブラリ リストで gdi32.lib の前に Usp10.lib を指定する必要があります。
 

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー usp10.h
Library Usp10.lib
[DLL] Usp10.dll

関連項目

Uniscribe でテキストを表示する

SCRIPT_DIGITSUBSTITUTE

ScriptApplyDigitSubstitution

ScriptItemize

ScriptStringAnalyse

Uniscribe

Uniscribe 関数