DOS treats the first 5 file handles as special cases.  They map directly
to stdin, stdout, stderr, stdaux and stdprn.  Windows 16 inherits this
behavoir, and in fact, win16 handles are interchangable with DOS handles.
Some nasty windows programs even do this!

Windows32 issues file handles starting from 1, on the grounds that
most GUI processes don't need a stdin, out, etc.

The wine handle code is implemented in the Win32 style, and the Win16
functions use two macros to convert to and from the two types.

The macros are defined in file.h as follows.:
#define HFILE16_TO_HFILE32(handle) \
(((handle)==0) ? GetStdHandle(STD_INPUT_HANDLE) : \
 ((handle)==1) ? GetStdHandle(STD_OUTPUT_HANDLE) : \
 ((handle)==2) ? GetStdHandle(STD_ERROR_HANDLE) : \
 ((handle)>0x400) ? handle : \
 (handle)-5)

#define HFILE32_TO_HFILE16(handle) ({ HFILE32 hnd=handle; \
      ((hnd==HFILE_ERROR32) ? HFILE_ERROR16 : \
      ((handle>0x400) ? handle : \
       (HFILE16)hnd+5); })

WARNING: be careful not to use the macro HFILE16_TO_HFILE32 on
functions with side-effects, as it will cause them to be evaluated
several times.  This could be considered a bug, but the use of this
macro is limited enough not to need a rewrite.

NOTE: The 0x400 special case above deals with LZW filehandles (see 
misc/lzexpand.c).
