GetNumberFormat

https://msdn.microsoft.com/ja-jp/library/ms776337.aspx

指定した数字文字列を、指定したロケール用にカスタマイズされた数字文字列として書式化します。

int GetNumberFormat(
  LCID Locale,                // 数字文字列の書式化に使うロケール
  DWORD dwFlags,              // 関数の動作を制御するビットフラグ
  LPCTSTR lpValue,            // 書式化する数字文字列へのポインタ
  CONST NUMBERFMT *lpFormat,  // 書式化情報が入った構造体へのポインタ
  LPTSTR lpNumberStr,         // 書式化した数字文字列を受け取るバッファへのポインタ
  int cchNumber               // バッファのサイズ
);

パラメータ

Locale
数字文字列の書式化に使うロケールを指定します。NULL を指定すると、現在のロケールの数字形式に従って書式化が行われます。NULL 以外を指定すると、NUMBERFMT 構造体で指定されない書式化情報(ロケールのマイナス符号の文字列値など)に限り、ロケールを使って書式化が行われます。

MAKELCID マクロによって作成される識別子、または次のいずれかの定数を指定します。

LOCALE_SYSTEM_DEFAULT既定のシステムロケール
LOCALE_USER_DEFAULT既定のユーザーロケール

dwFlags
関数の動作を制御するビットフラグをセットします。lpFormat パラメータに NULL 以外を指定するときは、このパラメータに 0 を指定してください。

lpFormat パラメータに NULL を指定するときは、LOCALE_NOUSEROVERRIDE フラグをセットし、指定したロケールのシステム既定数字形式を使って書式化できます。また、このパラメータに 0 を指定すると、ロケールの既定数字形式にユーザーが上書きした内容を使って書式化されます。

lpValue
書式化する数字を表す、NULL で終わる文字列へのポインタを指定します。

次の文字が使えます。

  • 0 から 9 までの文字

  • 浮動小数点数の場合は小数点

  • 負の数の場合は先頭の文字位置にマイナス符号

他の文字はすべて無効です。lpValue パラメータが指す文字列がこの規則に従っていないと、関数はエラーを返します。

lpFormat
数字の書式化情報が入った NUMBERFMT 構造体へのポインタを指定します。lpFormat パラメータが指す構造体のすべてのメンバに、該当する値を入れておきます。

lpFormat パラメータに NULL を指定すると、指定したロケールの数字形式が使われます。

lpNumberStr
書式化した数字文字列を受け取るバッファへのポインタを渡します。
cchNumber
lpNumberStr パラメータが指すバッファのサイズを、バイト単位(ANSI 版)、または文字単位(Unicode 版)で指定します。0 を指定すると、書式化した文字列を格納するのに必要なバイト数、または文字数が返ります。この場合、lpNumberStr パラメータが指すバッファは使われません。

戻り値

関数が成功すると、lpNumberStr パラメータが指すバッファに書き込まれたバイト数(ANSI 版)、または文字数(Unicode 版)が返ります。cchNumber パラメータに 0 を指定したときは、書式化した数字文字列を格納するのに必要なバイト数、または文字数が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。GetLastError 関数は、次のいずれかのエラーコードを返します。

ERROR_INSUFFICIENT_BUFFER
ERROR_INVALID FLAGS
ERROR_INVALID_PARAMETER

解説

Windows CE:Locale パラメータは無視され、既定のシステムロケールが常に使われます。Windows CE の将来のバージョンとの互換性を保証するため、Locale パラメータには LOCALE_SYSTEM_DEFAULT を指定してください。
dwFlags パラメータのフラグはサポートされません。0 を指定してください。

対応情報

  Windows NT/2000:Windows NT 3.5 以降
  Windows 95/98:Windows 95 以降
  ヘッダー:winnls.h 内で宣言
  インポートライブラリ:kernel32.lib を使用
  Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

GetCurrencyFormat

表示: