windows-d (Windows SDK projection) is ready
Alexander
roland.taverner at gmail.com
Tue Jun 2 20:26:46 UTC 2026
Finally, I did it.
The original repository,
[rumbu13/windows-d](https://github.com/rumbu13/windows-d),
appears to be abandoned. The owner has not accepted even small
PRs for at least three years. My fork is available here:
[RolandTaverner/windows-d](https://github.com/RolandTaverner/windows-d).
### So what's new (besides it's work now)
1. Updated to the latest version of [Microsoft Win32
Metadata](https://github.com/microsoft/win32metadata).
2. Added `version()` directives based on
`SupportedArchitectureAttribute` values (`X86_64`, `AArch64`,
`X86`) where available.
3. Added online documentation references from
`DocumentationAttribute`.
4. Added `deprecated()` directives generated from
`ObsoleteAttribute`.
5. Completely reworked the CLI metadata access code. The
implementation is now heavily checked at compile time, making it
much harder to accidentally mix up string indexes, GUID indexes
and expecially coded indexes. Future contributors (if any) should
have much less PITA working with the code.
### What's still broken
1. Inline documentation generation. I haven't touched it yet.
2. WinRT support. I have no idea what's going on there, it
references interfaces that don't seem to exist.
3. About a dozen x86-only functions in
`windows.win32.system.diagnostics.debug`, because the
architecture attributes in the metadata are missing.
### The PROBLEM: `SupportedOSPlatformAttribute`
`SupportedOSPlatformAttribute` describes the minimum required
Windows version, with values such as: `windows10.0.10240`,
`windows5.0` (yeah, this), `windows5.1.2600` and so on.
Because of this, it cannot be mapped to D's `version()` system.
It's not even old good WINVER. The only solution I can see is
generating code for a specific Windows version when necessary
(not implemented yet).
More information about the Digitalmars-d
mailing list