mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.2 KiB
97 lines
3.2 KiB
/*****************************************************************************
|
|
|
|
Natural Language Group Common Library
|
|
|
|
CMN_OutputDebugStringW.c -
|
|
DEBUG ONLY
|
|
local helper functions that puts specific error message to debug output
|
|
for errors on library functions
|
|
|
|
History:
|
|
DougP 9/9/97 Created
|
|
|
|
The end user license agreement (EULA) for CSAPI, CHAPI, or CTAPI covers this source file. Do not disclose it to third parties.
|
|
|
|
You are not entitled to any support or assistance from Microsoft Corporation regarding your use of this program.
|
|
|
|
© 1997-1998 Microsoft Corporation. All rights reserved.
|
|
******************************************************************************/
|
|
|
|
#include "precomp.h"
|
|
|
|
#if defined(_DEBUG)
|
|
#undef CMN_OutputDebugStringW
|
|
|
|
VOID
|
|
WINAPI
|
|
CMN_OutputDebugStringW(const WCHAR * pwzOutputString)
|
|
{
|
|
#if defined(_M_IX86)
|
|
char szOutputString[MAX_PATH];
|
|
BOOL fcharerr;
|
|
char chdef = '?';
|
|
int res = WideCharToMultiByte (CP_ACP, 0, pwzOutputString,
|
|
-1,
|
|
szOutputString, sizeof(szOutputString), &chdef, &fcharerr);
|
|
OutputDebugStringA(szOutputString);
|
|
#else
|
|
OutputDebugStringW(pwzOutputString);
|
|
#endif
|
|
}
|
|
|
|
void WINAPI CMN_OutputSystemErrA(const char *pszMsg, const char *pszComponent)
|
|
{
|
|
CMN_OutputErrA(GetLastError(), pszMsg, pszComponent);
|
|
}
|
|
|
|
void WINAPI CMN_OutputErrA(DWORD dwErr, const char *pszMsg, const char *pszComponent)
|
|
{
|
|
char szMsgBuf[256];
|
|
OutputDebugStringA(pszMsg);
|
|
OutputDebugStringA(" \"");
|
|
if (pszComponent)
|
|
OutputDebugStringA(pszComponent);
|
|
OutputDebugStringA("\": ");
|
|
if (!FormatMessageA(
|
|
FORMAT_MESSAGE_FROM_SYSTEM, // source and processing options
|
|
NULL, // pointer to message source
|
|
dwErr, // requested message identifier
|
|
0, // language identifier for requested message
|
|
szMsgBuf, // pointer to message buffer
|
|
sizeof(szMsgBuf)/sizeof(szMsgBuf[0]), // maximum size of message buffer
|
|
0 // address of array of message inserts
|
|
))
|
|
OutputDebugStringA("Couldn't decode err msg");
|
|
else
|
|
OutputDebugStringA(szMsgBuf);
|
|
OutputDebugStringA("\r\n");
|
|
}
|
|
|
|
void WINAPI CMN_OutputSystemErrW(const WCHAR *pwzMsg, const WCHAR *pwzComponent)
|
|
{
|
|
CMN_OutputErrW(GetLastError(), pwzMsg, pwzComponent);
|
|
}
|
|
|
|
void WINAPI CMN_OutputErrW(DWORD dwErr, const WCHAR *pwzMsg, const WCHAR *pwzComponent)
|
|
{
|
|
char wcMsgBuf[256];
|
|
CMN_OutputDebugStringW(pwzMsg);
|
|
OutputDebugStringA(" \"");
|
|
if (pwzComponent)
|
|
CMN_OutputDebugStringW(pwzComponent);
|
|
OutputDebugStringA("\": ");
|
|
if (!FormatMessageA(
|
|
FORMAT_MESSAGE_FROM_SYSTEM, // source and processing options
|
|
NULL, // pointer to message source
|
|
dwErr, // requested message identifier
|
|
0, // language identifier for requested message
|
|
wcMsgBuf, // pointer to message buffer
|
|
sizeof(wcMsgBuf)/sizeof(wcMsgBuf[0]), // maximum size of message buffer
|
|
0 // address of array of message inserts
|
|
))
|
|
OutputDebugStringA("Couldn't decode err msg");
|
|
else
|
|
OutputDebugStringA(wcMsgBuf);
|
|
OutputDebugStringA("\r\n");
|
|
}
|
|
#endif // _DEBUG
|