PackageTrack
Sign in Get early access

win32

Call common Windows APIs directly from Dart using FFI.

6.4.0 1000K downloads/mo #36 most downloaded on pub.dev halildurmus/win32

What this package is like to depend on

Last release 18 days ago

05 Aug 2026

Release timing varies

gaps range from 1 weeks to 5 months

Nearly every release is documented

notes for 137 of 137 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

152 releases · first in 2020

7 releases in the last 12 months

see the full history below

Release timeline

152 releases · Mar 2020 to Aug 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 152
  1. 6.4.0 05 Aug 2026
    Release notes

    6.4.0 - 2026-08-05

    🚀 Features

    • Add ResumeThread and SuspendThread APIs (#1117)
    • Add DNS Service Registration functions (#1118)
    Open source →
    Release notes

    🚀 Features

    • Add ResumeThread and SuspendThread APIs (#1117)
    • Add DNS Service Registration functions (#1118)
    Open source →
  2. 6.3.0 22 May 2026
    Release notes

    6.3.0 - 2026-05-22

    🧹 Refactor

    • Remove the build hook that either downloaded prebuilt binaries or compiled
      native C wrappers for Win32 APIs that report errors via GetLastError().
      These bindings now pre-resolve GetLastError() before each call, ensuring the
      error code is captured reliably without any native code.
    Open source →
    Release notes

    🧹 Refactor

    • Remove the build hook that either downloaded prebuilt binaries or compiled native C wrappers for Win32 APIs that report errors via GetLastError(). These bindings now pre-resolve GetLastError() before each call, ensuring the error code is captured reliably without any native code.
    Open source →
  3. 6.2.0 07 May 2026
    Release notes

    6.2.0 - 2026-05-07

    🚀 Features

    • Add OsVersion class for reliable Windows version detection and OS baseline
      checks. Use OsVersion.current to retrieve the running version and the
      relational operators (<, <=, >=, >) to range-check it against
      well-known baselines (OsVersion.win10, OsVersion.win11, etc.).

    • Add extension methods on GUID for comparison and ordering: compareTo(),
      isEqualTo(), and the relational operators (<, <=, >=, >). Useful for
      using GUID as a key in sorted collections such as SplayTreeMap.

    • Add GET_X_LPARAM() and GET_Y_LPARAM() macros for correctly extracting
      signed x/y cursor coordinates from Windows message parameters. Unlike
      LOWORD()/HIWORD(), these macros handle negative coordinates that occur
      when a secondary display is positioned to the left of or above the primary
      display.

    🐛 Bug Fixes

    • Fix IsWindowsServer() using the wrong constant.
    Open source →
    Release notes

    🚀 Features

    • Add OsVersion class for reliable Windows version detection and OS baseline checks. Use OsVersion.current to retrieve the running version and the relational operators (<, <=, >=, >) to range-check it against well-known baselines (OsVersion.win10, OsVersion.win11, etc.).

    • Add extension methods on GUID for comparison and ordering: compareTo(), isEqualTo(), and the relational operators (<, <=, >=, >). Useful for using GUID as a key in sorted collections such as SplayTreeMap.

    • Add GET_X_LPARAM() and GET_Y_LPARAM() macros for correctly extracting signed x/y cursor coordinates from Windows message parameters. Unlike LOWORD()/HIWORD(), these macros handle negative coordinates that occur when a secondary display is positioned to the left of or above the primary display.

    🐛 Bug Fixes

    • Fix IsWindowsServer() using the wrong constant.
    Open source →
  4. 6.1.0 22 Apr 2026
    Release notes

    6.1.0 - 2026-04-22

    🚀 Features

    • The build hook now downloads prebuilt binaries from GitHub release artifacts
      instead of compiling from C source, eliminating the MSVC requirement for
      users who don't have the necessary tools installed.

      Users who prefer or require local compilation can opt out by setting the
      local_build user-define to true in their pubspec.yaml:

      hooks:
        user_defines:
          win32:
            local_build: true
    Open source →
    Release notes

    🚀 Features

    • The build hook now downloads prebuilt binaries from GitHub release artifacts instead of compiling from C source, eliminating the MSVC requirement for users who don't have the necessary tools installed.

      Users who prefer or require local compilation can opt out by setting the local_build user-define to true in their pubspec.yaml:

      hooks:
        user_defines:
          win32:
            local_build: true
      
    Open source →
  5. 6.0.1 11 Apr 2026
    Release notes

    6.0.1 - 2026-04-11

    📦 Dependencies

    • Lower minimum Dart SDK to 3.10
    Open source →
    Release notes

    📦 Dependencies

    • Lower minimum Dart SDK to 3.10
    Open source →
  6. 6.0.0 22 Feb 2026
    Release notes

    🔄 Breaking Changes

    This release introduces a major redesign of the Win32 Dart API with a strong focus on type safety, deterministic resource management, and idiomatic Dart usage. Most changes are mechanical but widespread.

    Key breaking changes include:

    • Exception-based error handling

      • APIs returning HRESULT now throw WindowsException on failure
      • Logical return values are returned directly instead of via out-parameters
    • New error model for APIs that call SetLastError()

      • Such APIs now return Win32Result<T> which captures both the logical return value and the associated last-error code atomically on the native side, ensuring the error state is preserved
    • Strongly typed Win32 handles

      • Opaque handles (e.g., HKEY, HWND, HICON) are now extension types instead of plain int or Pointer values
    • Win32 BOOL mapped to Dart bool

      • Applies uniformly to return values, parameters, and struct fields
    • Enums are now extension types

      • Replaces raw int constants with strongly typed extension types
    • Explicit COM lifetime management

      • Automatic cleanup via Finalizer has been removed
      • COM objects must be released explicitly or managed with Arena
    • COM and HRESULT API simplifications

      • QueryInterface-style methods now return interfaces directly
      • Manual HRESULT checks and pointer plumbing are eliminated
    • Major string API cleanup

      • Renamed and simplified string conversion helpers
      • Removed TEXT(), BSTR class, and legacy helpers
    • GUID API redesign

      • Removed Guid class and string-based helpers
      • GUID struct is now the single, explicit representation
    • winsock2 library removed

      • All Winsock APIs are now exported directly from win32.dart
    • Dispatcher API redesign

      • Strongly typed results
      • No manual VARIANT or DISPPARAMS construction
      • Explicit ownership and cleanup

    See the Migration Guide with examples and mechanical migration steps.

    🚀 Features

    • Scope-based lifetime management

      • New extensions for Arena to manage native memory and COM lifetimes
    • Much stronger type safety across the API surface

      • Typed handles, enums, booleans, GUIDs, and COM interfaces
    • More idiomatic Dart APIs

      • Fewer pointers, fewer out-parameters, clearer ownership rules
    • Reliable error handling

      • Atomic capture of GetLastError() values on native side, exposed via Win32Result<T>
    • Cleaner, more consistent conversion APIs

      • Unified naming and semantics for strings, binary data, and FILETIME values
    • Native memory leak detection via package:ffi_leak_tracker

      • Tracks allocations with call stacks and timestamps; see the Leak Tracking guide for details
    Open source →
  7. 5.15.0 07 Oct 2025
    Release notes

    🚀 Features

    • Add missing wincon.h console constants and docs to some existing constants. Fixes #1008 by @timmaffett in #1009
    • Add ProcessIdToSessionId function by @kjeremy in #1002

    New Contributors ❤️

    • @timmaffett made their first contribution in #1009

    • @kjeremy made their first contribution in #1002

    Open source →
  8. 5.14.0 12 Jun 2025
    Release notes

    🚀 Features

    • Add APIs for querying events by @halildurmus in #993
    • Add PathAllocCanonicalize/PathAllocCombine by @brianquinlan in #988

    📝 Documentation

    • (examples) Fix link by @halildurmus

    🎨 Styling

    • Migrate to package:halildurmus_lints by @halildurmus in #990
    • Reformat files by @halildurmus in #989
    Open source →
  9. 5.13.0 09 May 2025
    Release notes

    🚀 Features

    • Add support for GetCurrentDirectory by @brianquinlan in #986
    • Add SetLastError function by @halildurmus in #975
    • Add extension methods to convert FILETIME to DateTime by @halildurmus in #974
    • Add the WIN32_FILE_ATTRIBUTE_DATA struct by @brianquinlan in #973

    ⚙️ Miscellaneous Tasks

    • Tweak win32 workflow by @halildurmus in #982
    Open source →
  10. 5.12.0 11 Mar 2025
    Release notes

    🚀 Features

    • Add more Kernel32 APIs by @halildurmus in #969
    • Add MOVE_FILE_FLAGS enum by @halildurmus in #967
    • Add support for MoveFileEx by @brianquinlan in #966

    New Contributors ❤️

    • @brianquinlan made their first contribution in #966
    Open source →
  11. 5.11.0 19 Feb 2025
    Release notes

    🚀 Features

    • Revert deprecation of top-level constants of enums by @halildurmus in #960
    • Improve projection of flexible array members by @halildurmus in #959

    🎨 Styling

    • Format with tall-style by @halildurmus in #957
    Open source →
  12. 5.10.1 27 Jan 2025
    Release notes

    🐛 Bug Fixes

    ⚙️ Miscellaneous Tasks

    New Contributors ❤️

    • @weasdown made their first contribution in #949
    Open source →
  13. 5.10.0 01 Jan 2025
    Release notes

    🚀 Features

    • Add IsWindows8OrGreater and GetCurrentPackageFullName APIs (#944) - (73e4c53)
    Open source →
  14. 5.9.0 29 Nov 2024
    Release notes

    🚀 Features

    • (COM) Add more Core Audio interfaces (#937) - (2eaeef1)
    • Add GetWindowCompositionAttribute, SetWindowCompositionAttribute APIs (#938) - (2081e94)
    • Deprecate SCARD_SCOPE_SYSTEM constant (#930) - (c6c2c5c)

    🐛 Bug Fixes

    • Revert deprecation of several constants (#929) - (dd09757)

    🧹 Refactor

    📝 Documentation

    • (website) Tweak commands - (2f75003)
    • (website) Update contributing guide - (865d9ec)
    • Update PUBLISHING.md - (18420d6)

    ⚙️ Miscellaneous Tasks

    Open source →
  15. 5.8.0 02 Nov 2024
    Release notes
    • Add DISP_E_* constants
    • Add argError optional parameter to the Dispatcher.invoke method, allowing retrieval of the index of the first parameter in rgvarg that encounters an error, if applicable
    • Update Dispatcher.set to accept a Pointer<VARIANT> for the value parameter
    • Add byReference optional named parameter to the Dispatcher.set method, enabling property assignment by reference instead of by value
    Open source →
  16. 5.7.2 28 Oct 2024
    Release notes
    • Add DROPFILES struct
    • Add DragQueryFile API
    Open source →
  17. 5.7.1 22 Oct 2024
    Release notes
    • Add Pointer<VARIANT> optional parameter to Dispatcher.invoke method
    • Add Dispatcher.fromCLSID constructor for creating a Dispatcher from a CLSID
    Open source →
  18. 5.7.0 19 Oct 2024
    Release notes
    • Add UnregisterDeviceNotification API (#916)
    • Add DEV_BROADCAST_VOLUME struct
    • Add DRIVE_UNKNOWN, DRIVE_NO_ROOT_DIR, DRIVE_REMOVABLE, DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM, and DRIVE_RAMDISK constants
    • Add Dispatcher class, a thin wrapper around the IDispatch interface, used for invoking methods and properties on COM automation objects
    Open source →
  19. 5.6.1 18 Oct 2024
    Release notes
    • Add RegisterDeviceNotification, WTSRegisterSessionNotification, and WTSUnRegisterSessionNotification APIs (#913)
    • Add NOTIFY_FOR_THIS_SESSION and NOTIFY_FOR_ALL_SESSIONS constants (#913)
    • Add DEV_BROADCAST_DEVICEINTERFACE_ and DEV_BROADCAST_HDR structures (#913)
    • Add DEV_BROADCAST_HDR_DEVICE_TYPE enum (#913)
    • Add GUID_CONSOLE_DISPLAY_STATE, WM_WTSESSION_CHANGE, and WTS_SESSION_* constants (#914)
    Open source →
  20. 5.6.0 12 Oct 2024
    Release notes
    • Add DISPLAY_DEVICE_STATE_FLAGS enum (#901)
    • Add FILE_DEVICE_TYPE enum (#901)
    • Deprecate SCARD_SCOPE_USER constant in favor of SCARD_SCOPE.SCARD_SCOPE_USER (#901)
    • Deprecate SCARD_SCOPE_TERMINAL constant in favor of SCARD_SCOPE.SCARD_SCOPE_TERMINAL (#901)
    • Deprecate SYMFLAG_VALUEPRESENT constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_VALUEPRESENT (#901)
    • Deprecate SYMFLAG_REGISTER constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_REGISTER (#901)
    • Deprecate SYMFLAG_REGREL constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_REGREL (#901)
    • Deprecate SYMFLAG_FRAMEREL constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_FRAMEREL (#901)
    • Deprecate SYMFLAG_PARAMETER constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_PARAMETER (#901)
    • Deprecate SYMFLAG_LOCAL constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_LOCAL (#901)
    • Deprecate SYMFLAG_CONSTANT constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_CONSTANT (#901)
    • Deprecate SYMFLAG_EXPORT constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_EXPORT (#901)
    • Deprecate SYMFLAG_FORWARDER constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_FORWARDER (#901)
    • Deprecate SYMFLAG_FUNCTION constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_FUNCTION (#901)
    • Deprecate SYMFLAG_VIRTUAL constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_VIRTUAL (#901)
    • Deprecate SYMFLAG_THUNK constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_THUNK (#901)
    • Deprecate SYMFLAG_TLSREL constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_TLSREL (#901)
    • Deprecate SYMFLAG_SLOT constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_SLOT (#901)
    • Deprecate SYMFLAG_ILREL constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_ILREL (#901)
    • Deprecate SYMFLAG_METADATA constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_METADATA (#901)
    • Deprecate SYMFLAG_CLR_TOKEN constant in favor of SYMBOL_INFO_FLAGS.SYMFLAG_CLR_TOKEN (#901)
    • Deprecate SND_SYNC constant in favor of SND_FLAGS.SND_SYNC (#901)
    • Deprecate SND_ASYNC constant in favor of SND_FLAGS.SND_ASYNC (#901)
    • Deprecate SND_NODEFAULT constant in favor of SND_FLAGS.SND_NODEFAULT (#901)
    • Deprecate SND_MEMORY constant in favor of SND_FLAGS.SND_MEMORY (#901)
    • Deprecate SND_LOOP constant in favor of SND_FLAGS.SND_LOOP (#901)
    • Deprecate SND_NOSTOP constant in favor of SND_FLAGS.SND_NOSTOP (#901)
    • Deprecate SND_NOWAIT constant in favor of SND_FLAGS.SND_NOWAIT (#901)
    • Deprecate SND_ALIAS constant in favor of SND_FLAGS.SND_ALIAS (#901)
    • Deprecate SND_ALIAS_ID constant in favor of SND_FLAGS.SND_ALIAS_ID (#901)
    • Deprecate SND_FILENAME constant in favor of SND_FLAGS.SND_FILENAME (#901)
    • Deprecate SND_RESOURCE constant in favor of SND_FLAGS.SND_RESOURCE (#901)
    • Deprecate SND_PURGE constant in favor of SND_FLAGS.SND_PURGE (#901)
    • Deprecate SND_APPLICATION constant in favor of SND_FLAGS.SND_APPLICATION (#901)
    • Deprecate SND_SENTRY constant in favor of SND_FLAGS.SND_SENTRY (#901)
    • Deprecate SND_RING constant in favor of SND_FLAGS.SND_RING (#901)
    • Deprecate SND_SYSTEM constant in favor of SND_FLAGS.SND_SYSTEM (#901)
    • Deprecate DISPLAY_DEVICE_MIRRORING_DRIVER constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_MIRRORING_DRIVER (#901)
    • Deprecate DISPLAY_DEVICE_VGA_COMPATIBLE constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_VGA_COMPATIBLE (#901)
    • Deprecate DISPLAY_DEVICE_REMOVABLE constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_REMOVABLE (#901)
    • Deprecate DISPLAY_DEVICE_MODESPRUNED constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_MODESPRUNED (#901)
    • Deprecate DISPLAY_DEVICE_ACTIVE constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_ACTIVE (#901)
    • Deprecate DISPLAY_DEVICE_PRIMARY_DEVICE constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_PRIMARY_DEVICE (#901)
    • Deprecate WDA_NONE constant in favor of WINDOW_DISPLAY_AFFINITY.WDA_NONE (#901)
    • Deprecate WDA_MONITOR constant in favor of WINDOW_DISPLAY_AFFINITY.WDA_MONITOR (#901)
    • Deprecate WDA_EXCLUDEFROMCAPTURE constant in favor of WINDOW_DISPLAY_AFFINITY.WDA_EXCLUDEFROMCAPTURE (#901)
    • Deprecate WAVE_FORMAT_QUERY constant in favor of MIDI_WAVE_OPEN_TYPE.WAVE_FORMAT_QUERY (#901)
    • Deprecate WAVE_ALLOWSYNC constant in favor of MIDI_WAVE_OPEN_TYPE.WAVE_ALLOWSYNC (#901)
    • Deprecate WAVE_MAPPED constant in favor of MIDI_WAVE_OPEN_TYPE.WAVE_MAPPED (#901)
    • Deprecate WAVE_FORMAT_DIRECT constant in favor of MIDI_WAVE_OPEN_TYPE.WAVE_FORMAT_DIRECT (#901)
    • Deprecate WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE constant in favor of MIDI_WAVE_OPEN_TYPE.WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE (#901)
    • Deprecate VARIANT_NOVALUEPROP constant in favor of VAR_CHANGE_FLAGS.VARIANT_NOVALUEPROP (#901)
    • Deprecate VARIANT_ALPHABOOL constant in favor of VAR_CHANGE_FLAGS.VARIANT_ALPHABOOL (#901)
    • Deprecate VARIANT_NOUSEROVERRIDE constant in favor of VAR_CHANGE_FLAGS.VARIANT_NOUSEROVERRIDE (#901)
    • Deprecate VARIANT_LOCALBOOL constant in favor of VAR_CHANGE_FLAGS.VARIANT_LOCALBOOL (#901)
    • Deprecate NO_ERROR constant in favor of WIN32_ERROR.NO_ERROR (#901)
    • Deprecate DISPLAY_DEVICE_ATTACHED_TO_DESKTOP constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_ATTACHED_TO_DESKTOP (#901)
    • Deprecate DISPLAY_DEVICE_ATTACHED constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_ATTACHED (#901)
    • Deprecate DISPLAY_DEVICE_MULTI_DRIVER constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_MULTI_DRIVER (#901)
    • Deprecate DISPLAY_DEVICE_ACC_DRIVER constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_ACC_DRIVER (#901)
    • Deprecate DISPLAY_DEVICE_UNSAFE_MODES_ON constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_UNSAFE_MODES_ON (#901)
    • Deprecate DISPLAY_DEVICE_TS_COMPATIBLE constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_TS_COMPATIBLE (#901)
    • Deprecate DISPLAY_DEVICE_RDPUDD constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_RDPUDD (#901)
    • Deprecate DISPLAY_DEVICE_REMOTE constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_REMOTE (#901)
    • Deprecate DISPLAY_DEVICE_DISCONNECT constant in favor of DISPLAY_DEVICE_STATE_FLAGS.DISPLAY_DEVICE_DISCONNECT (#901)
    • Deprecate PRODUCT_UNDEFINED constant in favor of OS_PRODUCT_TYPE.PRODUCT_UNDEFINED (#901)
    • Deprecate PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT constant in favor of OS_PRODUCT_TYPE.PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT (#901)
    • Deprecate PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL constant in favor of OS_PRODUCT_TYPE.PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL (#901)
    • Deprecate PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC constant in favor of OS_PRODUCT_TYPE.PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC (#901)
    • Deprecate PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC constant in favor of OS_PRODUCT_TYPE.PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC (#901)
    • Deprecate PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE constant in favor of OS_PRODUCT_TYPE.PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE (#901)
    • Deprecate PRODUCT_CLUSTER_SERVER_V constant in favor of OS_PRODUCT_TYPE.PRODUCT_CLUSTER_SERVER_V (#901)
    • Deprecate PRODUCT_STARTER_E constant in favor of OS_PRODUCT_TYPE.PRODUCT_STARTER_E (#901)
    • Deprecate PRODUCT_HOME_BASIC_E constant in favor of OS_PRODUCT_TYPE.PRODUCT_HOME_BASIC_E (#901)
    • Deprecate PRODUCT_HOME_PREMIUM_E constant in favor of OS_PRODUCT_TYPE.PRODUCT_HOME_PREMIUM_E (#901)
    • Deprecate PRODUCT_PROFESSIONAL_E constant in favor of OS_PRODUCT_TYPE.PRODUCT_PROFESSIONAL_E (#901)
    • Deprecate PRODUCT_ENTERPRISE_E constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_E (#901)
    • Deprecate PRODUCT_ULTIMATE_E constant in favor of OS_PRODUCT_TYPE.PRODUCT_ULTIMATE_E (#901)
    • Deprecate PRODUCT_ENTERPRISE_EVALUATION constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_EVALUATION (#901)
    • Deprecate PRODUCT_MULTIPOINT_STANDARD_SERVER constant in favor of OS_PRODUCT_TYPE.PRODUCT_MULTIPOINT_STANDARD_SERVER (#901)
    • Deprecate PRODUCT_MULTIPOINT_PREMIUM_SERVER constant in favor of OS_PRODUCT_TYPE.PRODUCT_MULTIPOINT_PREMIUM_SERVER (#901)
    • Deprecate PRODUCT_STANDARD_EVALUATION_SERVER constant in favor of OS_PRODUCT_TYPE.PRODUCT_STANDARD_EVALUATION_SERVER (#901)
    • Deprecate PRODUCT_DATACENTER_EVALUATION_SERVER constant in favor of OS_PRODUCT_TYPE.PRODUCT_DATACENTER_EVALUATION_SERVER (#901)
    • Deprecate PRODUCT_ENTERPRISE_N_EVALUATION constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_N_EVALUATION (#901)
    • Deprecate PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER constant in favor of OS_PRODUCT_TYPE.PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER (#901)
    • Deprecate PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER constant in favor of OS_PRODUCT_TYPE.PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER (#901)
    • Deprecate PRODUCT_CORE_N constant in favor of OS_PRODUCT_TYPE.PRODUCT_CORE_N (#901)
    • Deprecate PRODUCT_CORE_COUNTRYSPECIFIC constant in favor of OS_PRODUCT_TYPE.PRODUCT_CORE_COUNTRYSPECIFIC (#901)
    • Deprecate PRODUCT_CORE_SINGLELANGUAGE constant in favor of OS_PRODUCT_TYPE.PRODUCT_CORE_SINGLELANGUAGE (#901)
    • Deprecate PRODUCT_CORE constant in favor of OS_PRODUCT_TYPE.PRODUCT_CORE (#901)
    • Deprecate PRODUCT_PROFESSIONAL_WMC constant in favor of OS_PRODUCT_TYPE.PRODUCT_PROFESSIONAL_WMC (#901)
    • Deprecate PRODUCT_EDUCATION constant in favor of OS_PRODUCT_TYPE.PRODUCT_EDUCATION (#901)
    • Deprecate PRODUCT_EDUCATION_N constant in favor of OS_PRODUCT_TYPE.PRODUCT_EDUCATION_N (#901)
    • Deprecate PRODUCT_IOTUAP constant in favor of OS_PRODUCT_TYPE.PRODUCT_IOTUAP (#901)
    • Deprecate PRODUCT_ENTERPRISE_S constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_S (#901)
    • Deprecate PRODUCT_ENTERPRISE_S_N constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_S_N (#901)
    • Deprecate PRODUCT_ENTERPRISE_S_EVALUATION constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_S_EVALUATION (#901)
    • Deprecate PRODUCT_ENTERPRISE_S_N_EVALUATION constant in favor of OS_PRODUCT_TYPE.PRODUCT_ENTERPRISE_S_N_EVALUATION (#901)
    • Deprecate PRODUCT_DATACENTER_A_SERVER_CORE constant in favor of OS_PRODUCT_TYPE.PRODUCT_DATACENTER_A_SERVER_CORE (#901)
    • Deprecate PRODUCT_STANDARD_A_SERVER_CORE constant in favor of OS_PRODUCT_TYPE.PRODUCT_STANDARD_A_SERVER_CORE (#901)
    • Deprecate PRODUCT_PRO_WORKSTATION constant in favor of OS_PRODUCT_TYPE.PRODUCT_PRO_WORKSTATION (#901)
    • Deprecate PRODUCT_PRO_WORKSTATION_N constant in favor of OS_PRODUCT_TYPE.PRODUCT_PRO_WORKSTATION_N (#901)
    • Deprecate PRODUCT_ANDROMEDA constant in favor of OS_PRODUCT_TYPE.PRODUCT_ANDROMEDA (#901)
    • Deprecate PRODUCT_XBOX_NATIVEOS constant in favor of OS_PRODUCT_TYPE.PRODUCT_XBOX_NATIVEOS (#901)
    • Deprecate FILE_DEVICE_CD_ROM constant in favor of FILE_DEVICE_TYPE.FILE_DEVICE_CD_ROM (#901)
    • Deprecate FILE_DEVICE_DISK constant in favor of FILE_DEVICE_TYPE.FILE_DEVICE_DISK (#901)
    • Deprecate FILE_DEVICE_DVD constant in favor of FILE_DEVICE_TYPE.FILE_DEVICE_DVD (#901)
    • Deprecate FILE_DEVICE_TAPE constant in favor of FILE_DEVICE_TYPE.FILE_DEVICE_TAPE (#901)
    • Deprecate MIM_OPEN constant in favor of MM_MIM_OPEN (#902)
    • Deprecate MIM_CLOSE constant in favor of MM_MIM_CLOSE (#902)
    • Deprecate MIM_DATA constant in favor of MM_MIM_DATA (#902)
    • Deprecate MIM_LONGDATA constant in favor of MM_MIM_LONGDATA (#902)
    • Deprecate MIM_ERROR constant in favor of MM_MIM_ERROR (#902)
    • Deprecate MIM_LONGERROR constant in favor of MM_MIM_LONGERROR (#902)
    • Deprecate MOM_OPEN constant in favor of MM_MOM_OPEN (#902)
    • Deprecate MOM_CLOSE constant in favor of MM_MOM_CLOSE (#902)
    • Deprecate MOM_DONE constant in favor of MM_MOM_DONE (#902)
    • Deprecate MIM_MOREDATA constant in favor of MM_MIM_MOREDATA (#902)
    • Deprecate MOM_POSITIONCB constant in favor of MM_MOM_POSITIONCB (#902)
    • Add isComInitialized getter (#903)
    • Deprecate isCOMInitialized getter in favor of isComInitialized (#903)
    • You can automatically migrate your code to use the new constants and properties by running dart fix --apply in your terminal.
    • Add IsPropVariantString, PropVariantToStrRet, and PropVariantToStringWithDefault APIs (#904)
    • Add SafeArrayAccessData, SafeArrayCreateVector, SafeArrayDestroy, and SafeArrayUnaccessData APIs (#905, thanks to @aweinber)
    • Add remaining SafeArray* APIs (#906)
    • Add SHGetLocalizedName API (#908)
    Open source →
  21. 5.5.5 02 Oct 2024
    Release notes
    • Add BITMAPV5HEADER struct (#892)
    • Add SetClassLongPtr API (#899, thanks to @aweinber)
    • Bump minimum required Dart version to 3.5.0
    Open source →
  22. 5.5.4 12 Aug 2024
    Release notes
    • Optimize BSTR.fromString constructor (#879)
    • Fix GUID_DEVCLASS_* constants (#881)
    Open source →
  23. 5.5.3 31 Jul 2024
    Release notes
    • Fix issue preventing the README.md from being displayed on pub.dev
    Open source →
  24. 5.5.2 31 Jul 2024
    Release notes
    • Add some service constants (#858)
    • Add Service Manager CLI example (#859)
    • Add Task Manager App example (#860)
    Open source →
  25. 5.5.1 15 May 2024
    Release notes
    • Migrate away from UnmodifiableUint8ListView (#850)
    • Bump minimum required Dart version to 3.4.0 (#850)
    • Bump lints dependency to 4.0.0 (#851)
    Open source →
  26. 5.5.0 25 Apr 2024
    Release notes
    • Add BLOB, BSTRBLOB, CABOOL, CABSTR, CABSTRBLOB, CAC, CACLIPDATA, CACLSID, CACY, CADATE, CADBL, CAFILETIME, CAFLT, CAH, CAI, CAL, CALPSTR, CALPWSTR, CAPROPVARIANT, CASCODE, CAUB, CAUH, CAUI, CAUL, CLIPDATA, and VERSIONEDSTREAM structures (#845)
    • Add VARIANT_BOOL typedef (#845)
    • Fix the Dart representation of the PROPVARIANT structure (#845)
    • Add PropVariantInit and PropVariantClear APIs (#845)
    Open source →
  27. 5.4.0 30 Mar 2024
    Release notes
    • Fix constant values ERROR_SERVICE_NOT_ACTIVE, KF_FLAG_ALIAS_ONLY, QS_INPUT, STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, STD_ERROR_HANDLE, UIA_ItemTypePropertyId, and UIA_OrientationPropertyId (#832)

    • Introduce Win32 enumerations as extension types based on int (#832)

    • Deprecate constants for the Win32 enumerations in favor of the newly introduced extension types. For example, replace the usage of ERROR_SUCCESS with WIN32_ERROR.ERROR_SUCCESS (#832)

    • Deprecate constant values WBEM_TIMEOUT_TYPE.WBEM_NO_WAIT and WBEM_TIMEOUT_TYPE.WBEM_INFINITE in favor of the newly introduced constants WBEM_NO_WAIT and WBEM_INFINITE (#833)

      You can automatically migrate your code to use the new constants by running dart fix --apply in your terminal.

    Open source →
  28. 5.3.0 08 Mar 2024
    Release notes
    • Migrate away from .elementAt in favor of operator + (#825)
    • Bump minimum required Dart version to 3.3.0 (#825)
    • Deprecate CallWndProc typedef in favor of HOOKPROC (#826)
    • Deprecate CCHookProc typedef in favor of LPCCHOOKPROC (#826)
    • Deprecate CFHookProc typedef in favor of LPCFHOOKPROC (#826)
    • Deprecate DlgProc typedef in favor of DLGPROC (#826)
    • Deprecate DrawStateProc typedef in favor of DRAWSTATEPROC (#826)
    • Deprecate DrawTextCallback typedef in favor of DTT_CALLBACK_PROC (#826)
    • Deprecate EnumPageFilesProc typedef in favor of PENUM_PAGE_FILE_CALLBACK (#826)
    • Deprecate EnumFontFamExProc typedef in favor of FONTENUMPROC (#826)
    • Deprecate EnumResNameProc typedef in favor of ENUMRESNAMEPROC (#826)
    • Deprecate EnumResTypeProc typedef in favor of ENUMRESTYPEPROC (#826)
    • Deprecate EnumWindowsProc typedef in favor of WNDENUMPROC (#826)
    • Deprecate ExcepInfoProc typedef in favor of LPEXCEPFINO_DEFERRED_FILLIN (#826)
    • Deprecate FRHookProc typedef in favor of LPFRHOOKPROC (#826)
    • Deprecate HandlerRoutine typedef in favor of PHANDLER_ROUTINE (#826)
    • Deprecate LphandlerFunction typedef in favor of LPHANDLER_FUNCTION (#826)
    • Deprecate LphandlerFunctionEx typedef in favor of LPHANDLER_FUNCTION_EX (#826)
    • Deprecate LpoverlappedCompletionRoutine in favor of LPOVERLAPPED_COMPLETION_ROUTINE (#826)
    • Deprecate LpserviceMainFunctionw in favor of LPSERVICE_MAIN_FUNCTION (#826)
    • Deprecate MidiInProc typedef in favor of MIDIINPROC (#826)
    • Deprecate MidiOutProc typedef in favor of MIDIOUTPROC (#826)
    • Deprecate MonitorEnumProc typedef in favor of MONITORENUMPROC (#826)
    • Deprecate OFNHookProc typedef in favor of LPOFNHOOKPROC (#826)
    • Deprecate OpenCardCheckProc typedef in favor of LPOCNCHKPROC (#826)
    • Deprecate OpenCardConnProc typedef in favor of LPOCNCONNPROC (#826)
    • Deprecate OpenCardDisconnProc typedef in favor of LPOCNDSCPROC (#826)
    • Deprecate OutputProc typedef in favor of GRAYSTRINGPROC (#826)
    • Deprecate PfnAuthenticationCallbackEx in favor of PFN_AUTHENTICATION_CALLBACK_EX (#826)
    • Deprecate PfnbluetoothGattEventCallback in favor of PFN_BLUETOOTH_GATT_EVENT_CALLBACK (#826)
    • Deprecate PfnBluetoothEnumAttributesCallback in favor of PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK (#826)
    • Deprecate PfnDeviceCallback typedef in favor of PFN_DEVICE_CALLBACK (#826)
    • Deprecate PfnScNotifyCallbackFunction in favor of PFN_SC_NOTIFY_CALLBACK (#826)
    • Deprecate SendAsyncProc typedef in favor of SENDASYNCPROC (#826)
    • Deprecate SpNotifyCallback typedef in favor of SPNOTIFYCALLBACK (#826)
    • Deprecate SubclassProc typedef in favor of SUBCLASSPROC (#826)
    • Deprecate SymEnumSymbolsProc in favor of PSYM_ENUMERATESYMBOLS_CALLBACK (#826)
    • Deprecate TaskDialogCallbackProc typedef in favor of PFTASKDIALOGCALLBACK (#826)
    • Deprecate ThreadProc typedef in favor of LPTHREAD_START_ROUTINE (#826)
    • Deprecate TimerProc typedef in favor of TIMERPROC (#826)
    • Deprecate WindowProc typedef in favor of WNDPROC (#826)
    • Deprecate WlanNotificationCallback in favor of WLAN_NOTIFICATION_CALLBACK (#826)
    • Note: You can automatically migrate your code to use the new typedefs by running dart fix --apply in your terminal.
    • Deprecate convertFromHString function (#829)
    • Deprecate convertToHString function (#829)
    • Deprecate getClassName function (#829)
    • Deprecate getInterfaces function (#829)
    • Deprecate getTrustLevel function (#829)
    • Deprecate Pointer<HSTRING>.toDartString extension method (#829)
    Open source →
  29. 5.2.0 04 Jan 2024
    Release notes
    • Migrate examples utilizing Pointer.fromFunction to use NativeCallable.isolateLocal (#798)
    • Add more WASAPI APIs, COM interfaces, and constants (#800)
    • Generate missing documentation for certain COM interfaces (#806)
    • Expose SHCreateMemStream API
    • Bump minimum Dart version requirement to 3.2.0
    Open source →
  30. 5.1.1 01 Dec 2023
    Release notes
    • Fix dartdoc comment references (#787)
    • Modernize explorer example (#789)
    • Add NtQuerySystemInformation function (#790)
    • Add more SAPI interfaces and constants (#794)
    Open source →
  31. 5.1.0 15 Nov 2023
    Release notes
    • Add midiInAddBuffer function (#763)
    • Add MIDIERR_* constants (#764)
    • Add IAgileObject interface (#767)
    • Add refCount function (#768)
    • Add ISpeechVoice interface (#776)
    • Bump minimum Dart version to 3.1.0
    Open source →
  32. 5.0.9 26 Sep 2023
    Release notes
    • Add GlobalAlloc flags (#754)
    • Add more Windows Message constants (#755)
    • Add Device Management events (#756)
    Open source →
  33. 5.0.8 19 Sep 2023
    Release notes
    • Add NetGetAadJoinInformation and NetFreeAadJoinInformation APIs (#748, thanks to @solbirn)
    • Fix a bug in the initApp function, which caused programs to crash when running AOT-compiled executables (#750)
    • Fix a bug in the shell_notify_icon example to ensure compatibility with Windows 11 (#752)
    Open source →
  34. 5.0.7 24 Aug 2023
    Release notes
    • Add MONITORINFOEX struct (#743)
    Open source →
  35. 5.0.6 25 Jul 2023
    Release notes
    • Fix the Dart representation of the VARIANT structure (#736)
    Open source →
  36. 5.0.5 27 Jun 2023
    Release notes
    • Add GetRestrictedErrorInfo and IRestrictedErrorInfo (#732)
    Open source →
  37. 5.0.4 20 Jun 2023
    Release notes
    • Add WinHttpRequest APIs (#718)
    • Update the UI Automation example (#719)
    • Fix projection of COM get properties (#720)
    • Add waveIn* APIs (#727)
    Open source →
  38. 5.0.3 29 May 2023
    Release notes
    • Update the screenshot example to support multiple displays (#704, thanks to @ilopx)
    • Add Windows UI Automation APIs (#711)
    Open source →
  39. 5.0.2 16 May 2023
    Release notes
    • Add some additional user32 exports (#707, thanks to @ilopX)
    • Add service management APIs (#709)
    Open source →
  40. 5.0.1 15 May 2023
    Release notes
    • Add IWebAuthenticationCoreManagerInterop (#702, thanks to @solbirn)
    Open source →
  41. 5.0.0 11 May 2023
    Release notes
    • Note: This package no longer supports 32-bit architectures. It assumes 64-bit.

    • [BREAKING CHANGE] Experimental WinRT APIs are now removed, in favor of the new windows_* packages (see https://win32.pub for more information) 🎉

    • [BREAKING CHANGE] Finalizer is now attached to COM objects. Therefore, you no longer need to call .release() to decrement the reference count, because Finalizer will do it for you when they go out of scope (#691).

      Note: Calling .release() with Finalizer attached may result in use after free and cause the process to crash

      Note: If you're manually managing the lifetime of the object, you need to call .release() to decrement the reference count

    • Add Windows metadata interfaces (IMetaData*)

    • Fixed memory leak in convertToHString

    • Upgrade to Dart 3 and add class modifiers to Struct subclasses

    • Added detach method to IUnknown, which detaches the object from Finalizer if you want to manually manage the lifetime of the object yourself (#677)

    Open source →
  42. 4.1.4 05 May 2023
    Release notes
    • Add some minor network APIs
    Open source →
  43. 4.1.3 12 Apr 2023
    Release notes
    • Add registry constants for win32_registry (#682)
    Open source →
  44. 4.1.2 08 Apr 2023
    Release notes
    • Fix missing export of crypt32 APIs (#673)
    • Fix a dartdoc comment reference (#666)
    • Fix memory leak in convertToHString
    Open source →
  45. 4.1.1 30 Jan 2023
    Release notes
    • Convert acronyms in method/property names to lowercase (#649, @halildurmus)
    • Mark methods/properties that return WinRT objects as nullable (#650, @halildurmus)
    • Mark WinRT object parameters as nullable (#652, @halildurmus)
    • Tidy up various samples (#653, @timsneath)
    • Add missing display enumeration funcs (#662, @timsneath)
    • Add job object APIs (#663, @timsneath)
    Open source →
  46. 4.1.0 06 Jan 2023
    Release notes
    • Add low-level keyboard hook constants (#632, @timsneath)
    • Add WinRT geolocation classes and example (#633, #635, @timsneath/@halildurmus)
    • Convert acryonyms in enums, methods and properties to match Dart style guide (#637, #649, @halildurmus)
    • Generalize map collection interfaces to support enum arguments (#638, @halildurmus)
    • Add extra Bluetooth APIs (#640, @timsneath)
    • winrtInitialize and winrtUninitialize are no longer required. Windows Runtime classes automatically activate the runtime as required for a given thread. Added example of interaction between Dart isolates and COM apartments (#642, @halildurmus/@timsneath)
    Open source →
  47. 4.0.1 30 Dec 2022
    Release notes
    • Revert upper Dart SDK constraint update due to pub analyzer bug.
    Open source →
  48. 4.0.0 30 Dec 2022
    Release notes
    • [BREAKING CHANGE] COM objects now inherit from NativeFinalizer. Instead of directly releasing the memory allocated for them, you can now call .release() to decrement the reference count, and the memory will be automatically disposed when the refcount falls to zero (#623, @halildurmus)
    • Update examples for new COM release mechanism (#623, @halildurmus)
    • Update to latest Win32 metadata (#626, @timsneath)
    • Add APIs for processor / firmware information (#627, @timsneath)
    • Add APIs for shell file operations (#630, @timsneath)
    • Update upper Dart SDK constraint to explicitly support Dart 3
    Open source →
  49. 3.1.4 08 Apr 2023
    Release notes
    • Fix missing export of crypt32 APIs
    Open source →
  50. 3.1.3 17 Dec 2022
    Release notes
    • Restructure generator util to use JSON for all data files (#605, @timsneath)
    • Add more K32* APIs (#607, @timsneath)
    • Remove unnecessary nullability from HSTRINGs (#608, #615, @halildurmus)
    • Add UISettings (#610, @halildurmus)
    • Add doc comments for COM and WinRT classes (#611, @timsneath)
    • Clean up generation of WinRT imports (#616, @halildurmus)
    • Add VirtualQuery and VirtualQueryEx (#619, @Smotto)
    • Add SetDisplayConfig (#621, @timsneath)
    Open source →
  51. 3.1.2 25 Nov 2022
    Release notes
    • Support generating IIDs for parameterized types (#596)
    • Clean up GUID implementations (#599)
    • Wrap WinRT representations of GUID as Dart Guid (#602)
    Open source →
  52. 3.1.1 08 Nov 2022
    Release notes
    • Fix documentation bug (@timsneath)
    • Add URI support to the WinRT generator (@halildurmus)
    Open source →
  53. 3.1.0 06 Nov 2022
    Release notes
    • Fixed memory leaks in COM and WinRT code when an exception is generated.
    • Update to the latest Win32 metadata from Microsoft.
    • [BREAKING CHANGE] The WinSock APIs now use upper cased naming for structs. For example, hostent is now HOSTENT. This will only affect you if you explicitly imported win32/winsock2.dart.
    • [BREAKING CHANGE] TouchInputParameters is now upper-cased in the metadata.
    Open source →
  54. 3.0.1 14 Oct 2022
    Release notes
    • Improve projection of Map, Vector, and reference Windows Runtime types, with thanks as ever to Halil Durmus (@halildurmus).
    • Add CryptoAPI functions (CryptProtectData, CryptProtectMemory etc.)
    • Add pointer and touch APIs
    • Fix WinRT FilePicker demo
    • Add raw printer API example
    • Remove console example console.dart (use https://pub.dev/packages/dart_console instead).
    Open source →
  55. 3.0.0 30 Aug 2022
    Release notes
    • This release includes an overhaul of the COM and WinRT API generation, as described below. Apps and packages that call traditional Win32 APIs should not require changes, but apps that use COM or the highly-experimental WinRT APIs should expect to make changes.
    • [BREAKING CHANGE] WinRT APIs have been moved to a separate library. This provides isolation for apps that only use traditional APIs (Win32/COM) from the more experimental WinRT APIs. To use WinRT from your code, change your import statement to import 'package:win32/winrt.dart';. The WinRT library also exports all Win32 APIs, so you don't have to import both libraries.
    • [BREAKING CHANGE] COM and Windows Runtime methods and properties are now camelCased, not TitleCased. This is inconvenient, but it avoids a whole class of name clashes and aligns COM and WinRT APIs more closely with Dart idioms. As the projections get smarter with more helpers, we think this is the right call for the future and worth a one-time tax to fix.
    • [BREAKING CHANGE] You can now cast to a new COM interface without needing the IID for the target interface. Instead of:
      final modalWindow = IModalWindow(fileDialog.toInterface(IID_IModalWindow));
    

    write:

      final modalWindow = IModalWindow.from(fileDialog);
    
    • [BREAKING CHANGE] WinRT classes now support projection of Lists and Strings directly.
    • [BREAKING CHANGE] The WinRT fromPointer method is now fromRawPointer.
    • GUIDFromString now supports an optional custom allocator parameter.
    • Added various APIs from iphlpapi.dll for tracking and renewing IP addresses.
    • Added DisableThreadLibraryCalls, FindStringOrdinal, GetConsoleCP, GetConsoleOutputCP, GetModuleHandleExW, GetNumberOfConsoleInputEvents, GetVolumeInformation, GetVolumeInformationByHandle, PeekConsoleInput, ReadConsoleInputW, SetErrorMode, SetThreadErrorMode, SizeofResource APIs from kernel32.dll
    • Added GetClassFile API from ole32.dll
    • Added SetupDiGetDeviceInstanceId, SetupDiGetDeviceRegistryPropertyW APIs from setupapi.dll
    • Added GetAltTabInfoW, GetClassNameW, GetGUIThreadInfo APIs from user32.dll
    • Added various foundational WinRT types, including IIterable, IIterator, IKeyValuePair, IMapView, IVector, IVectorView, IPropertyValue, IReference, with tremendous thanks again to @halildurmus, who has driven much of the recent WinRT work.
    • Major reworking of the WinRT generation code, thanks to @halildurmus.
    Open source →
  56. 2.7.0 27 May 2022
    Release notes
    • [BREAKING CHANGE] Major work on Windows Runtime APIs, with huge thanks to Halil Durmus (@halildurmus). Breaking changes are limited to WinRT APIs, which are now more idiomatic for Dart. Includes full implementation of Windows.Globalization.Calendar that is the new reference design for WinRT APIs.
    • Restructure generation code into a separate package.
    • Use super parameters introduced in Dart 2.17, with matching dependency upgrade.
    • Tidy up examples to include consistent headers.
    • All files now have lower case names (e.g. IUnknown.dart -> iunknown.dart)
    Open source →
  57. 2.6.1 15 May 2022
    Release notes
    • Improve pana compliance
    Open source →
  58. 2.6.0 15 May 2022
    Release notes
    • Add support for returning vectors from Windows Runtime APIs (#406, thanks to @halildurmus)
    • Automatically convert Windows Runtime date properties to Dart DateTime equivalents (#418, thanks to @halildurmus)
    • Add additional documentation on Windows Runtime APIs
    • Update IDispatch sample to show how to supply parameters
    • Add example for Windows Audio Session API (#422, thanks to @postacik)
    • Fix an error with strings in structs (#425, thanks to @postacik)
    • Update contributor documentation
    Open source →
  59. 2.5.2 26 Apr 2022
    Release notes
    • Add example for monitor EDID data (#393, thanks to @krjw-eyev)
    • Expand Bluetooth example (#397, thanks to @Sunbreak)
    • Fix a comment typo (#398, thanks to @gaddlord)
    • Improve fidelity of WinRT Calendar class and more tests (#396, #404, #405, #412 thanks to @halildurmus)
    • Add additional spell checker COM interfaces
    • Add example for an owner-draw (custom) titlebar
    • Add new Wbem WMI interfaces
    • Add example of WMI high-performance counters
    • Add new theming APIs
    • Update to latest Windows metadata (with a couple of minor changes to signed ints in MOUSEDATA and send()).
    Open source →
  60. 2.5.1 31 Mar 2022
    Release notes
    • Add GetProcessTimes (#396, thanks to @halildurmus)
    • Add device interface and device class GUIDs
    • Add examples for Bluetooth LE and Setup APIs (#390, #392, thanks to @Sunbreak)
    • Fix setup APIs to project HDEVINFO correctly
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive