Здравствуйте, kero, Вы писали:
[...]
K>Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
K>Дело в том, что лично наблюдал на гостевой Win98SE (в VirtualBox-е на хостовой Win7) работу с HWND_MESSAGE...
K>А зта Win98SE была выгуглена как готовый к применению VDI-диск (ну, почти готовый, без кое-каких драйверов)...
K>Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
Очень похоже, что я ошибался насчет версионности виндов. У меня стоит под Win7 еще и VisualStudio6, так там в хэдерах
апреля 98 года создания:
winuser.h
#if(WINVER >= 0x0500)
#define HWND_MESSAGE ((HWND)-3)
#endif /* WINVER >= 0x0500 */
winuser.h
#ifndef WINVER
#define WINVER 0x0400
#else
#if defined(_WIN32_WINNT) && (WINVER < 0x0400) && (_WIN32_WINNT > 0x0400)
#error WINVER setting conflicts with _WIN32_WINNT setting
#endif
#endif
#if(WINVER >= 0x0500)
#pragma message ("")
#pragma message ("NOTE: WINVER has been defined as 0x0500 or greater which enables")
#pragma message ("Windows NT 5.0 and Windows 98 features. When these headers were released,")
#pragma message ("Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.")
#pragma message ("")
#pragma message ("For this release when WINVER is defined as 0x0500 or greater, you can only")
#pragma message ("build beta or test applications. To build a retail application,")
#pragma message ("set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk")
#pragma message ("to see if retail Windows NT 5.0 or Windows 98 headers are available.")
#pragma message ("")
#pragma message ("See the SDK release notes for more information.")
#pragma message ("")
#endif
Получается, что 6-я студия компиляла под 95 винды (0x0400), для продажи но могла и под новоявленные Windows NT 5.0 beta 1 и Windows 98 beta 2.1 (для тестирования), выдавая ворнинг, чтобы использовали новую SDK. Согласно вики 98 винда (не SE) вышла в
мае 98 года. Так что получается, что _Butch_ прав, и WINVER >= 0x0500 — это уже начиная с 98 винды (не SE). Хотя, конечно, позже Майкрософт могли несколько пересмотреть свои взляды на версионность. В любом случае, надеждам на наличие HWND_MESSAGE в 95 виндах, похоже, сбыться не суждено.