title: How to get boost::system::error_code::message in English?
body: <p>On Win7 having localized UI, <code>error_code::message()</code> returns a non-English message. As far as I see (in Boost 1.54, for <code>system_error_category</code>), the above function boils down to the following WinAPI call:</p>
  
  <pre><code>DWORD retval = ::FormatMessageA( 
      FORMAT_MESSAGE_ALLOCATE_BUFFER | 
      FORMAT_MESSAGE_FROM_SYSTEM | 
      FORMAT_MESSAGE_IGNORE_INSERTS,
      NULL,
      ev,
      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
      (LPSTR) &amp;lpMsgBuf,
      0,
      NULL 
  );
  </code></pre>
  
  <p>How to get the above <code>FormatMessage</code> to return an English message? I tried to set the locale, both with <code>std</code> functions and with <code>SetThreadLocale</code> - it didn't help.</p>
  
  <p><strong>Update</strong>: Just a clarification: essentially, my question is how to "override" programmatically the <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/dd373908%28v=vs.85%29.aspx" rel="noreferrer">user default language</a> and why setting locale is not enough.</p>