From Vincent Mahnke, 11 Years ago, written in C++.
Embed
  1. // Error handler
  2. bool Failed(HRESULT aResult, int errNr) {
  3.         if (FAILED(aResult)) {
  4.                 LPTSTR buffer;
  5.                 FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, nullptr, (DWORD)aResult, LANG_USER_DEFAULT, (LPTSTR)&buffer, 0, nullptr);
  6.  
  7.                 MessageBox(0, buffer, _T("Fatal error: Err nr. #"+errNr), MB_OK | MB_ICONERROR);
  8.                 LocalFree(buffer);
  9.  
  10.                 releaseInterfaces();
  11.                 return true;
  12.         }
  13.         return false;
  14. }