WideCharToMultiByte

UTF-16(ワイド文字)文字列を新しい文字列にマップする。

WideCharToMultiByte CodePage, dwFlags, lpWideCharStr, cchWideChar, lpMultiByteStr, cbMultiByte, lpDefaultChar, lpUsedDefaultChar

CodePage : [int] 変換に使用するコードページ。
dwFlags : [int] 
lpWideCharStr : [wstr] 変換する Unicode 文字列へのポインタ。
cchWideChar : [int] lpWideCharStr が示す文字列のサイズ(文字単位)。NULL 終端文字列なら -1 を指定可能。0 なら関数は失敗する。-1 なら終端 NULL を含む全入力を処理し、結果も終端 NULL を含む。
lpMultiByteStr : [str] 変換された文字列を受け取るバッファへのポインタ。
cbMultiByte : [int] lpMultiByteStr が示すバッファのサイズ(バイト単位)。0 なら必要なバッファサイズ(バイト単位、終端 NULL を含む)を返し lpMultiByteStr を使用しない。
lpDefaultChar : [str] 指定コードページで表現できない文字がある場合に使用する文字へのポインタ。NULL でシステム既定値が使われる。CP_UTF7 および CP_UTF8 では NULL にしなければならない。
lpUsedDefaultChar : [var] 変換で既定文字が使われたかを示すフラグへのポインタ。元文字列の 1 つ以上の文字が指定コードページで表現できない場合 TRUE。NULL 可。CP_UTF7/CP_UTF8 では NULL にしなければならない。

(プラグイン / モジュール : kernel32.dll)

解説

UTF-16(ワイド文字)文字列を新しい文字列にマップする。

[戻り値]
成功した場合、戻り値は lpMultiByteStr に書き込まれたバイト数。成功して cbMultiByte が 0
の場合、戻り値は必要なバッファサイズ(バイト単位)。失敗した場合は 0。
(以下省略)

[備考]
lpMultiByteStr と lpWideCharStr は同じポインタであってはならない。入力長が明示的に終端 NULL
なしで指定された場合、出力は NULL 終端されない。-1 を渡すか終端 NULL を明示的にカウントすることで NULL
終端にできる。cbMultiByte が cchWideChar より小さい場合、cbMultiByte
で指定されたバイト数が書き込まれる。ただし CodePage が CP_SYMBOL
の場合は何も書き込まれない。lpDefaultChar と lpUsedDefaultChar をともに NULL
にすると最も効率的に動作する。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs