GetVersion() brown paper bag fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm sure very many programs will fail in case of incorrect Win95 or Win98
GetVersion return numbers, thorough patch testing may have been very useful.

Luckily mine didn't fail because of that, but instead because of wrong
default win version, win95 (but it would probably also fail once I set the
version to win98 without that patch...)

Andreas Mohr
Index: dlls/kernel/version.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/version.c,v
retrieving revision 1.1
diff -u -r1.1 version.c
--- dlls/kernel/version.c	24 Sep 2003 05:26:00 -0000	1.1
+++ dlls/kernel/version.c	2 Nov 2003 17:15:18 -0000
@@ -196,6 +196,15 @@
 
 /***********************************************************************
  *         GetVersion   (KERNEL32.@)
+ *
+ * Win31   0x80000a03
+ * Win95   0xc0000004
+ * Win98   0xc0000a04
+ * WinME   0xc0005a04
+ * NT351   0x04213303
+ * NT4     0x05650004
+ * Win2000 0x08930005
+ * WinXP   0x0a280105
  */
 DWORD WINAPI GetVersion(void)
 {
@@ -205,7 +214,9 @@
     if (RtlGetVersion( &info ) != STATUS_SUCCESS) return 0;
 
     return MAKELONG( MAKEWORD( info.dwMajorVersion, info.dwMinorVersion ),
-                     LOWORD(info.dwBuildNumber) | ((info.dwPlatformId ^ 2) << 14) );
+                     info.dwPlatformId == VER_PLATFORM_WIN32_NT ?
+		     LOWORD(info.dwBuildNumber) : 0
+		     | ((info.dwPlatformId ^ 2) << 14) );
 }
 
 

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux