Commit 55bcda87 authored by Morten Eriksen's avatar Morten Eriksen Committed by Alexandre Julliard

Added simple console mode example program which lists information

about the version of Windows we're currently running on.
parent 94822425
...@@ -5683,6 +5683,7 @@ programs/clock/Makefile ...@@ -5683,6 +5683,7 @@ programs/clock/Makefile
programs/cmdlgtst/Makefile programs/cmdlgtst/Makefile
programs/control/Makefile programs/control/Makefile
programs/avitools/Makefile programs/avitools/Makefile
programs/osversioncheck/Makefile
programs/notepad/Makefile programs/notepad/Makefile
programs/progman/Makefile programs/progman/Makefile
programs/regtest/Makefile programs/regtest/Makefile
...@@ -5875,6 +5876,7 @@ programs/clock/Makefile ...@@ -5875,6 +5876,7 @@ programs/clock/Makefile
programs/cmdlgtst/Makefile programs/cmdlgtst/Makefile
programs/control/Makefile programs/control/Makefile
programs/avitools/Makefile programs/avitools/Makefile
programs/osversioncheck/Makefile
programs/notepad/Makefile programs/notepad/Makefile
programs/progman/Makefile programs/progman/Makefile
programs/regtest/Makefile programs/regtest/Makefile
......
...@@ -890,6 +890,7 @@ programs/clock/Makefile ...@@ -890,6 +890,7 @@ programs/clock/Makefile
programs/cmdlgtst/Makefile programs/cmdlgtst/Makefile
programs/control/Makefile programs/control/Makefile
programs/avitools/Makefile programs/avitools/Makefile
programs/osversioncheck/Makefile
programs/notepad/Makefile programs/notepad/Makefile
programs/progman/Makefile programs/progman/Makefile
programs/regtest/Makefile programs/regtest/Makefile
......
...@@ -3,6 +3,7 @@ SUBDIRS = \ ...@@ -3,6 +3,7 @@ SUBDIRS = \
clock \ clock \
cmdlgtst \ cmdlgtst \
control \ control \
osversioncheck \
notepad \ notepad \
progman \ progman \
regapi \ regapi \
......
1999-09-16 Morten Eriksen <mortene@sim.no>
* [osversioncheck.c]
Created.
DEFS = -DWINELIB
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = none
PROGRAMS = osversioncheck
ALL_LIBS = $(WINELIB) $(X_LIBS) $(XLIB) $(LIBS)
C_SRCS = osversioncheck.c
all: $(PROGRAMS)
@MAKE_RULES@
#this line is needed to prevent winestub.o being linked
WINESTUB =
osversioncheck: $(OBJS)
$(CC) -o osversioncheck $(OBJS) $(LDOPTIONS) $(ALL_LIBS)
install: dummy
$(INSTALL_PROGRAM) osversioncheck $(bindir)/osversioncheck
uninstall: dummy
$(RM) $(bindir)/osversioncheck
dummy:
### Dependencies:
/*
* Use the GetVersionEx() Win32 API call to show information about
* which version of Windows we're running (or which version of Windows
* Wine believes it is masquerading as).
*
* Copyright 1999 by Morten Eriksen <mailto:mortene@sim.no>
*
*/
#include <windows.h>
#include <winbase.h>
#include <stdio.h>
#ifdef WINELIB
/* External declaration here because we don't want to depend on Wine's
internal headers. */
extern HINSTANCE MAIN_WinelibInit( int *argc, char *argv[] );
#endif /* WINELIB */
void
show_last_error(void)
{
DWORD lasterr;
LPTSTR buffer;
BOOL result;
lasterr = GetLastError();
result = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
lasterr,
0,
(LPTSTR)&buffer,
0,
NULL);
if (result) {
fprintf(stderr, "Win32 API error (%ld):\t%s", lasterr, buffer);
LocalFree((HLOCAL)buffer);
}
else {
fprintf(stderr, "Win32 API error (%ld)", lasterr);
}
}
int
main(int argc, char ** argv)
{
BOOL result;
OSVERSIONINFO oiv;
HINSTANCE hinst;
#ifdef WINELIB
if (!(hinst = MAIN_WinelibInit(&argc, argv))) return 0;
#endif /* WINELIB */
/* FIXME: GetVersionEx() is a Win32 API call, so there should be a
preliminary check to see if we're running bare-bones Windows3.xx
(or even lower?). 19990916 mortene. */
oiv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
result = GetVersionEx(&oiv);
if (result == FALSE) {
show_last_error();
}
else {
char * platforms[] = {
"Win32s on Windows 3.1",
"Win32 on Windows 95 or Windows 98",
"Win32 on Windows NT/Windows 2000",
"unknown!"
};
int platformval = 3;
switch (oiv.dwPlatformId) {
case VER_PLATFORM_WIN32s: platformval = 0; break;
case VER_PLATFORM_WIN32_WINDOWS: platformval = 1; break;
case VER_PLATFORM_WIN32_NT: platformval = 2; break;
}
fprintf(stdout,
"MajorVersion: %ld\nMinorVersion: %ld\nBuildNumber: 0x%lx\n"
"Platform: %s\nCSDVersion: '%s'\n",
oiv.dwMajorVersion, oiv.dwMinorVersion, oiv.dwBuildNumber,
platforms[platformval], oiv.szCSDVersion);
}
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment