というか GetTempPath の戻り値の仕様は、いったいどうしたことだ。

戻り値
関数が成功すると、バッファに書き込まれた文字数(終端の NULL 文字を除く)が TCHAR 単位で返ります。戻り値が nBufferLength より大きかった場合、その戻り値は、パスを格納するために必要なバッファのサイズ(終端の NULL 文字を含む)を表しています。
関数が失敗すると、0 が返ります。
GetTempPath 関数

(補足) nBufferLength は GetTempPath 関数に渡す DWROD 型の第一引数の名前です。

[問題]: Win32 API GetTempPath は nBufferLength を返すでしょうか?