For the last 10 years, Microsoft has been shouting from the rooftops that it wants Windows to be a modern platform. Whether it was Metro UI with Windows 8, Windows RT for Surface, and Windows UWP. Of course, we are now nearing the next step of those efforts with Windows 10X. However, Microsoft is still also committed to maintaining Win32 applications.

Perhaps this is part of the problem, Microsoft cannot choose if it wants new or old. Of course, the company would argue it is giving users what they want. Some want the old Win32 experience, while others will embrace the modern concepts of app usership.

In a blog post, Microsoft says it wants to make it easier to access Win32 APIs in more programming languages. Current Win32 APIs are only available in C++ and C.

For developers creating programs under other languages, they must wrap and bind the app to the Win32 API, which can result in errors.

New Tool

Microsoft wants to make the development process for Win32 APIs easier with a new tooling known as win32metadata:

“The goal of the win32metadata project is to provide a complete description of the Win32 API surface in metadata so that it can be projected to any language in an automated way, improving correctness and minimizing maintenance overhead. The output of this project is effectively an ECMA-335 compliant Windows metadata file (winmd) published to containing metadata describing the entire Win32 API surface.”

Microsoft says developers can tap into win32metadate to create pre-configured wrappers for Win32 APIs. This means they can avoid the errors and don’t need to manually write every binding. The company wants the tooling to become important for bringing more languages to Win32 APIs.

Tip of the day:

Do you often experience PC freezes or crashs with Blue Screens of Death (BSOD)? Then you should use Windows Memory Diagnostic to test your computers RAM for any problems that might be caused from damaged memory modules. This is a tool built into Windows 10 which can be launched at startup to run various memory checks.