Revision #18

You are currently reviewing an older revision of this page.
Go to current version

What is the Windows API?

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on 64-bit Windows. Almost all Windows programs interact with the Windows API; on the Windows NT line of OSes, a small number (such as programs started early in the Windows startup process) use the Native API.
The Windows API is used by every software developer who wants to build applications that target the Windows operating system: in the past days, where Windows development was mainly message driven, the developer had to manually write the code that created the window, set up the message processing loop and react to evey user action by receiving messages by the operating system (for example, WM_LBUTTONDOWN, when the users clicked the left mouse button) and processing them appropriately; nowadays, the modern integrated development environments (IDEs) hide the complexity of such a programming approach by allowing the developers to graphically create the user interface of their applications, following the Rapid Application Development (RAD) paradigm.
Anyway, writing every single line of code is not practical and leads to a big waste of time, so many software companies developed packages that wrap the big set of Windows APIs in more compact and usable class libraries, that can simplify the developers' work: for example, Borland introduced the Object Windows Library (OWL) while Microsoft developed the Microsoft Foundation Class (MFC) (nowadays, there's the Microsoft .NET Framework).
The very large set of libraries and functions that constitute the API are provided to the software developers by the Software Development Kit (SDK, also known as Platform SDK), along with a complete set of tools (like compilers and linkers).

Community Resources

Web Pages

Microsoft Knowledge Base Articles

Technical Articles



This article was written by Luigi Bruno.

Other Languages

This article is also available in the following languages:

Italian (it-IT)

Revert to this revision