Я думаю, вы хотите что-то вроде этого:
DWORD dwLastError = ::GetLastError();
TCHAR lpBuffer[256] = _T("?");
if(dwLastError != 0) // Don't want to see a "operation done successfully" error ;-)
::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, // It´s a system error
NULL, // No string to be formatted needed
dwLastError, // Hey Windows: Please explain this error!
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), // Do it in the standard language
lpBuffer, // Put the message here
STR_ELEMS(lpBuffer)-1, // Number of bytes to store the message
NULL);
Также см .: http://msdn.microsoft.com/en-us/library/ms679351(VS.85).aspx