{
[color=red]This code is only compatible with Windows 95, 98, Me and NT 4, 2000![/color]
No XP support, yet. If I find out how this could work, I'll update the code.
If your code will definitely not run on XP, you may undefine the compiler
variable XPVERSIONCHECK which will strip the version checking off the code :)
Note, this version will only work, as long as the functions are imported through
the import table. This is true for any
Win32 app and Kernel32.dll!
Anyway, if you introduce symbol names, that conflict with the function names,
this code is likely to break! I am not sure wether this is possible at all for
kernel32 functions, because kernel32.dll is implicitly bound, but maybe it is ...
so be warned!
Also, this code is only compatible with the i386 processor architecture. This
becomes evident as soon as you recognise the assembler parts in the code.
This code is PUBLIC DOMAIN!!!
}