66 Win32Type IsShellType()
67 {
68 Win32Type ShellType;
69 DWORD winVer;
70 OSVERSIONINFO *osvi;
71
72 winVer=GetVersion();
73 if(winVer<0x80000000){/*NT */
74 ShellType=WinNT3;
75 osvi= (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));
76 if (osvi!=NULL){
77 memset(osvi,0,sizeof(OSVERSIONINFO));
78 osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
79 GetVersionEx(osvi);
80 if(osvi->dwMajorVersion==4L)ShellType=WinNT4;
81 else if(osvi->dwMajorVersion==5L&&osvi->dwMinorVersion==0L)ShellType=Win2000;
82 else if(osvi->dwMajorVersion==5L&&osvi->dwMinorVersion==1L)ShellType=WinXP;
83 free(osvi);
84 }
85 }
86 else if (LOBYTE(LOWORD(winVer))<4)
87 ShellType=Win32s;
88 else{
89 ShellType=Win95;
90 osvi= (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));
91 if (osvi!=NULL){
92 memset(osvi,0,sizeof(OSVERSIONINFO));
93 osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
94 GetVersionEx(osvi);
95 if(osvi->dwMajorVersion==4L&&osvi->dwMinorVersion==10L)ShellType=Win98;
96 else if(osvi->dwMajorVersion==4L&&osvi->dwMinorVersion==90L)ShellType=WinME;
97 free(osvi);
98 }
99 }
100 return ShellType;
101 }