title: Error when including winuser.h. It defines ChangeMenu to ChangeMenuW or ChangeMenuA
body: <p>Working on a Qt app on Windows. I include QVboxLayout in my source file only and this causes errors because its macro overwrites my method name.</p>
  
  <pre><code>foo.hpp
  class foo
  {
      ChangeMenu();
  }
  
  foo.cpp
  #include "foo.hpp"
  #include "QVBoxLayout" // &lt;--- this includes winuser.h
  
  foo::ChangeMenu(){};
  </code></pre>
  
  <p>Now what happens is winuser.h has a macro</p>
  
  <pre><code>#ifdef UNICODE
  #define ChangeMenu  ChangeMenuW
  #else
  #define ChangeMenu  ChangeMenuA
  #endif // !UNICODE
  </code></pre>
  
  <p>This changes my function definition to ChangeMenuW but my declaration is still ChangeMenu.</p>
  
  <p>How should I solve this? How can winuser.h define such a "normal" name as a macro?</p>
  
  <p>Version of winuser.h is "windows kits\10\include\10.0.16299.0"</p>