# STDConvertSjisCallback

## 定義

  `#include <nitro/std.h>`

      typedef STDResult (*STDConvertSjisCallback) (char *dst, int *dst_len, const u16 *src, int *src_len);

## 引数

dst | 変換したShiftJIS形式の文字を格納するポインタ
dst_len | 変換先バッファに格納できる最大バイトサイズを受け、実際に格納されたバイトサイズを返すためのポインタ
src | Unicode形式の文字列で変換に失敗した位置を指すポインタ
src_len | srcが指す未変換の残りの文字数を受け、実際に変換に要した文字数を返すためのポインタ バイトサイズでない点に注意してください。

## 返り値

変換が成功したら`STD_RESULT_SUCCESS`を、変換に失敗したら`STD_RESULT_CONVERSION_FAILED`を返してください。
引数dst_lenとsrc_lenにはそれぞれ、実際に変換で使用した文字数を格納して返してください。

## 説明

`STD_ConvertStringUnicodeToSjis()`で設定するコールバック関数の型です。
`STD_ConvertStringUnicodeToSjis()`内で変換できない文字を検出するたびに呼び出され、 ここで変換処理を自由に規定することができます。
dstには常に4文字分の配列が保証されており、ここへ変換結果の文字を格納してください。終端を付加する必要はありません。
src_lenには今回の変換によって読み進めるべきsrcの文字数を格納してください。(バイトサイズでない点に注意してください)
srcおよびdstいずれも、変換結果が2文字以上となりつつバッファ終端を越える場合には、変換結果を無視して終端に達したものとみなします。

## 参照

`STDResult
STD_ConvertStringUnicodeToSjis`

## 履歴

2006/08/10 インタフェース変更。
2006/07/24 インタフェース変更。返り値の制限に関する追記。
2006/07/05 初版