Skip to content

Releases: halildurmus/win32

package:winmd v7.1.0

06 Mar 16:03
cba34e2

Choose a tag to compare

7.1.0 - 2026-03-06

🚀 Features

  • Add retry logic for Windows Metadata downloads, retrying up to 5 attempts on
    failure

⚡ Performance

  • Optimize the metadata reader for improved throughput

🧹 Refactor

  • Replace the global winmdLogger (now deprecated) with a constructor-injected
    Logger for better testability and flexibility
  • Improve console output formatting

🎨 Styling

  • Apply Dart dot shorthand syntax across the codebase

package:ffi_leak_tracker v0.1.1

06 Mar 15:08
45be678

Choose a tag to compare

0.1.1 - 2026-03-06

🎨 Styling

  • Improve output of PrintEmitter
  • Improve toString() outputs for Allocation and LeakException classes

package:winmd v7.0.2

27 Feb 10:26
4a7bdcb

Choose a tag to compare

7.0.2 - 2026-02-27

🏠 Repository

package:win32_runner v0.2.5

27 Feb 10:24
ff0809e

Choose a tag to compare

0.2.5 - 2026-02-27

🏠 Repository

package:win32_registry v3.0.2

27 Feb 10:21
675c473

Choose a tag to compare

3.0.2 - 2026-02-27

🏠 Repository

package:win32_gamepad v1.0.11

27 Feb 10:19
82417ab

Choose a tag to compare

1.0.11 - 2026-02-27

🏠 Repository

package:win32_clipboard v2.0.2

27 Feb 10:11
160a0be

Choose a tag to compare

2.0.2 - 2026-02-27

🏠 Repository

package:filepicker_windows v3.0.1

27 Feb 10:15
b4766bd

Choose a tag to compare

3.0.1 - 2026-02-27

🏠 Repository

package:win32 v6.0.0

22 Feb 11:11
731094b

Choose a tag to compare

6.0.0 - 2026-02-22

🔄 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

package:ffi_leak_tracker v0.1.0

22 Feb 10:42
b372a82

Choose a tag to compare

0.1.0 - 2026-02-22

  • Initial version.