You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
win32 started as a small experimental project to play with FFI, but has grown substantially over the last year or so to provide a fairly broad projection of the Win32 API. In doing so, it's become used by an increasing number of Flutter projects including several in-box platform packages. I'm tremendously grateful to those of you who have contributed, whether by pointing out bugs or offering pull requests. While it is a labor of love, it is also something I do in my free time, so I can't offer a guaranteed SLA. That said, if there's something broken, I'll try and fix it quickly.
What I'm working on (v3)
The current main branch and published package has fairly broad coverage of the core C-based Win32 APIs. At first, these APIs were hand-generated, and then scraped manually from C header files, but that rapidly became unmanageable; fortunately, around the same time, a new Microsoft project (https://github.com/Microsoft/win32metadata) became available which attempts to provide a standardized metadata source for all Win32 APIs. I spent some time building out a separate package (https://github.com/timsneath/winmd) to provide a Dart reader for Windows metadata, which is now used to generate all APIs from the published metadata.
To date, however, the APIs projected are still specified in a JSON file. The full metadata library contains many thousands of esoteric COM APIs, but projecting all of them would clutter the namespace. As a result, I've been working in a separate namespace branch, which attempts to project the entire win32metadata.winmd file.
This is laborious work, not least because there are complex namespace clashes and interdependencies, referenced .NET pseudo-classes like GUID, and COM interfaces that I don't yet project correctly. When complete, Dart will have a full projection of the entire Win32 API (from Windows.Win32.AI.MachineLearning.DirectML to Windows.Win32.Web.MsHtml) using Microsoft metadata. Adding to the complexity, the metadata itself is still in development.
Beyond that, there is all manner of fun stuff to address in the issues -- WinRT and Reunion support, COM imports, better samples. But that's what I'm working on right now.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
win32
started as a small experimental project to play with FFI, but has grown substantially over the last year or so to provide a fairly broad projection of the Win32 API. In doing so, it's become used by an increasing number of Flutter projects including several in-box platform packages. I'm tremendously grateful to those of you who have contributed, whether by pointing out bugs or offering pull requests. While it is a labor of love, it is also something I do in my free time, so I can't offer a guaranteed SLA. That said, if there's something broken, I'll try and fix it quickly.What I'm working on (v3)
The current main branch and published package has fairly broad coverage of the core C-based Win32 APIs. At first, these APIs were hand-generated, and then scraped manually from C header files, but that rapidly became unmanageable; fortunately, around the same time, a new Microsoft project (https://github.com/Microsoft/win32metadata) became available which attempts to provide a standardized metadata source for all Win32 APIs. I spent some time building out a separate package (https://github.com/timsneath/winmd) to provide a Dart reader for Windows metadata, which is now used to generate all APIs from the published metadata.
To date, however, the APIs projected are still specified in a JSON file. The full metadata library contains many thousands of esoteric COM APIs, but projecting all of them would clutter the namespace. As a result, I've been working in a separate
namespace
branch, which attempts to project the entirewin32metadata.winmd
file.This is laborious work, not least because there are complex namespace clashes and interdependencies, referenced .NET pseudo-classes like
GUID
, and COM interfaces that I don't yet project correctly. When complete, Dart will have a full projection of the entire Win32 API (fromWindows.Win32.AI.MachineLearning.DirectML
toWindows.Win32.Web.MsHtml
) using Microsoft metadata. Adding to the complexity, the metadata itself is still in development.Beyond that, there is all manner of fun stuff to address in the issues -- WinRT and Reunion support, COM imports, better samples. But that's what I'm working on right now.
Beta Was this translation helpful? Give feedback.
All reactions