Releases: microsoft/windows-rs
0.56.0
This release includes updates to all crates except windows-sys
.
It includes major updates to the following:
riddle
0.56.0windows
0.56.0windows-bindgen
0.56.0windows-core
0.56.0windows-implement
0.56.0windows-interface
0.56.0windows-metadata
0.56.0
This includes various improvements and fixes to code generation, compliance with new Rust warnings, Arm64EC bindings, as well as ergonomic improvements. The riddle
crate in particular now matches the version of windows-bindgen
as they are inextricably linked.
It includes minor updates to the following:
windows-targets
0.52.5windows-result
0.1.1windows-registry
0.1.1windows-version
0.1.1
The windows-targets
crate adds support for arm64ec-pc-windows-msvc
and i686-pc-windows-gnullvm
. The other crates only update dependencies.
What's Changed
- Avoid
windows
crate dependency inimplement
andinterface
macros by @kennykerr in #2917 - Simplify version declarations in toml and readme files by @kennykerr in #2918
- Format extension files by @kennykerr in #2919
- Riddle 0.3 by @kennykerr in #2920
- Hash impl for HSTRING by @zardini123 in #2924
- Fix generic class signature calculation by @kennykerr in #2927
- Defer module name lowercase conversion for Windows by @kennykerr in #2934
- Document
Param
trait by @kennykerr in #2938 - Add diff check after workflow test run by @kennykerr in #2940
- Update
windows-core
to generate its own bindings by @kennykerr in #2941 - Fix for new Rust nightly warnings related to dead code by @kennykerr in #2951
- Update gnullvm libraries by @riverar in #2953
- Add 0.54.0 to feature search app by @riverar in #2950
- Prep for type name deferral by @kennykerr in #2955
- Fix typo in
windows-targets
readme by @kennykerr in #2962 - Add missing tests for readme code snippets by @kennykerr in #2963
- Simplify type remapping by @kennykerr in #2964
- Simplify
cfg
union calculation by @kennykerr in #2965 - Add i686-pc-windows-gnullvm target by @jeremyd2019 in #2961
- Implement
Deref
for COM interface hierarchies inwindows-bindgen
by @kennykerr in #2968 - Implement
Deref
for COM interface hierarchies defined with theinterface
macro by @kennykerr in #2969 - Remove redundant target checks by @kennykerr in #2973
- Add support for Arm64EC by @dpaoliello in #2957
- Fix for new Clippy warnings in nightly by @kennykerr in #2977
- Add explicit path support to the
interface
macro by @kennykerr in #2976 - Document
Interface::IID
by @kennykerr in #2990 - Release 0.56.0 by @kennykerr in #2989
New Contributors
- @zardini123 made their first contribution in #2924
- @dependabot made their first contribution in #2933
- @jeremyd2019 made their first contribution in #2961
Full Changelog: 0.55.0...0.56.0
0.55.0
This update includes a few improvements to code generation. The following crates are being updated today:
windows-bindgen
windows-metadata
windows-core
What's Changed
- Improve
implement
macro docs by @daladim in #2891 - Restore MSRV for
windows-targets
to 1.56 by @kennykerr in #2898 - Simpler namespace type collection by @kennykerr in #2901
- Allow
PWSTR
/PSTR
to be passed toPCWSTR
/PCSTR
parameters by @kennykerr in #2899 - Consolidate type generation by @kennykerr in #2903
- Add ability to prepend code to type generation by @kennykerr in #2907
- Fix for new Rust nightly warnings related to unnecessary qualifications by @kennykerr in #2911
- Add option to suppress
windows-bindgen
comment in generated code by @kennykerr in #2910 - More unnecessary qualifications by @kennykerr in #2912
- Consolidate internal
interface
andcom_interface
macros by @kennykerr in #2914 - Release 0.55.0 by @kennykerr in #2915
New Contributors
Full Changelog: 0.54.0...0.55.0
0.54.0
This update includes a few improvements to error propagation and expanded VARIANT
support.
What's Changed
- Add natural error translation for RPC by @kennykerr in #2883
- Workaround for confusing
LocalFree
behavior by @kennykerr in #2889 - Avoid
Result
transformation forWIN32_ERROR
by @kennykerr in #2890 - Support additional
VARIANT
types by @kennykerr in #2892 - Release 0.54.0 by @kennykerr in #2894
Full Changelog: 0.53.0...0.54.0
0.53.0
As requested, this release updates the Windows family of crates. Notably:
- The
windows-sys
crate won't be updated at this time. - The
windows-version
crate is unchanged. - There is a minor (compatible) update to the
windows-targets
crates. - This is the first release of the
windows-result
(#2847) crate and provides efficient Windows error handling and propagation with support for Win32, COM, WinRT, and NT APIs. - This is the first release of the
windows-registry
(#2848) crate and provides simple, safe, and efficient access to the Windows registry. VARIANT
andPROPVARIANT
support has been added to thewindows-core
crate (#2786), making it a lot easier to work with Shell and OLE APIs.- Windows metadata has been updated providing additional APIs and fixes.
- A new feature search tool is now available to quickly determine which features to enable for a given API.
- A number of new tutorials have been added.
- A number of new samples have been added.
- Many additional fixes and improvements listed below.
What's Changed
- Update repo readme to list main crates by @kennykerr in #2704
- Minor tooling improvements by @kennykerr in #2705
- Simplify code gen for functions that don't return a value by @kennykerr in #2706
- Adds ability to override
GetTrustLevel
return value by @kennykerr in #2714 - Remove
invalid_mut
whenwriter.std
by @ChrisDenton in #2727 - Update metadata by @riverar in #2724
- Update MSRV for
windows
crate to 1.62 by @kennykerr in #2730 - Calculate type signatures at compile time by @kennykerr in #2729
- Add doc comment for
windows::core::Error::from_win32()
by @Enyium in #2733 - Generate defaulted foundation feature dependencies by @kennykerr in #2735
- Enable workspace lints by @kennykerr in #2741
- Enable workspace lint
unused_qualifications
by @kennykerr in #2743 - Simpler associated item code gen by @kennykerr in #2744
- Update API contracts by @riverar in #2745
- Clarify
HSTRING::len
documentation by @kennykerr in #2749 - Derive
Copy
,Clone
,Default
for enums by @kennykerr in #2760 - Make the
matches
function safe by @kennykerr in #2761 - Check MSRV and prefer
Option
for propagation by @kennykerr in #2766 - Relax the build target checks in windows-targets sub-crates by @seritools in #2774
- Simplified parameter bindings and type projection by @kennykerr in #2775
- Fix tests which rely on English UI language by @kaivol in #2776
- Truncate standalone test files instead of removing by @ChrisDenton in #2778
- Implement
From<T>
andFrom<&T>
for interface hierarchies by @kennykerr in #2779 - Use signed byte for C's
char
type by @kennykerr in #2781 - Standalone code generation should collect pointer types by @kennykerr in #2785
- Add
VARIANT
andPROPVARIANT
support by @kennykerr in #2786 - Add
VT_UNKNOWN
support forVARIANT
andPROPVARIANT
by @kennykerr in #2788 - Add Windows shell sample illustrating
VARIANT
support by @kennykerr in #2789 - Adjust Win32 return value code transformation by @kennykerr in #2790
- Harden generic type parameter binding by @kennykerr in #2791
- Expand WMI sample for
ExecQuery
andExecMethod
by @kennykerr in #2794 - Limit
AssociatedEnum
attribute to input parameters by @kennykerr in #2797 - Enable workspace lint
missing_docs
by @kennykerr in #2799 - Add task dialog samples by @kennykerr in #2802
- Include
Windows.Win32.UI.Shell.Common
in thewindows-sys
crate by @kennykerr in #2804 - Omit parameter names from internal vtable definitions by @kennykerr in #2808
- Fix for test reliability by @kennykerr in #2809
- Consistent
const
functions across string types by @kennykerr in #2810 - Update Win32 metadata by @kennykerr in #2812
- Add "hello world" component sample by @kennykerr in #2814
- Add JSON validator sample by @kennykerr in #2815
- Remove old Windows 7 support code by @kennykerr in #2817
- Leaner interface representation for
windows-sys
crate by @kennykerr in #2818 - Optimize error propagation by @kennykerr in #2819
- Update dependabot to check github actions by @kennykerr in #2826
- Update yml actions by @kennykerr in #2825
- Add JSON validator sample for WinRT by @kennykerr in #2824
- Remove doc comments by @kennykerr in #2830
- Add delay load samples by @kennykerr in #2839
- Address new nightly unsafe precondition check panics by @riverar in #2841
- Improve natvis compatibility by @riverar in #2838
- Add error translation support for
std::io::Error
by @kennykerr in #2840 - Improve
HRESULT
ergonomics by @kennykerr in #2843 - Metadata generation of attributes and constants by @kennykerr in #2844
- Add "vtbl" option for low-level interface vtable generation by @kennykerr in #2845
- Add
windows-result
crate by @kennykerr in #2847 - Add
windows-registry
crate by @kennykerr in #2848 - Update repo readme with new crates by @kennykerr in #2852
- Map
TryFromIntError
toERROR_INVALID_DATA
inwindows-result
by @kennykerr in #2851 - Update Win32 metadata by @kennykerr in #2850
- Natvis cleanup following the
windows-result
crate split by @tim-weis in #2853 - Fix for new redundant import warnings in nightly Rust by @kennykerr in #2858
- Improve
HRESULT
constant literal generation by @kennykerr in #2857 - Generate features index for windows and sys crates by @riverar in #2859
- Improve
NTSTATUS
constant literal generation by @kennykerr in #2860 - Add
NTSTATUS
message formatting support to thewindows-result
crate by @kennykerr in #2861 - Simpler package layout for natvis files by @kennykerr in #2862
- String trait refactoring by @kennykerr in #2863
- Add feature search links by @kennykerr in #2865
- Add HashRouter to web app for deep links by @riverar in #2867
- Release 0.53.0 by @kennykerr in #2854
New Contributors
- @Enyium made their first contribution in #2733
- @seritools made their first contribution in #2774
Full Changelog: 0.52.0...0.53.0
0.52.0
This release includes updates to all crates. This includes the first update to the windows-sys
crate in 8 months. It also includes the first published version of the riddle tool and the windows-version crate.
What's Changed
- Simplify issue templates by @riverar in #2621
- Switch all crates to Rust edition 2021 by @kennykerr in #2620
- Correct workflow trigger ignore paths by @riverar in #2622
- Detect unused
bindgen
/riddle
filters by @kennykerr in #2634 - Fix
BOOLEAN
parameter binding by @kennykerr in #2635 - Provide individual crate readme files by @kennykerr in #2645
- Tweak Win32 error code conversion to handle
HRESULT
input by @kennykerr in #2646 - Remove support for the defunct
StaticLibrary
attribute by @kennykerr in #2647 - Derive
PartialEq
,Eq
,Debug
,Clone
for interfaces by @kennykerr in #2651 - Internal
bindgen
refactoring by @kennykerr in #2654 - Disable signature transformation for
NTSTATUS
by @kennykerr in #2658 - Unhide
query
method onComInterface
trait by @kennykerr in #2659 - Harden
QueryInterface
implementation by @kennykerr in #2660 - Mask non-reproducible linker artifacts in libs by @riverar in #2661
- Slim doc generation by @kennykerr in #2671
- Update SDK and WDK metadata by @riverar in #2664
- Add feature documentation quotes by @kennykerr in #2675
- Add
docs
feature by @kennykerr in #2676 - Simplify metadata reader by @kennykerr in #2682
- Add bindgen config option to disable generating inner attributes by @dpaoliello in #2683
- Simplify metadata filtering by @kennykerr in #2684
- Simplify code generation by @kennykerr in #2686
- Fix link from docs.rs to full API documentation by @ChrisDenton in #2688
- Optimize tick trimming by @kennykerr in #2689
- Small bindgen refactor and tools refresh by @kennykerr in #2695
- Document
implement
andinterface
macros by @kennykerr in #2696 - Perform checked integral type conversions for APIs by @kennykerr in #2699
- Add
windows-version
crate by @kennykerr in #2702 - Add crate-specific readme files by @kennykerr in #2703
New Contributors
- @dpaoliello made their first contribution in #2683
Full Changelog: 0.48.5...0.52.0
0.48.5
As discussed in #2613, this update bumps windows-targets
to 0.48.5 and will be the final release to support 1.48.
I will then switch everything in windows-rs
to use edition 2021 and MSRV 1.56.
What's Changed
- 0.48.5 by @kennykerr in #2617
Full Changelog: 0.48.4...0.48.5
0.48.4
A user reported issues with using Rust 1.48 with windows-targets
. It is quite difficult to validate as that is such an old version of Rust, but this tweak should address the compatibility concern.
This just flips windows-targets
and the arch-specific crates to use Rust edition 2018.
What's Changed
- 0.48.4 by @kennykerr in #2613
Full Changelog: 0.51.1...0.48.4
0.51.1
This is mainly for publishing an update of the windows-bindgen
crate but also fixes a few minor readme and version issues to avoid confusion.
- The
windows
andwindows-core
crates are updated to 0.51.1 to update the readme but are otherwise unchanged. - The
windows-targets
crate and arch-specific crates are updated to 0.48.3 to update the readme and bring the lib file names in line with the crate version.
Those are all semver-compatible updates.
- The
windows-bindgen
crate is updated to 0.51.1 and includes the new riddle-based metadata processing capabilities and is compatible with thewindows
andwindows-core
crates. - The
windows-metadata
crate is updated to 0.51.1 and includes many refinements but is largely for internal use.
Those are major breaking changes.
The windows-sys
crate will not be updated at this time.
What's Changed
- Make
riddle
available as a library by @kennykerr in #2609 - Improve
windows-bindgen
forstd
usage by @kennykerr in #2610 - Version 0.51.1 by @kennykerr in #2611
Full Changelog: 0.51.0...0.51.1
0.51.0
As requested by #2603, this update includes the first published update to the windows crate in 5 months. As a reminder, updates are only published by request.
- This includes a semver-compatible update to the windows-targets crate.
- The
windows
crate now depends on the windows-core crate. - The
windows
,windows-core
,windows-implement
, andwindows-interface
crates have been bumped to version 0.51.0 as there have been breaking changes. - The
windows-targets
crate has been bumped to version 0.48.2 as it remains compatible with previous versions. - Notably, an expanded set of WDK APIs are now available.
- Other crates will not be updated at this time.
What's Changed
- Ensure that all nullable params support
None
by @kennykerr in #2535 - Lock readme samples to last published version by @kennykerr in #2538
- Consolidate code generation by @kennykerr in #2544
- Add reference for spurious warning about
cdylib
dependency by @kennykerr in #2545 - Minor refactoring following #2544 by @kennykerr in #2546
- Test cross platform code generation by @kennykerr in #2547
- Run code formatting workflow on Linux by @kennykerr in #2548
- Riddle fixes and improvements by @kennykerr in #2549
- Improve rust output and formatting by @kennykerr in #2550
- Improve panic diagnostics by @kennykerr in #2551
- Update metadata readme.md by @kennykerr in #2553
- Add initial riddle support for methods and parameters by @kennykerr in #2554
windows-targets
0.48.1 by @kennykerr in #2558- Add CredEnumerate sample by @riverar in #2559
- Tweak riddle arguments by @riverar in #2563
AsImpl::as_impl
should be unsafe by @kennykerr in #2565- Add comment for suspect clippy warning by @kennykerr in #2567
- Move to Rust edition 2021 and version 1.56 by @kennykerr in #2568
- Resolve clippy warning in tear-off by @kennykerr in #2569
- Update Win32 and WDK metadata by @kennykerr in #2573
- Metadata parsing and indexing improvements by @kennykerr in #2581
- Prefer explicit casts by @kennykerr in #2582
- Riddle dialects by @kennykerr in #2586
- Metadata parsing improvements by @kennykerr in #2592
- Metadata processing improvements by @kennykerr in #2598
- Version 0.51.0 by @kennykerr in #2605
Full Changelog: 0.50.0...0.51.0
windows-targets 0.48.1
This is a semver-compatible update to the windows-targets crate to improve gnullvm compatibility by including #2515 as requested in #2557.
Other crates will not be updated at this time.