Su MSDN leggo:


wParam
Specifies the maximum number of TCHARs to be copied, including the terminating null character.

Windows NT/2000/XP:ANSI applications may have the string in the buffer reduced in size (to a minimum of half that of the wParam value) due to conversion from ANSI to Unicode.
mi sa che ti conviene usare TCHAR come tipo invece di char per il tuo buffer perchè penso che per default devi usare i caratteri unicode. Di conseguenza devi racchiudere tutti i literal string con la macro _T() del tipo

TCHAR * pippo = _T("ciao")