WinInc - Masm/JWasm include files for Win32 and Win64
1. About WinInc
WinInc is a set of include files for Masm, JWasm or PoAsm created by
h2incx. It contains all
includes required to build Win32 and Win64 applications or dlls. If you also
have got Open Watcom or PellesC (see the links page where to get it,
or just download the most important OW tools from the JWasm page ),
there's everything available to create Windows-PE binaries in Assembler.
Be aware that WinInc is intended for people being familiar with the
command line interface and experienced in programming (not necessarily Assembler, however).
There is also no installer supplied, just a compressed package of directories and files
together with a simple README.TXT trying to explain things.
As already mentioned, the WinInc include files were generated by h2incx.
As source the C header files from the Microsoft Platform SDK were used.
Since the conversion done by h2incx is not perfect, some of the created
files had to be slightly adjusted afterwards.
2. Comparison WinInc vs Masm32
WinInc is mostly compatible with the include files supplied with Masm32. The
main differences are:
Other issues in which WinInc differs from Masm32:
In Masm32 there is one big include, WINDOWS.INC, which contains the Win32 declarations,
and a bunch of other includes which contain the function prototypes.
The include files of WinInc match 1:1 the header files contained in MSVC or MS PSDK,
with extension .H replaced by .INC of course.
unlike Masm32 the prototype
parameters of the WinInc include files are "typed". They usually have
the same type as their C counterparts. In Masm32 all parameter types are "DWORD".
Having typed parameters may be advantageous if the target
has to be debugged and the debugger knows how to handle the MASM debug type
The few name conflicts are resolved differently. In WinInc,
a name which is used in the Win32 API and is also a MASM reserved word
(for example, "mask"), is changed by adding a "_" suffix. In Masm32 the
kind of the name modifications isn't consistent.
the WinInc includes are more up-to-date than the ones coming with Masm32.
All declarations for the Win32 API extensions added to Windows 2000 and Windows XP are there.
for some reason Masm32 doesn't allow to develop Open Source software with it.
Furthermore none of its parts are redistributable. WinInc does
not have such restrictions, it is Public Domain.
- No assembler, linker or resource compiler is included in WinInc.
See the JWasm page to selectively download the tools you need.
- No library of helper functions (M32LIB in Masm32) is included,
instead it is recommended (and supported) to use functions contained in C runtime libraries
like libc, crtdll, msvcrt, ....
- No IDE/editor is included.
Some simple source samples are included in WinInc, showing
4. Extensions for WinInc
- WinIncEx: some rarely used include files from the Platform SDK (MSHTML, ... )
- SDL: adds SDL (Simple DirectMedia Layer) support to WinInc.
5. Discussion and Feedback
Please use the SourceForge "trackers" for WinInc
bug reports or
For general discussion or questions about WinInc, there is the open discussion
List of all packages available for download