
  Details about the Include Files

   There might exist - rare - conditions where it is necessary to recreate
   one of the include files supplied with WinInc. In this case the 
   following information might be helpful:

   
  a) Some files were not generated by h2incx. These are:

   1. Files with no C counterpart

    - WINASM.INC: this file is manually created

   2. Files that will not be translated

    - PSHPACK1.INC: these files do control structure alignment
    - PSHPACK2.INC
    - PSHPACK4.INC
    - PSHPACK8.INC
    - POPPACK.INC

   3. Files not translated yet (currently manually created)

    - OBJBASE.INC: COM base include


  b) Modified Include Files

  These were the adjustments done after conversion with h2incx:

  COMMCTRL.INC   some pointers to unknown structures modified [POASM]

  DDRAW.INC      Underscore added to methods
                 - CreatePalette, GetPixelFormat, GetDC, ReleaseDC
                 because these names are valid win32 base functions

  DINPUT.INC      Underscore added to methods
                 - Escape
                 because these names are valid win32 base functions

  GL.INC         GLvoid typedef was invalid

  IMAGEHLP.INC   STACKFRAME.BOOL field changed to STACKFRAME.Far_

  MSXML.INC      Add an underscore to methods       
                 - send
                 because these names are valid base functions

  OAIDL.INC      wireSAFEARRAY wrong
                 tagVARIANT structure should be renamed to VARIANT
                 wType parameter in Invoke_ prototypes should be changed
                 from WORD to DWORD

  OBJIDL.INC     Underscore added to methods
                 - RevertToSelf
                 - GetObject
                 - ReleaseMutex
                 because these names are valid windows base functions

  OCIDL.INC      type SIZE has to be changed to SIZE_
                 Underscore added to methods
                 - GetClassInfo
                 - GetCapture
                 - SetCapture
                 - GetFocus
                 - SetFocus
                 - GetDC
                 - ReleaseDC
                 - TranslateAccelerator (3*)
                 because these names are valid win32 base functions

  OLEAUTO.INC    WORD parameter types in VariantChangeType(Ex) should be
                 changed to DWORD
                 VARTYPE parameter types should be changed to DWORD

  OLEIDL.INC     Underscore added to methods
                 - EnumObjects (2*)
                 - GetObject
                 - TranslateAccelerator (2*)
                 - SetMenu
                 - GetClipboardData
                 - GetWindow (5*)
                 because these names are valid win32 base functions

  PROPIDL.INC    rename tagPROPVARIANT to PROPVARIANT
                 inline function PropVariantInit must be changed to a macro

  PRSHT.INC      some pointers to unknown structures modified [POASM]

  RICHEDIT.INC   _WPAD type padding members must be deactivated

  RPCDCE.INC     several occurences of ":ptr unsigned" changed to ":ptr"

  RPCNDR.INC     2* changed __int64 to QWORD
                 several occurences of ":ptr unsigned" changed to ":ptr"
                 some prototypes with variable arguments missed C
                 qualifier

  SHOBJIDL.INC   underscore added to methods
                 - EnumObjects (2*)
                 - GetPath (2*)

  SQLEXT.INC     equate SQL_ODBC_KEYWORDS commented out ("line too long")

  SQLTYPES.INC   typedef PTR deleted
                 "unsigned" removed in 2 typedefs

  URLMON.INC     Underscore added to methods
                 - GetWindow
                 because these names are valid windows base functions

  WINBASE.INC    parameters of type ATOM should be changed to DWORD
                 to avoid MASM invoke bug
                 some "ptr volatile" changed to "ptr" (bug in h2incx) [POASM]
                 some pointers to unknown structures modified [POASM]

  WINCRYPT.INC   - Type_ changed to Type__ in struct KEY_TYPE_SUBTYPE               
                 - ifndef CONST deactivated

  WINDEF.INC     CONST is defined in this file, which is invalid for MASM
                 NULL equate is wrong
                 HFILE_ERROR equate is wrong
                 SIZE structure is translated to SIZE_ but some pointers
                 to this structure are generated wrong

  WINERROR.INC   the error handling macros (MAKE_HRESULT, MAKE_SCODE,...)
                 have to be adjusted! 

  WINIOCTL.INC   Prefetch member changed to Prefetch_.
                 macro IsRecognizedPartition deleted (line too long!)

  WINNT.INC      macros for 64bit processing not translated
                 DECLARE_HANDLE() macro wrong
                 TokenSource member invalid
                 NtCurrentTeb, GetCurrentFiber, GetFiberData must be
                 converted to macros
                 bitfield in IMPORT_OBJECT_HEADER wrong (invalid name)
                 prototypes Int64ShllMod32,... where defined twice
                 ifdef __POASM__ added for "Short" member
                 some "ptr _<name>" changed to "ptr <name>" [POASM]

  WINUSER.INC    prototype FlashWindow isn't created correctly
                 2 definitions are in C++ syntax
                 MASM bug: MAKEINTRESOURCE() should be a macro such as
                 MAKEINTRESOURCEA(). If defined as equate it may cause MASM
                 to produce error "line too long"!?!
                 MENUTEMPLATEA + W: typedef changed to BYTE [POASM]
                 some pointers to unknown structures modified [POASM]

  Additionally the following common problem was fixed:

  MSXML.INC      h2incx can now translate C headers generated by MIDL.
  OAIDL.INC      But there are 2 common errors in the created includes:
  OCIDL.INC      1. interface forward declarations are created wrong and
  OLEIDL.INC        should be deleted (cured since version 0.97)
  SERVPROV.INC   2. prototypes "MIDL_user_allocate" + "MIDL_user_free" 
  UNKNWN.INC        should be deleted. This is a MASM bug: prototypes 
  URLMON.INC        occuring more than once in an assembly unit may cause
  OBJIDL.INC        an (unresolved) external.
  OLECTL.INC


  c) Non-Win32 includes (C header files, used by windows.h)

  The following files for MS VC are included as well, since they are used
  by the Win32 includes:

  - CTYPE.INC
  - EXCPT.INC
  - FLOAT.INC
  - LIMITS.INC
  - MATH.INC
  - STDARG.INC
  - STDLIB.INC
  - STRING.INC

  STDIO.INC has been added as well, since it comes in handy. However, some
  of the stream functions might need to distinguish between the static and
  the dynamic CRT library. Add the "-D_ML" option to assembler's command line
  if the static CRT library is to be used (this is similiar to the /ML switch
  for MS VC).


