Which crate is this about?
windows
Crate version
0.40.0+
Summary
When using Win32::Graphics::Gdi::DEVMODEW in versions above 0.39.0, it returns the data incorrectly.
Toolchain version/configuration
Default host: x86_64-pc-windows-msvc
rustup home: C:\Users\csany.rustup
stable-x86_64-pc-windows-msvc (default)
rustc 1.65.0 (897e37553 2022-11-02)
Reproducible example
use windows::Win32::Graphics::Gdi::{EnumDisplaySettingsW, DEVMODEW, ENUM_CURRENT_SETTINGS};
fn main() {
let mut devmode = DEVMODEW {
dmSize: std::mem::size_of::<DEVMODEW>() as u16,
..Default::default()
};
let display = windows::w!("\\\\.\\Display1");
if unsafe { EnumDisplaySettingsW(display, ENUM_CURRENT_SETTINGS, &mut devmode).as_bool() } {
println!(
"{}x{} {}bit {}hz",
devmode.dmPelsWidth,
devmode.dmPelsHeight,
devmode.dmBitsPerPel,
devmode.dmDisplayFrequency
);
} else {
println!("Failed to get display settings");
}
}
Crate manifest
[package]
name = "dummy"
version = "0.1.0"
edition = "2021"
[dependencies.windows]
version = "0.40.0"
features = [
"Win32_Foundation",
"Win32_Graphics_Gdi",
]
Expected behavior
Print out "1920x1080 32bit 120hz", as it does on 0.39.0.
Actual behavior
Prints out "0x120 1080bit 0hz"
Additional comments
The bug maybe caused by it being initialized with Default::default()?
Which crate is this about?
windows
Crate version
0.40.0+
Summary
When using Win32::Graphics::Gdi::DEVMODEW in versions above 0.39.0, it returns the data incorrectly.
Toolchain version/configuration
Default host: x86_64-pc-windows-msvc
rustup home: C:\Users\csany.rustup
stable-x86_64-pc-windows-msvc (default)
rustc 1.65.0 (897e37553 2022-11-02)
Reproducible example
Crate manifest
Expected behavior
Print out "1920x1080 32bit 120hz", as it does on 0.39.0.
Actual behavior
Prints out "0x120 1080bit 0hz"
Additional comments
The bug maybe caused by it being initialized with Default::default()?