/** * @brief Internal function for writing the messages. * @param [in] level Message's level. * @param [in] pszFormat Message's format specifier. * @param [in] arglist Message argumets to format string. */ void CLogFile::WriteV(UINT level, LPCTSTR pszFormat, va_list arglist) { CString msg; msg.FormatV(pszFormat, arglist); msg.Insert(0, GetPrefix(level)); if (level & LOSERROR) { TCHAR cause[5120]; CInternetException(GetLastError()).GetErrorMessage(cause, countof(cause)); msg += cause; } msg.TrimRight(_T("\r\n")); msg += _T("\n"); WriteRaw(msg); if (level & LDEBUG) { OutputDebugString(msg); } }
/** * @brief Issue an error popup if passed in HRESULT is nonzero */ static int Try(HRESULT hr, UINT type) { return hr ? CInternetException(hr).ReportError(type) : 0; }