ERROR.CXX

/*+---------------------------------------------------------------------------- 

Microsoft Windows Sample Program
Copyright 1994 - 1998 Microsoft Corporation. All rights reserved.

FILE: error.cxx

PURPOSE: Demonstrates how to get the message text for an error code from
the system resources.

FUNCTIONS: PrintErrorMessage - Prints the message text for an error code.

-----------------------------------------------------------------------------*/
#include <windows.h>
#include <stdio.h>

//+---------------------------------------------------------------------------
//
// Function: PrintErrorMessage
//
// Synopsis: Prints the message text for the specified error code.
//
// Notes: PrintErrorMessage uses FormatMessage to get the message
// text from the system resources.
//
//----------------------------------------------------------------------------
void PrintErrorMessage(HRESULT hr)
{
DWORD cMsgLen;
char *pszErrorMessage = 0; /* buffer for message text from system */

/* get the text description for that error number from the system */
cMsgLen = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
0,
(DWORD) hr,
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
(LPTSTR) &pszErrorMessage,
512,
0);

if(cMsgLen > 0)
{
printf("Error %x: %s\n", hr, pszErrorMessage);
LocalFree((HLOCAL) pszErrorMessage);
}
else
{
printf("Error %x\n", hr);
}
}