Changeset 8834


Ignore:
Timestamp:
Jul 5, 2002, 4:48:06 PM (23 years ago)
Author:
sandervl
Message:

cleaned up

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/kernel32/version.cpp

    r8803 r8834  
    1 /* $Id: version.cpp,v 1.8 2002-06-28 20:15:06 sandervl Exp $ */
     1/* $Id: version.cpp,v 1.9 2002-07-05 14:48:06 sandervl Exp $ */
    22
    33/*
     
    125125void CheckVersion()
    126126{
    127  char szVersion[16];
    128 
    129   if(PROFILE_GetOdinIniString(PROFILE_WINVERSION_SECTION, PROFILE_WINVERSION_KEY,
    130                               "", szVersion, sizeof(szVersion)-1) > 1)
    131   {
    132         if(!stricmp(szVersion, PROFILE_WINVERSION_WIN98)) {
    133                 winversion = WINVERSION_WIN98;
    134         }
    135         else
    136         if(!stricmp(szVersion, PROFILE_WINVERSION_WINME)) {
    137                 winversion = WINVERSION_WINME;
    138         }
    139         else
    140         if(!stricmp(szVersion, PROFILE_WINVERSION_NT40)) {
    141                 winversion = WINVERSION_NT40;
    142         }
    143         else
    144         if(!stricmp(szVersion, PROFILE_WINVERSION_WIN2000)) {
    145                 winversion = WINVERSION_WIN2000;
    146         }
    147         else
    148         if(!stricmp(szVersion, PROFILE_WINVERSION_WINXP)) {
    149                 winversion = WINVERSION_WINXP;
    150         }
    151   }
    152   fCheckVersion = TRUE;
     127    char szVersion[16];
     128
     129    if(PROFILE_GetOdinIniString(PROFILE_WINVERSION_SECTION, PROFILE_WINVERSION_KEY,
     130                                "", szVersion, sizeof(szVersion)-1) > 1)
     131    {
     132        if(!stricmp(szVersion, PROFILE_WINVERSION_WIN98)) {
     133                    winversion = WINVERSION_WIN98;
     134            }
     135            else
     136            if(!stricmp(szVersion, PROFILE_WINVERSION_WINME)) {
     137                winversion = WINVERSION_WINME;
     138        }
     139        else
     140        if(!stricmp(szVersion, PROFILE_WINVERSION_NT40)) {
     141                    winversion = WINVERSION_NT40;
     142            }
     143            else
     144            if(!stricmp(szVersion, PROFILE_WINVERSION_WIN2000)) {
     145                winversion = WINVERSION_WIN2000;
     146        }
     147        else
     148        if(!stricmp(szVersion, PROFILE_WINVERSION_WINXP)) {
     149                    winversion = WINVERSION_WINXP;
     150            }
     151    }
     152    fCheckVersion = TRUE;
    153153}
    154154//******************************************************************************
     
    156156BOOL WIN32API GetVersionExA(OSVERSIONINFOA *lpVersionInformation)
    157157{
    158    dprintf(("KERNEL32: GetVersionExA %x", lpVersionInformation));
    159 
    160    if(lpVersionInformation == NULL)
    161    {
    162         dprintf(("ERROR: invalid parameter"));
    163         SetLastError(ERROR_INVALID_PARAMETER);
    164         return(FALSE);
    165    }
    166    if(lpVersionInformation->dwOSVersionInfoSize < sizeof(OSVERSIONINFOA))
    167    {
    168         dprintf(("ERROR: buffer too small (%d != %d)", lpVersionInformation->dwOSVersionInfoSize, sizeof(OSVERSIONINFOA)));
    169         SetLastError(ERROR_INSUFFICIENT_BUFFER);
    170         return(FALSE);
    171    }
    172 
    173    if(fCheckVersion == FALSE) {
    174         CheckVersion();
    175    }
    176    lpVersionInformation->dwMajorVersion = VersionData[winversion].getVersionEx.dwMajorVersion;
    177    lpVersionInformation->dwMinorVersion = VersionData[winversion].getVersionEx.dwMinorVersion;
    178    lpVersionInformation->dwBuildNumber  = VersionData[winversion].getVersionEx.dwBuildNumber;
    179    lpVersionInformation->dwPlatformId   = VersionData[winversion].getVersionEx.dwPlatformId;
    180    strcpy(lpVersionInformation->szCSDVersion, VersionData[winversion].getVersionEx.szCSDVersion );
    181 
    182    dprintf(("version      %x.%x", lpVersionInformation->dwMajorVersion, lpVersionInformation->dwMinorVersion));
    183    dprintf(("build nr     %x", lpVersionInformation->dwBuildNumber));
    184    dprintf(("Platform Id  %x", lpVersionInformation->dwPlatformId));
    185    dprintf(("szCSDVersion %s", lpVersionInformation->szCSDVersion));
    186 
    187    if(lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXA))
    188    {//Windows 2000 (and up) extension
    189        LPOSVERSIONINFOEXA lpVersionExInformation = (LPOSVERSIONINFOEXA)lpVersionInformation;
    190 
    191        lpVersionExInformation->wServicePackMajor = VersionData[winversion].getVersionEx.wServicePackMajor;
    192        lpVersionExInformation->wServicePackMinor = VersionData[winversion].getVersionEx.wServicePackMinor;
    193        lpVersionExInformation->wReserved[0]      = VersionData[winversion].getVersionEx.wReserved[0];
    194        lpVersionExInformation->wReserved[1]      = VersionData[winversion].getVersionEx.wReserved[1];
    195 
    196        dprintf(("service pack version %x.%x", lpVersionExInformation->wServicePackMajor, lpVersionExInformation->wServicePackMinor));
    197    }
    198 
    199    SetLastError(ERROR_SUCCESS);
    200    return(TRUE);
     158    dprintf(("KERNEL32: GetVersionExA %x", lpVersionInformation));
     159
     160    if(lpVersionInformation == NULL)
     161    {
     162        dprintf(("ERROR: invalid parameter"));
     163        SetLastError(ERROR_INVALID_PARAMETER);
     164        return(FALSE);
     165    }
     166    if(lpVersionInformation->dwOSVersionInfoSize < sizeof(OSVERSIONINFOA))
     167    {
     168        dprintf(("ERROR: buffer too small (%d != %d)", lpVersionInformation->dwOSVersionInfoSize, sizeof(OSVERSIONINFOA)));
     169        SetLastError(ERROR_INSUFFICIENT_BUFFER);
     170        return(FALSE);
     171    }
     172
     173    if(fCheckVersion == FALSE) {
     174        CheckVersion();
     175    }
     176    lpVersionInformation->dwMajorVersion = VersionData[winversion].getVersionEx.dwMajorVersion;
     177    lpVersionInformation->dwMinorVersion = VersionData[winversion].getVersionEx.dwMinorVersion;
     178    lpVersionInformation->dwBuildNumber  = VersionData[winversion].getVersionEx.dwBuildNumber;
     179    lpVersionInformation->dwPlatformId   = VersionData[winversion].getVersionEx.dwPlatformId;
     180    strcpy(lpVersionInformation->szCSDVersion, VersionData[winversion].getVersionEx.szCSDVersion );
     181
     182    dprintf(("version      %x.%x", lpVersionInformation->dwMajorVersion, lpVersionInformation->dwMinorVersion));
     183    dprintf(("build nr     %x", lpVersionInformation->dwBuildNumber));
     184    dprintf(("Platform Id  %x", lpVersionInformation->dwPlatformId));
     185    dprintf(("szCSDVersion %s", lpVersionInformation->szCSDVersion));
     186
     187    if(lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXA))
     188    {//Windows 2000 (and up) extension
     189        LPOSVERSIONINFOEXA lpVersionExInformation = (LPOSVERSIONINFOEXA)lpVersionInformation;
     190
     191        lpVersionExInformation->wServicePackMajor = VersionData[winversion].getVersionEx.wServicePackMajor;
     192        lpVersionExInformation->wServicePackMinor = VersionData[winversion].getVersionEx.wServicePackMinor;
     193        lpVersionExInformation->wReserved[0]      = VersionData[winversion].getVersionEx.wReserved[0];
     194        lpVersionExInformation->wReserved[1]      = VersionData[winversion].getVersionEx.wReserved[1];
     195   
     196        dprintf(("service pack version %x.%x", lpVersionExInformation->wServicePackMajor, lpVersionExInformation->wServicePackMinor));
     197    }
     198   
     199    SetLastError(ERROR_SUCCESS);
     200    return(TRUE);
    201201}
    202202//******************************************************************************
     
    204204BOOL WIN32API GetVersionExW(OSVERSIONINFOW *lpVersionInformation)
    205205{
    206    dprintf(("KERNEL32: GetVersionExW %x", lpVersionInformation));
    207 
    208    if(lpVersionInformation == NULL)
    209    {
    210         dprintf(("ERROR: invalid parameter"));
    211         SetLastError(ERROR_INVALID_PARAMETER);
    212         return(FALSE);
    213    }
    214    if(lpVersionInformation->dwOSVersionInfoSize < sizeof(OSVERSIONINFOW))
    215    {
    216         dprintf(("ERROR: buffer too small"));
    217         SetLastError(ERROR_INSUFFICIENT_BUFFER);
    218         return(FALSE);
    219    }
    220 
    221    if(fCheckVersion == FALSE) {
    222         CheckVersion();
    223    }
    224    lpVersionInformation->dwMajorVersion = VersionData[winversion].getVersionEx.dwMajorVersion;
    225    lpVersionInformation->dwMinorVersion = VersionData[winversion].getVersionEx.dwMinorVersion;
    226    lpVersionInformation->dwBuildNumber  = VersionData[winversion].getVersionEx.dwBuildNumber;
    227    lpVersionInformation->dwPlatformId   = VersionData[winversion].getVersionEx.dwPlatformId;
    228    lstrcpyAtoW(lpVersionInformation->szCSDVersion, VersionData[winversion].getVersionEx.szCSDVersion);
    229 
    230    if(lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXW))
    231    {//Windows 2000 (and up) extension
    232        LPOSVERSIONINFOEXW lpVersionExInformation = (LPOSVERSIONINFOEXW)lpVersionInformation;
    233 
    234        lpVersionExInformation->wServicePackMajor = VersionData[winversion].getVersionEx.wServicePackMajor;
    235        lpVersionExInformation->wServicePackMinor = VersionData[winversion].getVersionEx.wServicePackMinor;
    236        lpVersionExInformation->wReserved[0]      = VersionData[winversion].getVersionEx.wReserved[0];
    237        lpVersionExInformation->wReserved[1]      = VersionData[winversion].getVersionEx.wReserved[1];
    238    }
    239    SetLastError(ERROR_SUCCESS);
    240    return(TRUE);
     206    dprintf(("KERNEL32: GetVersionExW %x", lpVersionInformation));
     207
     208    if(lpVersionInformation == NULL)
     209    {
     210            dprintf(("ERROR: invalid parameter"));
     211            SetLastError(ERROR_INVALID_PARAMETER);
     212        return(FALSE);
     213    }
     214    if(lpVersionInformation->dwOSVersionInfoSize < sizeof(OSVERSIONINFOW))
     215    {
     216        dprintf(("ERROR: buffer too small"));
     217        SetLastError(ERROR_INSUFFICIENT_BUFFER);
     218        return(FALSE);
     219    }
     220
     221    if(fCheckVersion == FALSE) {
     222        CheckVersion();
     223    }
     224    lpVersionInformation->dwMajorVersion = VersionData[winversion].getVersionEx.dwMajorVersion;
     225    lpVersionInformation->dwMinorVersion = VersionData[winversion].getVersionEx.dwMinorVersion;
     226    lpVersionInformation->dwBuildNumber  = VersionData[winversion].getVersionEx.dwBuildNumber;
     227    lpVersionInformation->dwPlatformId   = VersionData[winversion].getVersionEx.dwPlatformId;
     228    lstrcpyAtoW(lpVersionInformation->szCSDVersion, VersionData[winversion].getVersionEx.szCSDVersion);
     229
     230    if(lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXW))
     231    {//Windows 2000 (and up) extension
     232        LPOSVERSIONINFOEXW lpVersionExInformation = (LPOSVERSIONINFOEXW)lpVersionInformation;
     233   
     234        lpVersionExInformation->wServicePackMajor = VersionData[winversion].getVersionEx.wServicePackMajor;
     235        lpVersionExInformation->wServicePackMinor = VersionData[winversion].getVersionEx.wServicePackMinor;
     236        lpVersionExInformation->wReserved[0]      = VersionData[winversion].getVersionEx.wReserved[0];
     237        lpVersionExInformation->wReserved[1]      = VersionData[winversion].getVersionEx.wReserved[1];
     238    }
     239    SetLastError(ERROR_SUCCESS);
     240    return(TRUE);
    241241}
    242242//******************************************************************************
     
    244244LONG WIN32API GetVersion()
    245245{
    246    dprintf(("KERNEL32: GetVersion"));
    247   // highword 0 = NT, lowword high byte major ver, low byte minor ver
    248 /* @@@PH 98/04/04 MFC30 makes assumptions about process control block        */
    249 /*                structures that lead to crashes if we don't identify as NT */
    250 
    251    if(fCheckVersion == FALSE) {
    252         CheckVersion();
    253    }
    254    return VersionData[winversion].getVersion;
    255 }
    256 //******************************************************************************
    257 //******************************************************************************
     246    dprintf(("KERNEL32: GetVersion"));
     247    if(fCheckVersion == FALSE) {
     248            CheckVersion();
     249    }
     250    return VersionData[winversion].getVersion;
     251}
     252//******************************************************************************
     253//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.