Постоянная ошибка MinGW DEVMODE

эксперты! Я пользователь WinXP на виртуальной машине. Я установил MinGW и IDE для разработки приложений C/C++. Сегодня я наткнулся на фрагмент кода в MSDN, как видите,

DEVMODE dm;
   // initialize the DEVMODE structure
   ZeroMemory(&dm, sizeof(dm));
   dm.dmSize = sizeof(dm);

   if (0 != EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm))
   {
      // swap height and width
      DWORD dwTemp = dm.dmPelsHeight;
      dm.dmPelsHeight= dm.dmPelsWidth;
      dm.dmPelsWidth = dwTemp;

      // determine new orientaion
      switch (dm.dmDisplayOrientation)
      {
      case DMDO_DEFAULT:
         dm.dmDisplayOrientation = DMDO_270;
         break;
      case DMDO_270:
         dm.dmDisplayOrientation = DMDO_180;
         break;
      case DMDO_180:
         dm.dmDisplayOrientation = DMDO_90;
         break;
      case DMDO_90:
         dm.dmDisplayOrientation = DMDO_DEFAULT;
         break;
      default:
         // unknown orientation value
         // add exception handling here
         break;
      }
      long lRet = ChangeDisplaySettings(&dm, 0);
      if (DISP_CHANGE_SUCCESSFUL != lRet)
      {
         // add exception handling here
      }
   }

Когда я скомпилировал этот фрагмент в своем образце, я получил это сообщение об ошибке,

ошибка: 'DMDO_DEFAULT' необъявлено

ошибка: «DMDO_270» не объявлен

..

ошибка: «DMDO_90» не объявлен

Я знаю, что эти константы включены в файл wingdi.h, в моем случае этот файл содержит этот код, я думаю, что это правильно.

#if(WINVER >= 0x0501)
..
#define DMDO_DEFAULT 0x00000000
#define DMDO_90 0x00000001
#define DMDO_180 0x00000002
#define DMDO_270 0x00000003

Так в чем проблема, может кто-нибудь объяснить мне? ver команда дала мне этот вывод,

$ ver
Microsoft Windows XP [Version 5.1.2600]

Извините за мою английскую грамматику, спасибо за помощь.


person mystermuscle    schedule 06.10.2016    source источник
comment
Связанный: Что такое WINVER?   -  person Frédéric Hamidi    schedule 06.10.2016
comment
Большое спасибо, @FrédéricHamidi. Этот комментарий - мое решение. Но почему он не будет объявлен автоматически?   -  person mystermuscle    schedule 06.10.2016
comment
Visual Studio автоматически объявляет его в файле stdafx.h, который создается при создании нового проекта. Но вы используете MinGW, так что...   -  person Frédéric Hamidi    schedule 06.10.2016
comment
О, я благодарен вам.   -  person mystermuscle    schedule 06.10.2016