Byeong-Sik Jeon wrote: > FormatMessage( > FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, > NULL, error, 0, > - (LPTSTR) &lpMsgBuf, 0, NULL); > + lpMsgBuf, 0, NULL); This patch is wrong. When FORMAT_MESSAGE_ALLOCATE_BUFFER is used FormatMessage() takes a pointer to a pointer.