Windows API

[1] Base services include features such as the file system, devices, processes, threads, and error handling.

[3][4] The User Interface component provides features to create and manage screen windows and most basic controls, such as buttons and scrollbars, receive mouse and keyboard input, and other functions associated with the graphical user interface (GUI) part of Windows.

(...) Veteran programmers often curled up in horror or laughter when encountering the Windows hello-world program.

"[16] Petzold explains that while it was the first Windows sample programs developers were introduced to, it was quite "fancy" and more complex than needed.

Tired of people ridiculing the length of the sample, he eventually reduced it to a simple MessageBox call.

Which is why I get particularly furious when people accuse Microsoft of maliciously breaking applications during OS upgrades.

ReactOS goes a step further and aims to implement the full Windows operating system, working closely with the Wine project to promote code re-use and compatibility.

Windows Interface Source Environment (WISE) was a licensing program from Microsoft which allowed developers to recompile and run Windows-based applications on Unix and Macintosh platforms.

To develop software that uses the Windows API, a compiler must be able to use the Microsoft-specific DLLs listed above (COM-objects are outside Win32 and assume a certain vtable layout).

For the language C++, Zortech (later Symantec, then Digital Mars), Watcom and Borland have all produced well known commercial compilers that have been used often with Win16, Win32s, and Win32.

Some of them supplied memory extenders, allowing Win32 programs to run on Win16 with Microsoft's redistributable Win32s DLL.

For certain classes of applications, the compiler system should also be able to handle interface description language (IDL) files.

For a time, the Microsoft Visual Studio and Borland's integrated development system were the only integrated development environments (IDEs) that could provide this (although, the SDK is downloadable for free separately from the entire IDE suite, from Microsoft Windows SDK for Windows 7 and .NET Framework 4).

As of 2016[update], the MinGW and Cygwin projects also provide such an environment based on the GNU Compiler Collection (GCC), using a stand-alone header file set, to make linking against the Win32-specific DLLs simple.

The MASM32 package is a mature project providing support for the Windows API under Microsoft Macro Assembler (MASM) by using custom made or converted headers and libraries from the Platform SDK.

Flat assembler FASM allows building Windows programs without using an external linker, even when running on Linux.

Windows specific compiler support is also needed for Structured Exception Handling (SEH).

SEH is based on pushing exception handler frames onto the stack, then adding them to a linked list stored in thread-local storage (the first field of the thread environment block).

When an exception is thrown, the kernel and base libraries unwind the stack running handlers and filters as they are encountered.

Eventually, every exception unhandled by the application will be dealt with by the default backstop handler, which pops up the Windows common crash dialog.

ReactOS is a free and open-source operating system that aims to implement the Windows API