Здравствуйте, kero, Вы писали:
K>Интересует, с какой версии Windows появилась эта константа?
K>Однако ведь на деле HWND_MESSAGE работает и в Win98, и окна типа "message-only" там тоже есть.
Ну тут пишут, что0x0501 — это XP, надо полагать что 0x0500 — это WIN98?
Так что вроде все сходится...
Хз, видимо надо смотреть заголовки древних SDK, у меня где-то валялись cd многолетней давности с sdk еще под nt 4.0, если не выкинул, и если они еще читаются, посмотрю.
ES>Ну тут пишут, что0x0501 — это XP, надо полагать что 0x0500 — это WIN98?
ES>Хотя тут пишут другое, типа 0х0500 это вин2000
ES>А тут вот пишут что Win98 это 0х0410
Эх, молодо-зелено...
Windows 95 and Windows NT 4.0 WINVER=0x0400
Windows 98 and Windows NT 4.0 _WIN32_WINDOWS=0x0410 and WINVER=0x0400
Windows NT 4.0 _WIN32_WINNT=0x0400 and WINVER=0x0400
Windows 98 and Windows 2000 WINVER=0x0500
Windows 2000 _WIN32_WINNT=0x0500 and WINVER=0x0500
Здравствуйте, kero, Вы писали:
K>Здравствуйте, _Butch_, Вы писали:
K>
K>Windows 98 and Windows 2000 WINVER=0x0500
K>
K>А не уточните, о какой именно 98 тут речь — не о SE ? И можно ли (авторитетную) ссылку, что 0x0500 ?
По этому поводу у меня тоже есть сомнения. Насколько я понимаю, сейчас найти версии для старых виндов несколько затруднительно. То, что есть, начинается с ХР. Вот здесь чел кой-чего нарыл, возможно, что вам поможет. Если для Windows ME WINVER=0x0400 and _WIN32_WINDOWS=0x0490, как для Windows 98SE может использоваться WINVER=0x0500?
K>>А не уточните, о какой именно 98 тут речь — не о SE ? И можно ли (авторитетную) ссылку, что 0x0500 ?
_>По этому поводу у меня тоже есть сомнения. Насколько я понимаю, сейчас найти версии для старых виндов несколько затруднительно. То, что есть, начинается с ХР. Вот здесь чел кой-чего нарыл, возможно, что вам поможет. Если для Windows ME WINVER=0x0400 and _WIN32_WINDOWS=0x0490, как для Windows 98SE может использоваться WINVER=0x0500?
Ну да, выше я и написал, как всегда и считал: >"0x0500" значит "начиная с Win2k"
Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
Дело в том, что лично наблюдал на гостевой Win98SE (в VirtualBox-е на хостовой Win7) работу с HWND_MESSAGE...
А зта Win98SE была выгуглена как готовый к применению VDI-диск (ну, почти готовый, без кое-каких драйверов)...
Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
_>>По этому поводу у меня тоже есть сомнения. Насколько я понимаю, сейчас найти версии для старых виндов несколько затруднительно.
K>Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
Если посмотреть свойства EXPLORER.EXE в Миллениуме, то мы увидим "Windows 2000"
Здравствуйте, SergeCpp, Вы писали:
K>>Наверное, остается одно: попросить обладателей 9x потестить вот этим:
SC>Я уже тестил как-то вашей программой, помните, что она мне натворила в системе? Теперь я осторожничаю
Так и знал, что припомните
(А я ведь сразу после того обзавелся VirtualBox с гостевой Win98SE (на VDI с инета), и с тех пор — несмотря на угнетающие тормоза этого симбиоза — потихоньку приучаю MenuSpy к Win98, которая, как оказалось, обходится с менюхами зело иначе, нежели XP или Win7...)
Так вот, можно не осторожничать: здесь уже проверили для Win98SE официальной сборки, и результат совпал с моим (см. выше).
Поэтому в данный момент мне бы не ME, а, наоборот, что-то до Win98SE...
Может, все-таки рискнете поучаствовать? Исходник экзе в архиве, манюсенький-манюсенький, и все там как на ладони ...
[...]
K>Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
K>Дело в том, что лично наблюдал на гостевой Win98SE (в VirtualBox-е на хостовой Win7) работу с HWND_MESSAGE... K>А зта Win98SE была выгуглена как готовый к применению VDI-диск (ну, почти готовый, без кое-каких драйверов)...
K>Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
Очень похоже, что я ошибался насчет версионности виндов. У меня стоит под Win7 еще и VisualStudio6, так там в хэдерах апреля 98 года создания:
#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 виндах, похоже, сбыться не суждено.
I found this suprising because the creation of windows purely for messages almost certainly dates back to Windows 3.1
or even before, and it's the early versions of windows that had the most to gain from message-only windows.
Здравствуйте, kero, Вы писали:
K>Интересует, с какой версии Windows появилась эта константа?
судя по сорцам и файлу ntos\w32\ntuser\kernel\ntstubs.c (Windows 2000 без SP) уже была:
HWND NtUserSetParent(
IN HWND hwndChild,
IN HWND hwndNewParent)
{
...
if (hwndNewParent == NULL) {
pwndNewParent = _GetDesktopWindow();
} else if (hwndNewParent == HWND_MESSAGE) {
pwndNewParent = _GetMessageWindow();
} else {
ValidateHWND(pwndNewParent, hwndNewParent);
}
...
}
а NT4 еще не было
HWND NtUserSetParent(
IN HWND hwndChild,
IN HWND hwndNewParent)
{
//
// N.B. This function has implicit window translation and thread locking
// enabled. These operations are performed in the User server API
// dispatcher.
//
PWND pwndNewParent;
TL tlpwndNewParent;
BEGINRECV_HWNDLOCK(HWND, NULL, hwndChild);
ValidateHWNDOPT(pwndNewParent, hwndNewParent);
ThreadLockWithPti(ptiCurrent, pwndNewParent, &tlpwndNewParent);
retval = (HWND)xxxSetParent(
pwnd,
pwndNewParent);
retval = PtoH((PVOID)retval);
ThreadUnlock(&tlpwndNewParent);
TRACE("NtUserSetParent");
ENDRECV_HWNDLOCK();
}
Здравствуйте, kero, Вы писали:
K>Может, все-таки рискнете поучаствовать? Исходник экзе в архиве, манюсенький-манюсенький, и все там как на ладони ...
Пытался поставить Win98 SE (как утверждают копия с фирменного диска) на Hyper-V (Win 8.1). Установка наглухо зависает при загрузке mode.exe
Никто не знает как поправить ?
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>Пытался поставить Win98 SE (как утверждают копия с фирменного диска) на Hyper-V (Win 8.1). Установка наглухо зависает при загрузке mode.exe ES>Никто не знает как поправить ?
Насколько я знаю, Hyper-V системы такой давности не поддерживает.
У меня на Hyper-V от Server 2008 R2 ничего старее Windows 2000 не работает.
Здравствуйте, okman, Вы писали:
O>Насколько я знаю, Hyper-V системы такой давности не поддерживает. O>У меня на Hyper-V от Server 2008 R2 ничего старее Windows 2000 не работает.
Поставил 98 в виртуалбокс, запустилась, правда тупит нереально.
Сейчас скачал образ 95 OSR 2.1, попробую ее поставить.
Ностальгия ...