[package] name = "windows-helpers" version = "0.4.3" description = "Helpers for the windows crate" categories = ["development-tools::ffi", "rust-patterns"] keywords = ["windows", "utils"] repository = "https://github.com/Enyium/windows-helpers-rs" documentation = "https://docs.rs/windows-helpers" license = "MIT OR Apache-2.0" edition = "2021" [package.metadata.docs.rs] default-target = "x86_64-pc-windows-msvc" targets = ["x86_64-pc-windows-msvc", "i686-pc-windows-msvc"] features = ["windows_latest_compatible_all"] [dependencies] # New `windows` versions must be added or very old versions must be removed below in multiple spots, in `lib.rs`, in `/scripts/verify.ps1` and in `/.vscode/settings.json`. windows_v0_48 = { optional = true, package = "windows", version = "0.48.0", features = ["Win32_Foundation"] } # Published on 2023-03-31. windows_v0_52 = { optional = true, package = "windows", version = "0.52.0", features = ["Win32_Foundation"] } # Published on 2023-11-15. windows_v0_58 = { optional = true, package = "windows", version = "0.58.0", features = ["Win32_Foundation"] } # Published on 2024-07-03. num-traits = "0.2.17" map-self = "0.1.0" # Something like `[target.'cfg(feature = "windows_v0_52")'.dependencies]` (and requiring `windows` with that version, not renaming it) may be more desirable to make this file DRYer and also allow us to specify yet unreleased future versions for forward compatibility. Cargo issue: (still open in Dec. 2023). [features] # Note: crates.io generally limits the number of features to 300 (as of Dec. 2023; see https://doc.rust-lang.org/beta/cargo/reference/features.html). It's said, "Exceptions are granted on a case-by-case basis," but it probably shouldn't be demanded from the start for a small crate. win32_app = [] f_Win32_Foundation = [] f_Win32_Graphics_Gdi = [] f_Win32_Security = [] f_Win32_System_LibraryLoader = [] f_Win32_System_Memory = [] f_Win32_System_Performance = [] f_Win32_System_Power = [] f_Win32_UI_Input_KeyboardAndMouse = [] f_Win32_UI_Shell = [] f_Win32_UI_WindowsAndMessaging = [] # (For VS Code development, a feature encompassing all features for a `windows` crate version is activated in `/.vscode/settings.json`. Changing the version in it can change the errors shown.) windows_v0_48_all = [ "windows_v0_48", "windows_v0_48_f_Win32_Foundation", "windows_v0_48_f_Win32_Graphics_Gdi", "windows_v0_48_f_Win32_System_LibraryLoader", "windows_v0_48_f_Win32_System_Memory", "windows_v0_48_f_Win32_System_Power", "windows_v0_48_f_Win32_UI_WindowsAndMessaging", ] windows_v0_48 = ["dep:windows_v0_48"] windows_v0_48_f_Win32_Foundation = ["f_Win32_Foundation", "windows_v0_48/Win32_Foundation"] windows_v0_48_f_Win32_Graphics_Gdi = ["f_Win32_Graphics_Gdi", "windows_v0_48/Win32_Graphics_Gdi"] windows_v0_48_f_Win32_System_LibraryLoader = ["f_Win32_System_LibraryLoader", "windows_v0_48/Win32_System_LibraryLoader"] windows_v0_48_f_Win32_System_Memory = ["f_Win32_System_Memory", "windows_v0_48/Win32_System_Memory"] windows_v0_48_f_Win32_System_Power = ["f_Win32_System_Power", "windows_v0_48/Win32_System_Power"] windows_v0_48_f_Win32_UI_WindowsAndMessaging = ["f_Win32_UI_WindowsAndMessaging", "windows_v0_48/Win32_UI_WindowsAndMessaging"] windows_v0_52_all = [ "windows_v0_52", "windows_v0_52_win32_app", "windows_v0_52_f_Win32_Foundation", "windows_v0_52_f_Win32_Graphics_Gdi", "windows_v0_52_f_Win32_System_LibraryLoader", "windows_v0_52_f_Win32_System_Performance", "windows_v0_52_f_Win32_System_Power", "windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_52_f_Win32_UI_Shell", "windows_v0_52_f_Win32_UI_WindowsAndMessaging", ] windows_v0_52 = ["dep:windows_v0_52"] windows_v0_52_win32_app = [ "win32_app", "windows_v0_52_f_Win32_Foundation", "windows_v0_52_f_Win32_Graphics_Gdi", "windows_v0_52_f_Win32_System_LibraryLoader", "windows_v0_52_f_Win32_System_Performance", "windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_52_f_Win32_UI_Shell", "windows_v0_52_f_Win32_UI_WindowsAndMessaging", ] windows_v0_52_f_Win32_Foundation = ["f_Win32_Foundation", "windows_v0_52/Win32_Foundation"] windows_v0_52_f_Win32_Graphics_Gdi = ["f_Win32_Graphics_Gdi", "windows_v0_52/Win32_Graphics_Gdi"] windows_v0_52_f_Win32_System_LibraryLoader = ["f_Win32_System_LibraryLoader", "windows_v0_52/Win32_System_LibraryLoader"] windows_v0_52_f_Win32_System_Performance = ["f_Win32_System_Performance", "windows_v0_52/Win32_System_Performance"] windows_v0_52_f_Win32_System_Power = ["f_Win32_System_Power", "windows_v0_52/Win32_System_Power"] windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse = ["f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_52/Win32_UI_Input_KeyboardAndMouse"] windows_v0_52_f_Win32_UI_Shell = ["f_Win32_UI_Shell", "windows_v0_52/Win32_UI_Shell"] windows_v0_52_f_Win32_UI_WindowsAndMessaging = ["f_Win32_UI_WindowsAndMessaging", "windows_v0_52/Win32_UI_WindowsAndMessaging"] windows_v0_58_all = [ "windows_v0_58", "windows_v0_58_win32_app", "windows_v0_58_f_Win32_Foundation", "windows_v0_58_f_Win32_Graphics_Gdi", "windows_v0_58_f_Win32_Security", "windows_v0_58_f_Win32_System_LibraryLoader", "windows_v0_58_f_Win32_System_Performance", "windows_v0_58_f_Win32_System_Power", "windows_v0_58_f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_58_f_Win32_UI_Shell", "windows_v0_58_f_Win32_UI_WindowsAndMessaging", ] windows_v0_58 = ["dep:windows_v0_58"] windows_v0_58_win32_app = [ "win32_app", "windows_v0_58_f_Win32_Foundation", "windows_v0_58_f_Win32_Graphics_Gdi", "windows_v0_58_f_Win32_Security", "windows_v0_58_f_Win32_System_LibraryLoader", "windows_v0_58_f_Win32_System_Performance", "windows_v0_58_f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_58_f_Win32_UI_Shell", "windows_v0_58_f_Win32_UI_WindowsAndMessaging", ] windows_v0_58_f_Win32_Foundation = ["f_Win32_Foundation", "windows_v0_58/Win32_Foundation"] windows_v0_58_f_Win32_Graphics_Gdi = ["f_Win32_Graphics_Gdi", "windows_v0_58/Win32_Graphics_Gdi"] windows_v0_58_f_Win32_Security = ["f_Win32_Security", "windows_v0_58/Win32_Security"] windows_v0_58_f_Win32_System_LibraryLoader = ["f_Win32_System_LibraryLoader", "windows_v0_58/Win32_System_LibraryLoader"] windows_v0_58_f_Win32_System_Performance = ["f_Win32_System_Performance", "windows_v0_58/Win32_System_Performance"] windows_v0_58_f_Win32_System_Power = ["f_Win32_System_Power", "windows_v0_58/Win32_System_Power"] windows_v0_58_f_Win32_UI_Input_KeyboardAndMouse = ["f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_58/Win32_UI_Input_KeyboardAndMouse"] windows_v0_58_f_Win32_UI_Shell = ["f_Win32_UI_Shell", "windows_v0_58/Win32_UI_Shell"] windows_v0_58_f_Win32_UI_WindowsAndMessaging = ["f_Win32_UI_WindowsAndMessaging", "windows_v0_58/Win32_UI_WindowsAndMessaging"] # The latest compatible version should also be specified in the `dev-dependencies` section (in name and `version`). windows_latest_compatible_all = ["windows_v0_58_all"] [dev-dependencies] # Additional `windows` features for test modules. Only tested with latest version established in this crate. windows_v0_58 = { package = "windows", version = "0.58.0", features = [ "Win32_Foundation", "Win32_Security_Authorization", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Pipes", "Win32_System_SystemInformation", "Win32_System_Threading", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_TextServices", "Win32_Networking_WinSock", "Win32_NetworkManagement_Ndis", "Win32_NetworkManagement_IpHelper", "Win32_UI_Shell", "Win32_Globalization", ] } regex = "1.10.2" anyhow = "1.0.75"