Added a section on parsing the metadata.

This commit is contained in:
Mike Battista 2021-06-10 21:30:00 -07:00
Родитель ff5bbe9d28
Коммит ece70f51eb
1 изменённых файлов: 13 добавлений и 2 удалений

Просмотреть файл

@ -12,7 +12,10 @@ Below are some principles that all language projections should follow:
* Language projections should support filtering available APIs based on the SDK version that a project targets
* Language projections should enable developers to target a specific set of APIs and link or include only the artifacts necessary to provide support for those APIs
## Projections
## Consuming language projections
To call Win32 APIs from the language of your choice based off of this metadata, use the following language projections:
* C# - https://github.com/microsoft/cswin32 (Microsoft)
* C++ - https://github.com/microsoft/cppwin32 (Microsoft)
* Rust - https://github.com/microsoft/windows-rs (Microsoft)
@ -20,4 +23,12 @@ Below are some principles that all language projections should follow:
* Dart - https://github.com/timsneath/win32 (Community)
* Zig - https://github.com/marlersoft/zigwin32 (Community)
Note: Community projects are listed here to help with discovery but are not officially validated by Microsoft.
Note: Community projects are listed here to help with discovery but are not officially validated by Microsoft.
## Implementing language projections
### Parsing the metadata
The winmd file produced by this project can be parsed with any ECMA-335 compliant parser like .NET [System.Reflection](https://docs.microsoft.com/dotnet/api/system.reflection?view=net-5.0) and [System.Reflection.Metadata](https://docs.microsoft.com/dotnet/api/system.reflection.metadata?view=net-5.0) APIs.
Alternatively, a JSON translation of the winmd file can be found at https://github.com/marlersoft/win32json.