Cargo Features

windows-helpers has no features set by default.

[dependencies]
windows-helpers = { version = "0.4.2", features = ["win32_app", "f_Win32_Foundation", "f_Win32_Graphics_Gdi", "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", "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_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_latest_compatible_all"] }

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: https://github.com/rust-lang/cargo/issues/8170 (still open in Dec. 2023).

win32_app windows_v0_52_win32_app?

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.

f_Win32_Foundation windows_v0_48_f_Win32_Foundation? windows_v0_52_f_Win32_Foundation?
f_Win32_Graphics_Gdi windows_v0_48_f_Win32_Graphics_Gdi? windows_v0_52_f_Win32_Graphics_Gdi?
f_Win32_System_LibraryLoader windows_v0_48…System_LibraryLoader? windows_v0_52…System_LibraryLoader?
f_Win32_System_Memory windows_v0_48_f_Win32_System_Memory?
f_Win32_System_Performance windows_v0_52_f…System_Performance?
f_Win32_System_Power windows_v0_48_f_Win32_System_Power? windows_v0_52_f_Win32_System_Power?

Affects translate::translate_power_broadcast_msg, translate::PowerBroadcastMsg

f_Win32_UI_Input_KeyboardAndMouse windows_v0_52_f…KeyboardAndMouse?
f_Win32_UI_Shell windows_v0_52_f_Win32_UI_Shell?
f_Win32_UI_WindowsAndMessaging windows_v0_48…WindowsAndMessaging? windows_v0_52…WindowsAndMessaging?
windows_v0_48_all = windows_v0_48, windows_v0_48_f_Win32_Foundation, windows_v0_48_f_Win32_Graphics_Gdi, windows_v0_48…System_LibraryLoader, windows_v0_48_f_Win32_System_Memory, windows_v0_48_f_Win32_System_Power, windows_v0_48…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 windows_v0_48_all? windows_v0_48_f_Win32_Foundation? windows_v0_48_f_Win32_Graphics_Gdi? windows_v0_48…System_LibraryLoader? windows_v0_48_f_Win32_System_Memory? windows_v0_48_f_Win32_System_Power? windows_v0_48…WindowsAndMessaging?

Enables windows ^0.48.0

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. Published on 2023-03-31.

windows_v0_48_f_Win32_Foundation windows_v0_48_all? = f_Win32_Foundation

Enables windows ^0.48.0

windows_v0_48_f_Win32_Graphics_Gdi windows_v0_48_all? = f_Win32_Graphics_Gdi

Enables Win32_Graphics_Gdi of windows ^0.48.0

windows_v0_48_f_Win32_System_LibraryLoader windows_v0_48_all? = f_Win32_System_LibraryLoader

Enables Win32_System_LibraryLoader of windows ^0.48.0

windows_v0_48_f_Win32_System_Memory windows_v0_48_all? = f_Win32_System_Memory

Enables Win32_System_Memory of windows ^0.48.0

windows_v0_48_f_Win32_System_Power windows_v0_48_all? = f_Win32_System_Power

Enables Win32_System_Power of windows ^0.48.0

windows_v0_48_f_Win32_UI_WindowsAndMessaging windows_v0_48_all? = f_Win32_UI_WindowsAndMessaging

Enables Win32_UI_WindowsAndMessaging of windows ^0.48.0

windows_v0_52_all windows_latest_compatible_all? = windows_v0_52, windows_v0_52_f_Win32_Foundation, windows_v0_52_f_Win32_Graphics_Gdi, windows_v0_52…System_LibraryLoader, windows_v0_52_f…System_Performance, windows_v0_52_f_Win32_System_Power, windows_v0_52_f…KeyboardAndMouse, windows_v0_52_f_Win32_UI_Shell, windows_v0_52…WindowsAndMessaging, windows_v0_52_win32_app
windows_v0_52 windows_v0_52_all? windows_v0_52_f_Win32_Foundation? windows_v0_52_f_Win32_Graphics_Gdi? windows_v0_52…System_LibraryLoader? windows_v0_52_f…System_Performance? windows_v0_52_f_Win32_System_Power? windows_v0_52_f…KeyboardAndMouse? windows_v0_52_f_Win32_UI_Shell? windows_v0_52…WindowsAndMessaging?

Enables windows ^0.52.0

Published on 2023-11-15.

windows_v0_52_win32_app windows_v0_52_all? = win32_app, windows_v0_52_f_Win32_Foundation, windows_v0_52_f_Win32_Graphics_Gdi, windows_v0_52…System_LibraryLoader, windows_v0_52_f…System_Performance, windows_v0_52_f…KeyboardAndMouse, windows_v0_52_f_Win32_UI_Shell, windows_v0_52…WindowsAndMessaging
windows_v0_52_f_Win32_Foundation windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_Foundation

Enables windows ^0.52.0

windows_v0_52_f_Win32_Graphics_Gdi windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_Graphics_Gdi

Enables Win32_Graphics_Gdi of windows ^0.52.0

windows_v0_52_f_Win32_System_LibraryLoader windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_System_LibraryLoader

Enables Win32_System_LibraryLoader of windows ^0.52.0

windows_v0_52_f_Win32_System_Performance windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_System_Performance

Enables Win32_System_Performance of windows ^0.52.0

windows_v0_52_f_Win32_System_Power windows_v0_52_all? = f_Win32_System_Power

Enables Win32_System_Power of windows ^0.52.0

windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_UI_Input_KeyboardAndMouse

Enables Win32_UI_Input_KeyboardAndMouse of windows ^0.52.0

windows_v0_52_f_Win32_UI_Shell windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_UI_Shell

Enables Win32_UI_Shell of windows ^0.52.0

windows_v0_52_f_Win32_UI_WindowsAndMessaging windows_v0_52_all? windows_v0_52_win32_app? = f_Win32_UI_WindowsAndMessaging

Enables Win32_UI_WindowsAndMessaging of windows ^0.52.0

windows_latest_compatible_all = windows_v0_52_all

The latest compatible version should also be specified in the dev-dependencies section (in name and version).