変数の型自体を変えて、

LPTSTR lpszErrMsg;
(略)
FormatMessage(
   FORMAT_MESSAGE_ALLOCATE_BUFFER |
   FORMAT_MESSAGE_IGNORE_INSERTS |
   FORMAT_MESSAGE_FROM_SYSTEM ,
   NULL , GetLastError() , 0 , lpszErrMsg , 0 , NULL
);
(略)

こうしました。でもまだ駄目です。どうすればいいですか?