code which used to work now no longer works.  this mailing list once told me to 
no longer use OSVERSIONINFOEX but instead use OSVERSIONINFOEXA.
well, I have code which looks like below, and the dots version number doesn't 
even print.

so what's going on?
I am using 4.7.0 20111127, which is the only compiler which works, and 
apparently was removed from the auto builds. (Why?)



    OSVERSIONINFOEXA osve;
    memset(&osve, 0, sizeof(OSVERSIONINFOEXA));
    osve.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEXA);
    if (0 != GetVersionEx((POSVERSIONINFOA)&osve)) {
        
fprintf(fout,"dwPlatformId.dwMajorVersion.dwMinorVersion.dwBuildNumber=");
        fprintf(fout,"%lu.%lu.%lu.%lu\n",
            osve.dwPlatformId,
            osve.dwMajorVersion,
            osve.dwMinorVersion,
            osve.dwBuildNumber);
        fprintf(fout,"wServicePackMajor.wServicePackMinor=%u.%u\n",
            osve.wServicePackMajor,
            osve.wServicePackMinor);
        fprintf(fout,"szCSDVersion=\"%s\"\n", osve.szCSDVersion);
        switch (osve.wProductType) {
            case VER_NT_WORKSTATION:
                    fprintf(fout,"wProductType=VER_NT_WORKSTATION=%u\n", 
osve.wProductType);
                break;
            case VER_NT_SERVER:
                    fprintf(fout,"wProductType=VER_NT_SERVER=%u\n", 
osve.wProductType);
                break;
            case VER_NT_DOMAIN_CONTROLLER:
                    fprintf(fout,"wProductType=VER_NT_DOMAIN_CONTROLLER=%u\n", 
osve.wProductType);
                break;
            default:
                    fprintf(fout,"wProductType=UNKNOWN!=%u\n", 
osve.wProductType);
                break;
        }
        fprintf(fout,"wReserved=%u\n", osve.wReserved);
        fprintf(fout,"wSuiteMask=0x%X\n", osve.wSuiteMask);
        if (osve.wSuiteMask & VER_SUITE_BACKOFFICE)                 { 
fprintf(fout,"wSuiteMask&VER_SUITE_BACKOFFICE 0x%x\n", VER_SUITE_BACKOFFICE);}
        if (osve.wSuiteMask & VER_SUITE_BLADE)                      { 
fprintf(fout,"wSuiteMask&VER_SUITE_BLADE 0x%x\n", VER_SUITE_BLADE);}
        if (osve.wSuiteMask & VER_SUITE_COMPUTE_SERVER)             { 
fprintf(fout,"wSuiteMask&VER_SUITE_COMPUTE_SERVER 0x%x\n", 
VER_SUITE_COMPUTE_SERVER);}
        if (osve.wSuiteMask & VER_SUITE_DATACENTER)                 { 
fprintf(fout,"wSuiteMask&VER_SUITE_DATACENTER 0x%x\n", VER_SUITE_DATACENTER);}
        if (osve.wSuiteMask & VER_SUITE_ENTERPRISE)                 { 
fprintf(fout,"wSuiteMask&VER_SUITE_ENTERPRISE 0x%x\n", VER_SUITE_ENTERPRISE);}
        if (osve.wSuiteMask & VER_SUITE_EMBEDDEDNT)                 { 
fprintf(fout,"wSuiteMask&VER_SUITE_EMBEDDEDNT 0x%x\n", VER_SUITE_EMBEDDEDNT);}
        if (osve.wSuiteMask & VER_SUITE_PERSONAL)                   { 
fprintf(fout,"wSuiteMask&VER_SUITE_PERSONAL 0x%x\n", VER_SUITE_PERSONAL);}
        if (osve.wSuiteMask & VER_SUITE_SINGLEUSERTS)               { 
fprintf(fout,"wSuiteMask&VER_SUITE_SINGLEUSERTS 0x%x\n", 
VER_SUITE_SINGLEUSERTS);}
        if (osve.wSuiteMask & VER_SUITE_SMALLBUSINESS)              { 
fprintf(fout,"wSuiteMask&VER_SUITE_SMALLBUSINESS 0x%x\n", 
VER_SUITE_SMALLBUSINESS);}
        if (osve.wSuiteMask & VER_SUITE_SMALLBUSINESS_RESTRICTED)   { 
fprintf(fout,"wSuiteMask&VER_SUITE_SMALLBUSINESS_RESTRICTED 0x%x\n", 
VER_SUITE_SMALLBUSINESS_RESTRICTED);}
        if (osve.wSuiteMask & VER_SUITE_STORAGE_SERVER)             { 
fprintf(fout,"wSuiteMask&VER_SUITE_STORAGE_SERVER 0x%x\n", 
VER_SUITE_STORAGE_SERVER);}
        if (osve.wSuiteMask & VER_SUITE_TERMINAL)                   { 
fprintf(fout,"wSuiteMask&VER_SUITE_TERMINAL 0x%x\n", VER_SUITE_TERMINAL);}
        if (osve.wSuiteMask & VER_SUITE_WH_SERVER)                  { 
fprintf(fout,"wSuiteMask&VER_SUITE_WH_SERVER 0x%x\n", VER_SUITE_WH_SERVER);}
    }
    fprintf(fout,"%u=GetSystemMetrics(SM_MEDIACENTER)\n", 
GetSystemMetrics(SM_MEDIACENTER));
    fprintf(fout,"%u=GetSystemMetrics(SM_STARTER)\n",     
GetSystemMetrics(SM_STARTER)    );
    fprintf(fout,"%u=GetSystemMetrics(SM_TABLETPC)\n",    
GetSystemMetrics(SM_TABLETPC)   );
    fprintf(fout,"%u=GetSystemMetrics(SM_SERVERR2)\n",    
GetSystemMetrics(SM_SERVERR2)   );


 
-------------
Jim Michaels
[email protected]
[email protected]
http://JimsComputerRepairandWebDesign.com
http://JesusnJim.com (my personal site, has software)
---
Computer memory measurements, SSD measurements, microsoft disk size 
measurements (note: they will say GB or MB or KB or TB when it is not!):
[KiB] [MiB] [GiB] [TiB]
[2^10B=1,024B=1KiB]
[2^20B=1,048,576B=1MiB]
[2^30B=1,073,741,824B=1GiB]
[2^40B=1,099,511,627,776B=1TiB]
hard disk industry disk size measurements:
[KB] [MB] [GB] [TB]
[10^3B=1,000B=1KB]
[10^6B=1,000,000B=1MB]
[10^9B=1,000,000,000B=1GB]
[10^12B=1,000,000,000,000B=1TB]
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to