[INFO] cloning repository https://github.com/Kreedzt/windows-virtual-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kreedzt/windows-virtual-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKreedzt%2Fwindows-virtual-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKreedzt%2Fwindows-virtual-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a4294b3d4c16919559c247176c2358bf6a20621c
[INFO] checking Kreedzt/windows-virtual-rs against try#8e819ff5434466e9a823e03871a1775ac7d84ddf for pr-156027
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKreedzt%2Fwindows-virtual-rs" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Kreedzt/windows-virtual-rs
[INFO] finished tweaking git repo https://github.com/Kreedzt/windows-virtual-rs
[INFO] tweaked toml for git repo https://github.com/Kreedzt/windows-virtual-rs written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Kreedzt/windows-virtual-rs on toolchain 8e819ff5434466e9a823e03871a1775ac7d84ddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Kreedzt/windows-virtual-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded windows_macros v0.19.0
[INFO] [stderr]   Downloaded windows_quote v0.19.0
[INFO] [stderr]   Downloaded const-sha1 v0.2.0
[INFO] [stderr]   Downloaded windows_gen v0.19.0
[INFO] [stderr]   Downloaded windows v0.19.0
[INFO] [stderr]   Downloaded windows_reader v0.19.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 253d39496d42ff3a2934fb65ea6bab233ed9dfa3ff23466cc956e5446898ae3e
[INFO] running `Command { std: "docker" "start" "-a" "253d39496d42ff3a2934fb65ea6bab233ed9dfa3ff23466cc956e5446898ae3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "253d39496d42ff3a2934fb65ea6bab233ed9dfa3ff23466cc956e5446898ae3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "253d39496d42ff3a2934fb65ea6bab233ed9dfa3ff23466cc956e5446898ae3e", kill_on_drop: false }`
[INFO] [stdout] 253d39496d42ff3a2934fb65ea6bab233ed9dfa3ff23466cc956e5446898ae3e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 21a5302749f853f600da4bd0e2fc8a33dce627d64d0faf96ebc6e708928f8808
[INFO] running `Command { std: "docker" "start" "-a" "21a5302749f853f600da4bd0e2fc8a33dce627d64d0faf96ebc6e708928f8808", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.75
[INFO] [stderr]    Compiling windows_reader v0.19.0
[INFO] [stderr]    Compiling windows_quote v0.19.0
[INFO] [stderr]    Compiling const-sha1 v0.2.0
[INFO] [stderr]     Checking windows_gen v0.19.0
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling windows_macros v0.19.0
[INFO] [stderr]    Compiling windows v0.19.0
[INFO] [stderr]    Compiling bindings v0.1.0 (/opt/rustwide/workdir/bindings)
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/bindings-4784cc7e120b9d5f/out/windows.rs:1:5489
[INFO] [stdout]   |
[INFO] [stdout] 1 | ... if ! value . 0 . is_null ( ) { unsafe { :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: In...
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Win32 { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: default :: Default , :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct BOOL ( pub i32 ) ; unsafe impl :: windows :: Abi for BOOL { type Abi = Self ; type DefaultType = Self ; } impl BOOL { # [ inline ] pub fn as_bool ( self ) -> bool { ! ( self . 0 == 0 ) } # [ inline ] pub fn ok ( self ) -> :: windows :: Result < ( ) > { if self . as_bool ( ) { Ok ( ( ) ) } else { Err ( :: windows :: HRESULT :: from_thread ( ) . into ( ) ) } } # [ inline ] # [ track_caller ] pub fn unwrap ( self ) { self . ok ( ) . unwrap ( ) ; } # [ inline ] # [ track_caller ] pub fn expect ( self , msg : & str ) { self . ok ( ) . expect ( msg ) ; } } impl :: std :: convert :: From < BOOL > for bool { fn from ( value : BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < & BOOL > for bool { fn from ( value : & BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < bool > for BOOL { fn from ( value : bool ) -> Self { if value { BOOL ( 1 ) } else { BOOL ( 0 ) } } } impl :: std :: convert :: From < & bool > for BOOL { fn from ( value : & bool ) -> Self { ( * value ) . into ( ) } } impl :: std :: cmp :: PartialEq < bool > for BOOL { fn eq ( & self , other : & bool ) -> bool { self . as_bool ( ) == * other } } impl :: std :: cmp :: PartialEq < BOOL > for bool { fn eq ( & self , other : & BOOL ) -> bool { * self == other . as_bool ( ) } } impl std :: ops :: Not for BOOL { type Output = Self ; fn not ( self ) -> Self :: Output { if self . as_bool ( ) { BOOL ( 0 ) } else { BOOL ( 1 ) } } } impl < 'a > :: windows :: IntoParam < 'a , BOOL > for bool { fn into_param ( self ) -> :: windows :: Param < 'a , BOOL > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct HWND ( pub isize ) ; impl HWND { } impl :: std :: default :: Default for HWND { fn default ( ) -> Self { Self ( 0 ) } } impl HWND { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for HWND { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "HWND" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for HWND { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for HWND { } unsafe impl :: windows :: Abi for HWND { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct LPARAM ( pub isize ) ; impl LPARAM { } impl :: std :: default :: Default for LPARAM { fn default ( ) -> Self { Self ( 0 ) } } impl LPARAM { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for LPARAM { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "LPARAM" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for LPARAM { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for LPARAM { } unsafe impl :: windows :: Abi for LPARAM { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct LRESULT ( pub i32 ) ; impl LRESULT { } impl :: std :: default :: Default for LRESULT { fn default ( ) -> Self { Self ( 0 ) } } impl LRESULT { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for LRESULT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "LRESULT" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for LRESULT { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for LRESULT { } unsafe impl :: windows :: Abi for LRESULT { type Abi = Self ; type DefaultType = Self ; } # [ repr ( transparent ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct PSTR ( pub * mut u8 ) ; impl PSTR { pub const NULL : Self = Self ( :: std :: ptr :: null_mut ( ) ) ; pub fn is_null ( & self ) -> bool { self . 0 . is_null ( ) } } impl :: std :: default :: Default for PSTR { fn default ( ) -> Self { Self ( :: std :: ptr :: null_mut ( ) ) } } impl :: std :: cmp :: PartialEq for PSTR { fn eq ( & self , other : & Self ) -> bool { self . 0 == other . 0 } } unsafe impl :: windows :: Abi for PSTR { type Abi = Self ; type DefaultType = Self ; fn drop_param ( param : & mut :: windows :: Param < '_ , Self > ) { if let :: windows :: Param :: Boxed ( value ) = param { if ! value . 0 . is_null ( ) { unsafe { let _ = :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for & 'a str { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for String { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct PWSTR ( pub * mut u16 ) ; impl PWSTR { pub const NULL : Self = Self ( :: std :: ptr :: null_mut ( ) ) ; pub fn is_null ( & self ) -> bool { self . 0 . is_null ( ) } } impl :: std :: default :: Default for PWSTR { fn default ( ) -> Self { Self ( :: std :: ptr :: null_mut ( ) ) } } impl :: std :: cmp :: PartialEq for PWSTR { fn eq ( & self , other : & Self ) -> bool { self . 0 == other . 0 } } unsafe impl :: windows :: Abi for PWSTR { type Abi = Self ; type DefaultType = Self ; fn drop_param ( param : & mut :: windows :: Param < '_ , Self > ) { if let :: windows :: Param :: Boxed ( value ) = param { if ! value . 0 . is_null ( ) { unsafe { :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: IntoParam < 'a , PWSTR > for & 'a str { fn into_param ( self ) -> :: windows :: Param < 'a , PWSTR > { :: windows :: Param :: Boxed ( PWSTR ( :: std :: boxed :: Box :: < [ u16 ] > :: into_raw ( self . encode_utf16 ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u16 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } impl < 'a > :: windows :: IntoParam < 'a , PWSTR > for String { fn into_param ( self ) -> :: windows :: Param < 'a , PWSTR > { :: windows :: Param :: Boxed ( PWSTR ( :: std :: boxed :: Box :: < [ u16 ] > :: into_raw ( self . encode_utf16 ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u16 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct RECT { pub left : i32 , pub top : i32 , pub right : i32 , pub bottom : i32 } impl RECT { } impl :: std :: default :: Default for RECT { fn default ( ) -> Self { Self { left : 0 , top : 0 , right : 0 , bottom : 0 } } } impl :: std :: fmt :: Debug for RECT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "RECT" ) . field ( "left" , & self . left ) . field ( "top" , & self . top ) . field ( "right" , & self . right ) . field ( "bottom" , & self . bottom ) . finish ( ) } } impl :: std :: cmp :: PartialEq for RECT { fn eq ( & self , other : & Self ) -> bool { self . left == other . left && self . top == other . top && self . right == other . right && self . bottom == other . bottom } } impl :: std :: cmp :: Eq for RECT { } unsafe impl :: windows :: Abi for RECT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct WPARAM ( pub usize ) ; impl WPARAM { } impl :: std :: default :: Default for WPARAM { fn default ( ) -> Self { Self ( 0 ) } } impl WPARAM { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for WPARAM { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "WPARAM" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for WPARAM { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for WPARAM { } unsafe impl :: windows :: Abi for WPARAM { type Abi = Self ; type DefaultType = Self ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod UI { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod KeyboardAndMouseInput { # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct HARDWAREINPUT { pub uMsg : u32 , pub wParamL : u16 , pub wParamH : u16 } impl HARDWAREINPUT { } impl :: std :: default :: Default for HARDWAREINPUT { fn default ( ) -> Self { Self { uMsg : 0 , wParamL : 0 , wParamH : 0 } } } impl :: std :: fmt :: Debug for HARDWAREINPUT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "HARDWAREINPUT" ) . field ( "uMsg" , & self . uMsg ) . field ( "wParamL" , & self . wParamL ) . field ( "wParamH" , & self . wParamH ) . finish ( ) } } impl :: std :: cmp :: PartialEq for HARDWAREINPUT { fn eq ( & self , other : & Self ) -> bool { self . uMsg == other . uMsg && self . wParamL == other . wParamL && self . wParamH == other . wParamH } } impl :: std :: cmp :: Eq for HARDWAREINPUT { } unsafe impl :: windows :: Abi for HARDWAREINPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct INPUT { pub r#type : INPUT_TYPE , pub Anonymous : INPUT_0 } impl INPUT { } impl :: std :: cmp :: PartialEq for INPUT { fn eq ( & self , _other : & Self ) -> bool { unimplemented ! ( ) } } impl :: std :: cmp :: Eq for INPUT { } unsafe impl :: windows :: Abi for INPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub union INPUT_0 { pub mi : MOUSEINPUT , pub ki : KEYBDINPUT , pub hi : HARDWAREINPUT } impl INPUT_0 { } impl :: std :: cmp :: PartialEq for INPUT_0 { fn eq ( & self , _other : & Self ) -> bool { unimplemented ! ( ) } } impl :: std :: cmp :: Eq for INPUT_0 { } unsafe impl :: windows :: Abi for INPUT_0 { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct INPUT_TYPE ( pub u32 ) ; pub const INPUT_MOUSE : INPUT_TYPE = INPUT_TYPE ( 0u32 ) ; pub const INPUT_KEYBOARD : INPUT_TYPE = INPUT_TYPE ( 1u32 ) ; pub const INPUT_HARDWARE : INPUT_TYPE = INPUT_TYPE ( 2u32 ) ; impl :: std :: convert :: From < u32 > for INPUT_TYPE { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for INPUT_TYPE { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for INPUT_TYPE { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for INPUT_TYPE { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for INPUT_TYPE { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for INPUT_TYPE { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct KEYBDINPUT { pub wVk : u16 , pub wScan : u16 , pub dwFlags : KEYBD_EVENT_FLAGS , pub time : u32 , pub dwExtraInfo : usize } impl KEYBDINPUT { } impl :: std :: default :: Default for KEYBDINPUT { fn default ( ) -> Self { Self { wVk : 0 , wScan : 0 , dwFlags : :: std :: default :: Default :: default ( ) , time : 0 , dwExtraInfo : 0 } } } impl :: std :: fmt :: Debug for KEYBDINPUT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "KEYBDINPUT" ) . field ( "wVk" , & self . wVk ) . field ( "wScan" , & self . wScan ) . field ( "dwFlags" , & self . dwFlags ) . field ( "time" , & self . time ) . field ( "dwExtraInfo" , & self . dwExtraInfo ) . finish ( ) } } impl :: std :: cmp :: PartialEq for KEYBDINPUT { fn eq ( & self , other : & Self ) -> bool { self . wVk == other . wVk && self . wScan == other . wScan && self . dwFlags == other . dwFlags && self . time == other . time && self . dwExtraInfo == other . dwExtraInfo } } impl :: std :: cmp :: Eq for KEYBDINPUT { } unsafe impl :: windows :: Abi for KEYBDINPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct KEYBD_EVENT_FLAGS ( pub u32 ) ; pub const KEYEVENTF_EXTENDEDKEY : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 1u32 ) ; pub const KEYEVENTF_KEYUP : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 2u32 ) ; pub const KEYEVENTF_SCANCODE : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 8u32 ) ; pub const KEYEVENTF_UNICODE : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 4u32 ) ; impl :: std :: convert :: From < u32 > for KEYBD_EVENT_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for KEYBD_EVENT_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for KEYBD_EVENT_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for KEYBD_EVENT_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for KEYBD_EVENT_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for KEYBD_EVENT_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct MOUSEINPUT { pub dx : i32 , pub dy : i32 , pub mouseData : u32 , pub dwFlags : MOUSE_EVENT_FLAGS , pub time : u32 , pub dwExtraInfo : usize } impl MOUSEINPUT { } impl :: std :: default :: Default for MOUSEINPUT { fn default ( ) -> Self { Self { dx : 0 , dy : 0 , mouseData : 0 , dwFlags : :: std :: default :: Default :: default ( ) , time : 0 , dwExtraInfo : 0 } } } impl :: std :: fmt :: Debug for MOUSEINPUT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "MOUSEINPUT" ) . field ( "dx" , & self . dx ) . field ( "dy" , & self . dy ) . field ( "mouseData" , & self . mouseData ) . field ( "dwFlags" , & self . dwFlags ) . field ( "time" , & self . time ) . field ( "dwExtraInfo" , & self . dwExtraInfo ) . finish ( ) } } impl :: std :: cmp :: PartialEq for MOUSEINPUT { fn eq ( & self , other : & Self ) -> bool { self . dx == other . dx && self . dy == other . dy && self . mouseData == other . mouseData && self . dwFlags == other . dwFlags && self . time == other . time && self . dwExtraInfo == other . dwExtraInfo } } impl :: std :: cmp :: Eq for MOUSEINPUT { } unsafe impl :: windows :: Abi for MOUSEINPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct MOUSE_EVENT_FLAGS ( pub u32 ) ; pub const MOUSEEVENTF_ABSOLUTE : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 32768u32 ) ; pub const MOUSEEVENTF_LEFTDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 2u32 ) ; pub const MOUSEEVENTF_LEFTUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 4u32 ) ; pub const MOUSEEVENTF_MIDDLEDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 32u32 ) ; pub const MOUSEEVENTF_MIDDLEUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 64u32 ) ; pub const MOUSEEVENTF_MOVE : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 1u32 ) ; pub const MOUSEEVENTF_RIGHTDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 8u32 ) ; pub const MOUSEEVENTF_RIGHTUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 16u32 ) ; pub const MOUSEEVENTF_WHEEL : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 2048u32 ) ; pub const MOUSEEVENTF_XDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 128u32 ) ; pub const MOUSEEVENTF_XUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 256u32 ) ; pub const MOUSEEVENTF_HWHEEL : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 4096u32 ) ; pub const MOUSEEVENTF_MOVE_NOCOALESCE : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 8192u32 ) ; pub const MOUSEEVENTF_VIRTUALDESK : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 16384u32 ) ; impl :: std :: convert :: From < u32 > for MOUSE_EVENT_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for MOUSE_EVENT_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for MOUSE_EVENT_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for MOUSE_EVENT_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for MOUSE_EVENT_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for MOUSE_EVENT_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } pub unsafe fn SendInput < > ( cinputs : u32 , pinputs : * mut INPUT , cbsize : i32 , ) -> u32 { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendInput ( cinputs : u32 , pinputs : * mut INPUT , cbsize : i32 ) -> u32 ; } SendInput ( :: std :: mem :: transmute ( cinputs ) , :: std :: mem :: transmute ( pinputs ) , :: std :: mem :: transmute ( cbsize ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SetActiveWindow < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , ) -> super::super::Foundation:: HWND { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SetActiveWindow ( hwnd : super::super::Foundation:: HWND ) -> super::super::Foundation:: HWND ; } SetActiveWindow ( hwnd . into_param ( ) . abi ( ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod WindowsAndMessaging { pub unsafe fn EnumWindows < 'a , > ( lpenumfunc : :: std :: option :: Option < WNDENUMPROC > , lparam : impl :: windows :: IntoParam < 'a , super::super::Foundation:: LPARAM > , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn EnumWindows ( lpenumfunc : :: windows :: RawPtr , lparam : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: BOOL ; } EnumWindows ( :: std :: mem :: transmute ( lpenumfunc ) , lparam . into_param ( ) . abi ( ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn GetWindowRect < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , lprect : * mut super::super::Foundation:: RECT , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn GetWindowRect ( hwnd : super::super::Foundation:: HWND , lprect : * mut super::super::Foundation:: RECT ) -> super::super::Foundation:: BOOL ; } GetWindowRect ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lprect ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn GetWindowTextW < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , lpstring : super::super::Foundation:: PWSTR , nmaxcount : i32 , ) -> i32 { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn GetWindowTextW ( hwnd : super::super::Foundation:: HWND , lpstring : super::super::Foundation:: PWSTR , nmaxcount : i32 ) -> i32 ; } GetWindowTextW ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpstring ) , :: std :: mem :: transmute ( nmaxcount ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub const HWND_TOP : super::super::Foundation:: HWND = super::super::Foundation:: HWND ( 0i32 as _ ) ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct MESSAGEBOX_RESULT ( pub i32 ) ; pub const IDOK : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 1i32 ) ; pub const IDCANCEL : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 2i32 ) ; pub const IDABORT : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 3i32 ) ; pub const IDRETRY : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 4i32 ) ; pub const IDIGNORE : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 5i32 ) ; pub const IDYES : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 6i32 ) ; pub const IDNO : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 7i32 ) ; pub const IDCLOSE : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 8i32 ) ; pub const IDHELP : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 9i32 ) ; pub const IDTRYAGAIN : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 10i32 ) ; pub const IDCONTINUE : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 11i32 ) ; pub const IDASYNC : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 32001i32 ) ; pub const IDTIMEOUT : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 32000i32 ) ; impl :: std :: convert :: From < i32 > for MESSAGEBOX_RESULT { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for MESSAGEBOX_RESULT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct MESSAGEBOX_STYLE ( pub u32 ) ; pub const MB_ABORTRETRYIGNORE : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 2u32 ) ; pub const MB_CANCELTRYCONTINUE : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 6u32 ) ; pub const MB_HELP : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16384u32 ) ; pub const MB_OK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 0u32 ) ; pub const MB_OKCANCEL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 1u32 ) ; pub const MB_RETRYCANCEL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 5u32 ) ; pub const MB_YESNO : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 4u32 ) ; pub const MB_YESNOCANCEL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 3u32 ) ; pub const MB_ICONHAND : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16u32 ) ; pub const MB_ICONQUESTION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 32u32 ) ; pub const MB_ICONEXCLAMATION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 48u32 ) ; pub const MB_ICONASTERISK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 64u32 ) ; pub const MB_USERICON : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 128u32 ) ; pub const MB_ICONWARNING : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 48u32 ) ; pub const MB_ICONERROR : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16u32 ) ; pub const MB_ICONINFORMATION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 64u32 ) ; pub const MB_ICONSTOP : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16u32 ) ; pub const MB_DEFBUTTON1 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 0u32 ) ; pub const MB_DEFBUTTON2 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 256u32 ) ; pub const MB_DEFBUTTON3 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 512u32 ) ; pub const MB_DEFBUTTON4 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 768u32 ) ; pub const MB_APPLMODAL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 0u32 ) ; pub const MB_SYSTEMMODAL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 4096u32 ) ; pub const MB_TASKMODAL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 8192u32 ) ; pub const MB_NOFOCUS : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 32768u32 ) ; pub const MB_SETFOREGROUND : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 65536u32 ) ; pub const MB_DEFAULT_DESKTOP_ONLY : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 131072u32 ) ; pub const MB_TOPMOST : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 262144u32 ) ; pub const MB_RIGHT : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 524288u32 ) ; pub const MB_RTLREADING : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 1048576u32 ) ; pub const MB_SERVICE_NOTIFICATION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 2097152u32 ) ; pub const MB_SERVICE_NOTIFICATION_NT3X : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 262144u32 ) ; pub const MB_TYPEMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 15u32 ) ; pub const MB_ICONMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 240u32 ) ; pub const MB_DEFMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 3840u32 ) ; pub const MB_MODEMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 12288u32 ) ; pub const MB_MISCMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 49152u32 ) ; impl :: std :: convert :: From < u32 > for MESSAGEBOX_STYLE { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for MESSAGEBOX_STYLE { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for MESSAGEBOX_STYLE { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for MESSAGEBOX_STYLE { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for MESSAGEBOX_STYLE { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for MESSAGEBOX_STYLE { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } pub unsafe fn MessageBoxA < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , lptext : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , lpcaption : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , utype : MESSAGEBOX_STYLE , ) -> MESSAGEBOX_RESULT { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn MessageBoxA ( hwnd : super::super::Foundation:: HWND , lptext : super::super::Foundation:: PSTR , lpcaption : super::super::Foundation:: PSTR , utype : MESSAGEBOX_STYLE ) -> MESSAGEBOX_RESULT ; } MessageBoxA ( hwnd . into_param ( ) . abi ( ) , lptext . into_param ( ) . abi ( ) , lpcaption . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( utype ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub type SENDASYNCPROC = unsafe extern "system" fn ( param0 : super::super::Foundation:: HWND , param1 : u32 , param2 : usize , param3 : super::super::Foundation:: LRESULT ) ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct SET_WINDOW_POS_FLAGS ( pub u32 ) ; pub const SWP_ASYNCWINDOWPOS : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 16384u32 ) ; pub const SWP_DEFERERASE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 8192u32 ) ; pub const SWP_DRAWFRAME : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 32u32 ) ; pub const SWP_FRAMECHANGED : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 32u32 ) ; pub const SWP_HIDEWINDOW : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 128u32 ) ; pub const SWP_NOACTIVATE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 16u32 ) ; pub const SWP_NOCOPYBITS : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 256u32 ) ; pub const SWP_NOMOVE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 2u32 ) ; pub const SWP_NOOWNERZORDER : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 512u32 ) ; pub const SWP_NOREDRAW : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 8u32 ) ; pub const SWP_NOREPOSITION : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 512u32 ) ; pub const SWP_NOSENDCHANGING : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 1024u32 ) ; pub const SWP_NOSIZE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 1u32 ) ; pub const SWP_NOZORDER : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 4u32 ) ; pub const SWP_SHOWWINDOW : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 64u32 ) ; pub const SWP__NOOWNERZORDER : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 512u32 ) ; impl :: std :: convert :: From < u32 > for SET_WINDOW_POS_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for SET_WINDOW_POS_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for SET_WINDOW_POS_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for SET_WINDOW_POS_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for SET_WINDOW_POS_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for SET_WINDOW_POS_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } pub unsafe fn SendMessageA < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM , ) -> super::super::Foundation:: LRESULT { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendMessageA ( hwnd : super::super::Foundation:: HWND , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: LRESULT ; } SendMessageA ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( msg ) , :: std :: mem :: transmute ( wparam ) , :: std :: mem :: transmute ( lparam ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SendMessageCallbackA < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , msg : u32 , wparam : impl :: windows :: IntoParam < 'a , super::super::Foundation:: WPARAM > , lparam : impl :: windows :: IntoParam < 'a , super::super::Foundation:: LPARAM > , lpresultcallback : :: std :: option :: Option < SENDASYNCPROC > , dwdata : usize , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendMessageCallbackA ( hwnd : super::super::Foundation:: HWND , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM , lpresultcallback : :: windows :: RawPtr , dwdata : usize ) -> super::super::Foundation:: BOOL ; } SendMessageCallbackA ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( msg ) , wparam . into_param ( ) . abi ( ) , lparam . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpresultcallback ) , :: std :: mem :: transmute ( dwdata ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SendMessageW < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM , ) -> super::super::Foundation:: LRESULT { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendMessageW ( hwnd : super::super::Foundation:: HWND , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: LRESULT ; } SendMessageW ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( msg ) , :: std :: mem :: transmute ( wparam ) , :: std :: mem :: transmute ( lparam ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SetForegroundWindow < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SetForegroundWindow ( hwnd : super::super::Foundation:: HWND ) -> super::super::Foundation:: BOOL ; } SetForegroundWindow ( hwnd . into_param ( ) . abi ( ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SetWindowPos < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , hwndinsertafter : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , x : i32 , y : i32 , cx : i32 , cy : i32 , uflags : SET_WINDOW_POS_FLAGS , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SetWindowPos ( hwnd : super::super::Foundation:: HWND , hwndinsertafter : super::super::Foundation:: HWND , x : i32 , y : i32 , cx : i32 , cy : i32 , uflags : SET_WINDOW_POS_FLAGS ) -> super::super::Foundation:: BOOL ; } SetWindowPos ( hwnd . into_param ( ) . abi ( ) , hwndinsertafter . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( x ) , :: std :: mem :: transmute ( y ) , :: std :: mem :: transmute ( cx ) , :: std :: mem :: transmute ( cy ) , :: std :: mem :: transmute ( uflags ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub const VK_LBUTTON : u32 = 1u32 ; pub const VK_TAB : u32 = 9u32 ; pub const WM_CHAR : u32 = 258u32 ; pub const WM_KEYDOWN : u32 = 256u32 ; pub const WM_KEYUP : u32 = 257u32 ; pub const WM_SYSKEYDOWN : u32 = 260u32 ; pub const WM_SYSKEYUP : u32 = 261u32 ; pub type WNDENUMPROC = unsafe extern "system" fn ( param0 : super::super::Foundation:: HWND , param1 : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: BOOL ; } } } }
[INFO] [stdout]   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]  --> /opt/rustwide/target/debug/build/bindings-4784cc7e120b9d5f/out/windows.rs:1:7061
[INFO] [stdout]   |
[INFO] [stdout] 1 | ... if ! value . 0 . is_null ( ) { unsafe { :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: In...
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 1 | # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Windows { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Win32 { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod Foundation { # [ repr ( transparent ) ] # [ derive ( :: std :: default :: Default , :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct BOOL ( pub i32 ) ; unsafe impl :: windows :: Abi for BOOL { type Abi = Self ; type DefaultType = Self ; } impl BOOL { # [ inline ] pub fn as_bool ( self ) -> bool { ! ( self . 0 == 0 ) } # [ inline ] pub fn ok ( self ) -> :: windows :: Result < ( ) > { if self . as_bool ( ) { Ok ( ( ) ) } else { Err ( :: windows :: HRESULT :: from_thread ( ) . into ( ) ) } } # [ inline ] # [ track_caller ] pub fn unwrap ( self ) { self . ok ( ) . unwrap ( ) ; } # [ inline ] # [ track_caller ] pub fn expect ( self , msg : & str ) { self . ok ( ) . expect ( msg ) ; } } impl :: std :: convert :: From < BOOL > for bool { fn from ( value : BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < & BOOL > for bool { fn from ( value : & BOOL ) -> Self { value . as_bool ( ) } } impl :: std :: convert :: From < bool > for BOOL { fn from ( value : bool ) -> Self { if value { BOOL ( 1 ) } else { BOOL ( 0 ) } } } impl :: std :: convert :: From < & bool > for BOOL { fn from ( value : & bool ) -> Self { ( * value ) . into ( ) } } impl :: std :: cmp :: PartialEq < bool > for BOOL { fn eq ( & self , other : & bool ) -> bool { self . as_bool ( ) == * other } } impl :: std :: cmp :: PartialEq < BOOL > for bool { fn eq ( & self , other : & BOOL ) -> bool { * self == other . as_bool ( ) } } impl std :: ops :: Not for BOOL { type Output = Self ; fn not ( self ) -> Self :: Output { if self . as_bool ( ) { BOOL ( 0 ) } else { BOOL ( 1 ) } } } impl < 'a > :: windows :: IntoParam < 'a , BOOL > for bool { fn into_param ( self ) -> :: windows :: Param < 'a , BOOL > { :: windows :: Param :: Owned ( self . into ( ) ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct HWND ( pub isize ) ; impl HWND { } impl :: std :: default :: Default for HWND { fn default ( ) -> Self { Self ( 0 ) } } impl HWND { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for HWND { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "HWND" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for HWND { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for HWND { } unsafe impl :: windows :: Abi for HWND { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct LPARAM ( pub isize ) ; impl LPARAM { } impl :: std :: default :: Default for LPARAM { fn default ( ) -> Self { Self ( 0 ) } } impl LPARAM { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for LPARAM { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "LPARAM" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for LPARAM { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for LPARAM { } unsafe impl :: windows :: Abi for LPARAM { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct LRESULT ( pub i32 ) ; impl LRESULT { } impl :: std :: default :: Default for LRESULT { fn default ( ) -> Self { Self ( 0 ) } } impl LRESULT { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for LRESULT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "LRESULT" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for LRESULT { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for LRESULT { } unsafe impl :: windows :: Abi for LRESULT { type Abi = Self ; type DefaultType = Self ; } # [ repr ( transparent ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct PSTR ( pub * mut u8 ) ; impl PSTR { pub const NULL : Self = Self ( :: std :: ptr :: null_mut ( ) ) ; pub fn is_null ( & self ) -> bool { self . 0 . is_null ( ) } } impl :: std :: default :: Default for PSTR { fn default ( ) -> Self { Self ( :: std :: ptr :: null_mut ( ) ) } } impl :: std :: cmp :: PartialEq for PSTR { fn eq ( & self , other : & Self ) -> bool { self . 0 == other . 0 } } unsafe impl :: windows :: Abi for PSTR { type Abi = Self ; type DefaultType = Self ; fn drop_param ( param : & mut :: windows :: Param < '_ , Self > ) { if let :: windows :: Param :: Boxed ( value ) = param { if ! value . 0 . is_null ( ) { unsafe { :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for & 'a str { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } impl < 'a > :: windows :: IntoParam < 'a , PSTR > for String { fn into_param ( self ) -> :: windows :: Param < 'a , PSTR > { :: windows :: Param :: Boxed ( PSTR ( :: std :: boxed :: Box :: < [ u8 ] > :: into_raw ( self . bytes ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u8 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } # [ repr ( transparent ) ] # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy , :: std :: cmp :: Eq , :: std :: fmt :: Debug ) ] pub struct PWSTR ( pub * mut u16 ) ; impl PWSTR { pub const NULL : Self = Self ( :: std :: ptr :: null_mut ( ) ) ; pub fn is_null ( & self ) -> bool { self . 0 . is_null ( ) } } impl :: std :: default :: Default for PWSTR { fn default ( ) -> Self { Self ( :: std :: ptr :: null_mut ( ) ) } } impl :: std :: cmp :: PartialEq for PWSTR { fn eq ( & self , other : & Self ) -> bool { self . 0 == other . 0 } } unsafe impl :: windows :: Abi for PWSTR { type Abi = Self ; type DefaultType = Self ; fn drop_param ( param : & mut :: windows :: Param < '_ , Self > ) { if let :: windows :: Param :: Boxed ( value ) = param { if ! value . 0 . is_null ( ) { unsafe { let _ = :: std :: boxed :: Box :: from_raw ( value . 0 ) ; } } } } } impl < 'a > :: windows :: IntoParam < 'a , PWSTR > for & 'a str { fn into_param ( self ) -> :: windows :: Param < 'a , PWSTR > { :: windows :: Param :: Boxed ( PWSTR ( :: std :: boxed :: Box :: < [ u16 ] > :: into_raw ( self . encode_utf16 ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u16 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } impl < 'a > :: windows :: IntoParam < 'a , PWSTR > for String { fn into_param ( self ) -> :: windows :: Param < 'a , PWSTR > { :: windows :: Param :: Boxed ( PWSTR ( :: std :: boxed :: Box :: < [ u16 ] > :: into_raw ( self . encode_utf16 ( ) . chain ( :: std :: iter :: once ( 0 ) ) . collect :: < std :: vec :: Vec < u16 >> ( ) . into_boxed_slice ( ) ) as _ ) ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct RECT { pub left : i32 , pub top : i32 , pub right : i32 , pub bottom : i32 } impl RECT { } impl :: std :: default :: Default for RECT { fn default ( ) -> Self { Self { left : 0 , top : 0 , right : 0 , bottom : 0 } } } impl :: std :: fmt :: Debug for RECT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "RECT" ) . field ( "left" , & self . left ) . field ( "top" , & self . top ) . field ( "right" , & self . right ) . field ( "bottom" , & self . bottom ) . finish ( ) } } impl :: std :: cmp :: PartialEq for RECT { fn eq ( & self , other : & Self ) -> bool { self . left == other . left && self . top == other . top && self . right == other . right && self . bottom == other . bottom } } impl :: std :: cmp :: Eq for RECT { } unsafe impl :: windows :: Abi for RECT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( transparent ) ] pub struct WPARAM ( pub usize ) ; impl WPARAM { } impl :: std :: default :: Default for WPARAM { fn default ( ) -> Self { Self ( 0 ) } } impl WPARAM { pub const NULL : Self = Self ( 0 ) ; pub fn is_null ( & self ) -> bool { self . 0 == 0 } } impl :: std :: fmt :: Debug for WPARAM { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "WPARAM" ) . field ( "Value" , & self .0 ) . finish ( ) } } impl :: std :: cmp :: PartialEq for WPARAM { fn eq ( & self , other : & Self ) -> bool { self .0 == other .0 } } impl :: std :: cmp :: Eq for WPARAM { } unsafe impl :: windows :: Abi for WPARAM { type Abi = Self ; type DefaultType = Self ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod UI { # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod KeyboardAndMouseInput { # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct HARDWAREINPUT { pub uMsg : u32 , pub wParamL : u16 , pub wParamH : u16 } impl HARDWAREINPUT { } impl :: std :: default :: Default for HARDWAREINPUT { fn default ( ) -> Self { Self { uMsg : 0 , wParamL : 0 , wParamH : 0 } } } impl :: std :: fmt :: Debug for HARDWAREINPUT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "HARDWAREINPUT" ) . field ( "uMsg" , & self . uMsg ) . field ( "wParamL" , & self . wParamL ) . field ( "wParamH" , & self . wParamH ) . finish ( ) } } impl :: std :: cmp :: PartialEq for HARDWAREINPUT { fn eq ( & self , other : & Self ) -> bool { self . uMsg == other . uMsg && self . wParamL == other . wParamL && self . wParamH == other . wParamH } } impl :: std :: cmp :: Eq for HARDWAREINPUT { } unsafe impl :: windows :: Abi for HARDWAREINPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct INPUT { pub r#type : INPUT_TYPE , pub Anonymous : INPUT_0 } impl INPUT { } impl :: std :: cmp :: PartialEq for INPUT { fn eq ( & self , _other : & Self ) -> bool { unimplemented ! ( ) } } impl :: std :: cmp :: Eq for INPUT { } unsafe impl :: windows :: Abi for INPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub union INPUT_0 { pub mi : MOUSEINPUT , pub ki : KEYBDINPUT , pub hi : HARDWAREINPUT } impl INPUT_0 { } impl :: std :: cmp :: PartialEq for INPUT_0 { fn eq ( & self , _other : & Self ) -> bool { unimplemented ! ( ) } } impl :: std :: cmp :: Eq for INPUT_0 { } unsafe impl :: windows :: Abi for INPUT_0 { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct INPUT_TYPE ( pub u32 ) ; pub const INPUT_MOUSE : INPUT_TYPE = INPUT_TYPE ( 0u32 ) ; pub const INPUT_KEYBOARD : INPUT_TYPE = INPUT_TYPE ( 1u32 ) ; pub const INPUT_HARDWARE : INPUT_TYPE = INPUT_TYPE ( 2u32 ) ; impl :: std :: convert :: From < u32 > for INPUT_TYPE { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for INPUT_TYPE { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for INPUT_TYPE { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for INPUT_TYPE { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for INPUT_TYPE { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for INPUT_TYPE { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct KEYBDINPUT { pub wVk : u16 , pub wScan : u16 , pub dwFlags : KEYBD_EVENT_FLAGS , pub time : u32 , pub dwExtraInfo : usize } impl KEYBDINPUT { } impl :: std :: default :: Default for KEYBDINPUT { fn default ( ) -> Self { Self { wVk : 0 , wScan : 0 , dwFlags : :: std :: default :: Default :: default ( ) , time : 0 , dwExtraInfo : 0 } } } impl :: std :: fmt :: Debug for KEYBDINPUT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "KEYBDINPUT" ) . field ( "wVk" , & self . wVk ) . field ( "wScan" , & self . wScan ) . field ( "dwFlags" , & self . dwFlags ) . field ( "time" , & self . time ) . field ( "dwExtraInfo" , & self . dwExtraInfo ) . finish ( ) } } impl :: std :: cmp :: PartialEq for KEYBDINPUT { fn eq ( & self , other : & Self ) -> bool { self . wVk == other . wVk && self . wScan == other . wScan && self . dwFlags == other . dwFlags && self . time == other . time && self . dwExtraInfo == other . dwExtraInfo } } impl :: std :: cmp :: Eq for KEYBDINPUT { } unsafe impl :: windows :: Abi for KEYBDINPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct KEYBD_EVENT_FLAGS ( pub u32 ) ; pub const KEYEVENTF_EXTENDEDKEY : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 1u32 ) ; pub const KEYEVENTF_KEYUP : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 2u32 ) ; pub const KEYEVENTF_SCANCODE : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 8u32 ) ; pub const KEYEVENTF_UNICODE : KEYBD_EVENT_FLAGS = KEYBD_EVENT_FLAGS ( 4u32 ) ; impl :: std :: convert :: From < u32 > for KEYBD_EVENT_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for KEYBD_EVENT_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for KEYBD_EVENT_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for KEYBD_EVENT_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for KEYBD_EVENT_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for KEYBD_EVENT_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } # [ derive ( :: std :: clone :: Clone , :: std :: marker :: Copy ) ] # [ repr ( C ) ] pub struct MOUSEINPUT { pub dx : i32 , pub dy : i32 , pub mouseData : u32 , pub dwFlags : MOUSE_EVENT_FLAGS , pub time : u32 , pub dwExtraInfo : usize } impl MOUSEINPUT { } impl :: std :: default :: Default for MOUSEINPUT { fn default ( ) -> Self { Self { dx : 0 , dy : 0 , mouseData : 0 , dwFlags : :: std :: default :: Default :: default ( ) , time : 0 , dwExtraInfo : 0 } } } impl :: std :: fmt :: Debug for MOUSEINPUT { fn fmt ( & self , fmt : & mut :: std :: fmt :: Formatter < '_ > ) -> :: std :: fmt :: Result { fmt . debug_struct ( "MOUSEINPUT" ) . field ( "dx" , & self . dx ) . field ( "dy" , & self . dy ) . field ( "mouseData" , & self . mouseData ) . field ( "dwFlags" , & self . dwFlags ) . field ( "time" , & self . time ) . field ( "dwExtraInfo" , & self . dwExtraInfo ) . finish ( ) } } impl :: std :: cmp :: PartialEq for MOUSEINPUT { fn eq ( & self , other : & Self ) -> bool { self . dx == other . dx && self . dy == other . dy && self . mouseData == other . mouseData && self . dwFlags == other . dwFlags && self . time == other . time && self . dwExtraInfo == other . dwExtraInfo } } impl :: std :: cmp :: Eq for MOUSEINPUT { } unsafe impl :: windows :: Abi for MOUSEINPUT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct MOUSE_EVENT_FLAGS ( pub u32 ) ; pub const MOUSEEVENTF_ABSOLUTE : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 32768u32 ) ; pub const MOUSEEVENTF_LEFTDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 2u32 ) ; pub const MOUSEEVENTF_LEFTUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 4u32 ) ; pub const MOUSEEVENTF_MIDDLEDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 32u32 ) ; pub const MOUSEEVENTF_MIDDLEUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 64u32 ) ; pub const MOUSEEVENTF_MOVE : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 1u32 ) ; pub const MOUSEEVENTF_RIGHTDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 8u32 ) ; pub const MOUSEEVENTF_RIGHTUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 16u32 ) ; pub const MOUSEEVENTF_WHEEL : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 2048u32 ) ; pub const MOUSEEVENTF_XDOWN : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 128u32 ) ; pub const MOUSEEVENTF_XUP : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 256u32 ) ; pub const MOUSEEVENTF_HWHEEL : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 4096u32 ) ; pub const MOUSEEVENTF_MOVE_NOCOALESCE : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 8192u32 ) ; pub const MOUSEEVENTF_VIRTUALDESK : MOUSE_EVENT_FLAGS = MOUSE_EVENT_FLAGS ( 16384u32 ) ; impl :: std :: convert :: From < u32 > for MOUSE_EVENT_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for MOUSE_EVENT_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for MOUSE_EVENT_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for MOUSE_EVENT_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for MOUSE_EVENT_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for MOUSE_EVENT_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } pub unsafe fn SendInput < > ( cinputs : u32 , pinputs : * mut INPUT , cbsize : i32 , ) -> u32 { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendInput ( cinputs : u32 , pinputs : * mut INPUT , cbsize : i32 ) -> u32 ; } SendInput ( :: std :: mem :: transmute ( cinputs ) , :: std :: mem :: transmute ( pinputs ) , :: std :: mem :: transmute ( cbsize ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SetActiveWindow < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , ) -> super::super::Foundation:: HWND { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SetActiveWindow ( hwnd : super::super::Foundation:: HWND ) -> super::super::Foundation:: HWND ; } SetActiveWindow ( hwnd . into_param ( ) . abi ( ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } } # [ allow ( unused_variables , non_upper_case_globals , non_snake_case , unused_unsafe , non_camel_case_types , dead_code , clippy :: all ) ] pub mod WindowsAndMessaging { pub unsafe fn EnumWindows < 'a , > ( lpenumfunc : :: std :: option :: Option < WNDENUMPROC > , lparam : impl :: windows :: IntoParam < 'a , super::super::Foundation:: LPARAM > , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn EnumWindows ( lpenumfunc : :: windows :: RawPtr , lparam : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: BOOL ; } EnumWindows ( :: std :: mem :: transmute ( lpenumfunc ) , lparam . into_param ( ) . abi ( ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn GetWindowRect < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , lprect : * mut super::super::Foundation:: RECT , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn GetWindowRect ( hwnd : super::super::Foundation:: HWND , lprect : * mut super::super::Foundation:: RECT ) -> super::super::Foundation:: BOOL ; } GetWindowRect ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lprect ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn GetWindowTextW < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , lpstring : super::super::Foundation:: PWSTR , nmaxcount : i32 , ) -> i32 { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn GetWindowTextW ( hwnd : super::super::Foundation:: HWND , lpstring : super::super::Foundation:: PWSTR , nmaxcount : i32 ) -> i32 ; } GetWindowTextW ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpstring ) , :: std :: mem :: transmute ( nmaxcount ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub const HWND_TOP : super::super::Foundation:: HWND = super::super::Foundation:: HWND ( 0i32 as _ ) ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct MESSAGEBOX_RESULT ( pub i32 ) ; pub const IDOK : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 1i32 ) ; pub const IDCANCEL : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 2i32 ) ; pub const IDABORT : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 3i32 ) ; pub const IDRETRY : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 4i32 ) ; pub const IDIGNORE : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 5i32 ) ; pub const IDYES : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 6i32 ) ; pub const IDNO : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 7i32 ) ; pub const IDCLOSE : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 8i32 ) ; pub const IDHELP : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 9i32 ) ; pub const IDTRYAGAIN : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 10i32 ) ; pub const IDCONTINUE : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 11i32 ) ; pub const IDASYNC : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 32001i32 ) ; pub const IDTIMEOUT : MESSAGEBOX_RESULT = MESSAGEBOX_RESULT ( 32000i32 ) ; impl :: std :: convert :: From < i32 > for MESSAGEBOX_RESULT { fn from ( value : i32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for MESSAGEBOX_RESULT { type Abi = Self ; type DefaultType = Self ; } # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct MESSAGEBOX_STYLE ( pub u32 ) ; pub const MB_ABORTRETRYIGNORE : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 2u32 ) ; pub const MB_CANCELTRYCONTINUE : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 6u32 ) ; pub const MB_HELP : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16384u32 ) ; pub const MB_OK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 0u32 ) ; pub const MB_OKCANCEL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 1u32 ) ; pub const MB_RETRYCANCEL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 5u32 ) ; pub const MB_YESNO : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 4u32 ) ; pub const MB_YESNOCANCEL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 3u32 ) ; pub const MB_ICONHAND : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16u32 ) ; pub const MB_ICONQUESTION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 32u32 ) ; pub const MB_ICONEXCLAMATION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 48u32 ) ; pub const MB_ICONASTERISK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 64u32 ) ; pub const MB_USERICON : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 128u32 ) ; pub const MB_ICONWARNING : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 48u32 ) ; pub const MB_ICONERROR : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16u32 ) ; pub const MB_ICONINFORMATION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 64u32 ) ; pub const MB_ICONSTOP : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 16u32 ) ; pub const MB_DEFBUTTON1 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 0u32 ) ; pub const MB_DEFBUTTON2 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 256u32 ) ; pub const MB_DEFBUTTON3 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 512u32 ) ; pub const MB_DEFBUTTON4 : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 768u32 ) ; pub const MB_APPLMODAL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 0u32 ) ; pub const MB_SYSTEMMODAL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 4096u32 ) ; pub const MB_TASKMODAL : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 8192u32 ) ; pub const MB_NOFOCUS : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 32768u32 ) ; pub const MB_SETFOREGROUND : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 65536u32 ) ; pub const MB_DEFAULT_DESKTOP_ONLY : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 131072u32 ) ; pub const MB_TOPMOST : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 262144u32 ) ; pub const MB_RIGHT : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 524288u32 ) ; pub const MB_RTLREADING : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 1048576u32 ) ; pub const MB_SERVICE_NOTIFICATION : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 2097152u32 ) ; pub const MB_SERVICE_NOTIFICATION_NT3X : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 262144u32 ) ; pub const MB_TYPEMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 15u32 ) ; pub const MB_ICONMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 240u32 ) ; pub const MB_DEFMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 3840u32 ) ; pub const MB_MODEMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 12288u32 ) ; pub const MB_MISCMASK : MESSAGEBOX_STYLE = MESSAGEBOX_STYLE ( 49152u32 ) ; impl :: std :: convert :: From < u32 > for MESSAGEBOX_STYLE { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for MESSAGEBOX_STYLE { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for MESSAGEBOX_STYLE { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for MESSAGEBOX_STYLE { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for MESSAGEBOX_STYLE { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for MESSAGEBOX_STYLE { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } pub unsafe fn MessageBoxA < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , lptext : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , lpcaption : impl :: windows :: IntoParam < 'a , super::super::Foundation:: PSTR > , utype : MESSAGEBOX_STYLE , ) -> MESSAGEBOX_RESULT { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn MessageBoxA ( hwnd : super::super::Foundation:: HWND , lptext : super::super::Foundation:: PSTR , lpcaption : super::super::Foundation:: PSTR , utype : MESSAGEBOX_STYLE ) -> MESSAGEBOX_RESULT ; } MessageBoxA ( hwnd . into_param ( ) . abi ( ) , lptext . into_param ( ) . abi ( ) , lpcaption . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( utype ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub type SENDASYNCPROC = unsafe extern "system" fn ( param0 : super::super::Foundation:: HWND , param1 : u32 , param2 : usize , param3 : super::super::Foundation:: LRESULT ) ; # [ derive ( :: std :: cmp :: PartialEq , :: std :: cmp :: Eq , :: std :: marker :: Copy , :: std :: clone :: Clone , :: std :: default :: Default , :: std :: fmt :: Debug ) ] # [ repr ( transparent ) ] pub struct SET_WINDOW_POS_FLAGS ( pub u32 ) ; pub const SWP_ASYNCWINDOWPOS : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 16384u32 ) ; pub const SWP_DEFERERASE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 8192u32 ) ; pub const SWP_DRAWFRAME : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 32u32 ) ; pub const SWP_FRAMECHANGED : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 32u32 ) ; pub const SWP_HIDEWINDOW : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 128u32 ) ; pub const SWP_NOACTIVATE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 16u32 ) ; pub const SWP_NOCOPYBITS : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 256u32 ) ; pub const SWP_NOMOVE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 2u32 ) ; pub const SWP_NOOWNERZORDER : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 512u32 ) ; pub const SWP_NOREDRAW : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 8u32 ) ; pub const SWP_NOREPOSITION : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 512u32 ) ; pub const SWP_NOSENDCHANGING : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 1024u32 ) ; pub const SWP_NOSIZE : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 1u32 ) ; pub const SWP_NOZORDER : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 4u32 ) ; pub const SWP_SHOWWINDOW : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 64u32 ) ; pub const SWP__NOOWNERZORDER : SET_WINDOW_POS_FLAGS = SET_WINDOW_POS_FLAGS ( 512u32 ) ; impl :: std :: convert :: From < u32 > for SET_WINDOW_POS_FLAGS { fn from ( value : u32 ) -> Self { Self ( value ) } } unsafe impl :: windows :: Abi for SET_WINDOW_POS_FLAGS { type Abi = Self ; type DefaultType = Self ; } impl :: std :: ops :: BitOr for SET_WINDOW_POS_FLAGS { type Output = Self ; fn bitor ( self , rhs : Self ) -> Self { Self ( self . 0 | rhs . 0 ) } } impl :: std :: ops :: BitAnd for SET_WINDOW_POS_FLAGS { type Output = Self ; fn bitand ( self , rhs : Self ) -> Self { Self ( self . 0 & rhs . 0 ) } } impl :: std :: ops :: BitOrAssign for SET_WINDOW_POS_FLAGS { fn bitor_assign ( & mut self , rhs : Self ) { self . 0 . bitor_assign ( rhs . 0 ) } } impl :: std :: ops :: BitAndAssign for SET_WINDOW_POS_FLAGS { fn bitand_assign ( & mut self , rhs : Self ) { self . 0 . bitand_assign ( rhs . 0 ) } } pub unsafe fn SendMessageA < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM , ) -> super::super::Foundation:: LRESULT { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendMessageA ( hwnd : super::super::Foundation:: HWND , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: LRESULT ; } SendMessageA ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( msg ) , :: std :: mem :: transmute ( wparam ) , :: std :: mem :: transmute ( lparam ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SendMessageCallbackA < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , msg : u32 , wparam : impl :: windows :: IntoParam < 'a , super::super::Foundation:: WPARAM > , lparam : impl :: windows :: IntoParam < 'a , super::super::Foundation:: LPARAM > , lpresultcallback : :: std :: option :: Option < SENDASYNCPROC > , dwdata : usize , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendMessageCallbackA ( hwnd : super::super::Foundation:: HWND , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM , lpresultcallback : :: windows :: RawPtr , dwdata : usize ) -> super::super::Foundation:: BOOL ; } SendMessageCallbackA ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( msg ) , wparam . into_param ( ) . abi ( ) , lparam . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( lpresultcallback ) , :: std :: mem :: transmute ( dwdata ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SendMessageW < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM , ) -> super::super::Foundation:: LRESULT { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SendMessageW ( hwnd : super::super::Foundation:: HWND , msg : u32 , wparam : super::super::Foundation:: WPARAM , lparam : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: LRESULT ; } SendMessageW ( hwnd . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( msg ) , :: std :: mem :: transmute ( wparam ) , :: std :: mem :: transmute ( lparam ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SetForegroundWindow < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SetForegroundWindow ( hwnd : super::super::Foundation:: HWND ) -> super::super::Foundation:: BOOL ; } SetForegroundWindow ( hwnd . into_param ( ) . abi ( ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub unsafe fn SetWindowPos < 'a , > ( hwnd : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , hwndinsertafter : impl :: windows :: IntoParam < 'a , super::super::Foundation:: HWND > , x : i32 , y : i32 , cx : i32 , cy : i32 , uflags : SET_WINDOW_POS_FLAGS , ) -> super::super::Foundation:: BOOL { # [ cfg ( windows ) ] { # [ link ( name ="USER32" ) ] extern "system" { fn SetWindowPos ( hwnd : super::super::Foundation:: HWND , hwndinsertafter : super::super::Foundation:: HWND , x : i32 , y : i32 , cx : i32 , cy : i32 , uflags : SET_WINDOW_POS_FLAGS ) -> super::super::Foundation:: BOOL ; } SetWindowPos ( hwnd . into_param ( ) . abi ( ) , hwndinsertafter . into_param ( ) . abi ( ) , :: std :: mem :: transmute ( x ) , :: std :: mem :: transmute ( y ) , :: std :: mem :: transmute ( cx ) , :: std :: mem :: transmute ( cy ) , :: std :: mem :: transmute ( uflags ) ) } # [ cfg ( not ( windows ) ) ] unimplemented ! ( "Unsupported target OS" ) ; } pub const VK_LBUTTON : u32 = 1u32 ; pub const VK_TAB : u32 = 9u32 ; pub const WM_CHAR : u32 = 258u32 ; pub const WM_KEYDOWN : u32 = 256u32 ; pub const WM_KEYUP : u32 = 257u32 ; pub const WM_SYSKEYDOWN : u32 = 260u32 ; pub const WM_SYSKEYUP : u32 = 261u32 ; pub type WNDENUMPROC = unsafe extern "system" fn ( param0 : super::super::Foundation:: HWND , param1 : super::super::Foundation:: LPARAM ) -> super::super::Foundation:: BOOL ; } } } }
[INFO] [stdout]   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking windows-virtual-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `INPUT_TYPE`, `MOUSEEVENTF_RIGHTDOWN`, `MOUSEEVENTF_RIGHTUP`, `MOUSE_EVENT_FLAGS`, and `SendInput`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     SendInput, SetActiveWindow, INPUT, INPUT_0, INPUT_MOUSE, INPUT_TYPE, MOUSEEVENTF_ABSOLUTE,
[INFO] [stdout]   |     ^^^^^^^^^                                                ^^^^^^^^^^
[INFO] [stdout] 6 |     MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP, MOUSEEVENTF_MOVE, MOUSEEVENTF_RIGHTDOWN,
[INFO] [stdout]   |                                                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     MOUSEEVENTF_RIGHTUP, MOUSEINPUT, MOUSE_EVENT_FLAGS,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HWND_TOP`, `MB_OK`, `MessageBoxA`, `SWP_SHOWWINDOW`, `SendMessageA`, `SendMessageCallbackA`, `SetWindowPos`, `VK_LBUTTON`, `VK_TAB`, `WM_KEYDOWN`, `WM_KEYUP`, `WM_SYSKEYDOWN`, `WM_SYSKEYUP`, and `WNDENUMPROC`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     MessageBoxA,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 16 |     SendMessageA,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 17 |     SendMessageW,
[INFO] [stdout] 18 |     SendMessageCallbackA,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     SetForegroundWindow,
[INFO] [stdout] 20 |     SetWindowPos,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 21 |     HWND_TOP,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |     MB_OK,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     SWP_SHOWWINDOW,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     WM_KEYDOWN,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 25 |     WM_KEYUP,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     WM_SYSKEYDOWN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 27 |     WM_SYSKEYUP,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 28 |     WM_CHAR,
[INFO] [stdout] 29 |     WNDENUMPROC,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 30 |     VK_TAB,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     VK_LBUTTON
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]   --> src/main.rs:34:46
[INFO] [stdout]    |
[INFO] [stdout] 34 | extern "system" fn enum_window(window: HWND, l: LPARAM) -> BOOL {
[INFO] [stdout]    |                                              ^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr`
[INFO] [stdout]    --> src/main.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let ptr = &mut input_arr as *mut INPUT;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `INPUT_TYPE`, `MOUSEEVENTF_RIGHTDOWN`, `MOUSEEVENTF_RIGHTUP`, `MOUSE_EVENT_FLAGS`, and `SendInput`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     SendInput, SetActiveWindow, INPUT, INPUT_0, INPUT_MOUSE, INPUT_TYPE, MOUSEEVENTF_ABSOLUTE,
[INFO] [stdout]   |     ^^^^^^^^^                                                ^^^^^^^^^^
[INFO] [stdout] 6 |     MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP, MOUSEEVENTF_MOVE, MOUSEEVENTF_RIGHTDOWN,
[INFO] [stdout]   |                                                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     MOUSEEVENTF_RIGHTUP, MOUSEINPUT, MOUSE_EVENT_FLAGS,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HWND_TOP`, `MB_OK`, `MessageBoxA`, `SWP_SHOWWINDOW`, `SendMessageA`, `SendMessageCallbackA`, `SetWindowPos`, `VK_LBUTTON`, `VK_TAB`, `WM_KEYDOWN`, `WM_KEYUP`, `WM_SYSKEYDOWN`, `WM_SYSKEYUP`, and `WNDENUMPROC`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     MessageBoxA,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 16 |     SendMessageA,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 17 |     SendMessageW,
[INFO] [stdout] 18 |     SendMessageCallbackA,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     SetForegroundWindow,
[INFO] [stdout] 20 |     SetWindowPos,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 21 |     HWND_TOP,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |     MB_OK,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     SWP_SHOWWINDOW,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     WM_KEYDOWN,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 25 |     WM_KEYUP,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     WM_SYSKEYDOWN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 27 |     WM_SYSKEYUP,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 28 |     WM_CHAR,
[INFO] [stdout] 29 |     WNDENUMPROC,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 30 |     VK_TAB,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     VK_LBUTTON
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]   --> src/main.rs:34:46
[INFO] [stdout]    |
[INFO] [stdout] 34 | extern "system" fn enum_window(window: HWND, l: LPARAM) -> BOOL {
[INFO] [stdout]    |                                              ^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr`
[INFO] [stdout]    --> src/main.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let ptr = &mut input_arr as *mut INPUT;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_ptr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.35s
[INFO] running `Command { std: "docker" "inspect" "21a5302749f853f600da4bd0e2fc8a33dce627d64d0faf96ebc6e708928f8808", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21a5302749f853f600da4bd0e2fc8a33dce627d64d0faf96ebc6e708928f8808", kill_on_drop: false }`
[INFO] [stdout] 21a5302749f853f600da4bd0e2fc8a33dce627d64d0faf96ebc6e708928f8808
