chore(deps): bump windows-rs to 0.30

This commit is contained in:
LGUG2Z
2022-01-13 14:07:12 -08:00
parent e70086b681
commit 749e247d85
7 changed files with 154 additions and 125 deletions
+1 -2
View File
@@ -40,9 +40,8 @@ miow = "0.4"
winreg = "0.10"
[dependencies.windows]
version = "0.28"
version = "0.30"
features = [
"std",
"Win32_Foundation",
"Win32_Graphics_Dwm",
"Win32_Graphics_Gdi",
+15 -15
View File
@@ -18,20 +18,20 @@ use windows::Win32::UI::WindowsAndMessaging::SWP_SHOWWINDOW;
bitflags! {
#[derive(Default)]
pub struct SetWindowPosition: u32 {
const ASYNC_WINDOW_POS = SWP_ASYNCWINDOWPOS.0;
const DEFER_ERASE = SWP_DEFERERASE.0;
const DRAW_FRAME = SWP_DRAWFRAME.0;
const FRAME_CHANGED = SWP_FRAMECHANGED.0;
const HIDE_WINDOW = SWP_HIDEWINDOW.0;
const NO_ACTIVATE = SWP_NOACTIVATE.0;
const NO_COPY_BITS = SWP_NOCOPYBITS.0;
const NO_MOVE = SWP_NOMOVE.0;
const NO_OWNER_Z_ORDER = SWP_NOOWNERZORDER.0;
const NO_REDRAW = SWP_NOREDRAW.0;
const NO_REPOSITION = SWP_NOREPOSITION.0;
const NO_SEND_CHANGING = SWP_NOSENDCHANGING.0;
const NO_SIZE = SWP_NOSIZE.0;
const NO_Z_ORDER = SWP_NOZORDER.0;
const SHOW_WINDOW = SWP_SHOWWINDOW.0;
const ASYNC_WINDOW_POS = SWP_ASYNCWINDOWPOS;
const DEFER_ERASE = SWP_DEFERERASE;
const DRAW_FRAME = SWP_DRAWFRAME;
const FRAME_CHANGED = SWP_FRAMECHANGED;
const HIDE_WINDOW = SWP_HIDEWINDOW;
const NO_ACTIVATE = SWP_NOACTIVATE;
const NO_COPY_BITS = SWP_NOCOPYBITS;
const NO_MOVE = SWP_NOMOVE;
const NO_OWNER_Z_ORDER = SWP_NOOWNERZORDER;
const NO_REDRAW = SWP_NOREDRAW;
const NO_REPOSITION = SWP_NOREPOSITION;
const NO_SEND_CHANGING = SWP_NOSENDCHANGING;
const NO_SIZE = SWP_NOSIZE;
const NO_Z_ORDER = SWP_NOZORDER;
const SHOW_WINDOW = SWP_SHOWWINDOW;
}
}
+54 -54
View File
@@ -58,33 +58,33 @@ use windows::Win32::UI::WindowsAndMessaging::WS_VSCROLL;
bitflags! {
#[derive(Default)]
pub struct WindowStyle: u32 {
const BORDER = WS_BORDER.0;
const CAPTION = WS_CAPTION.0;
const CHILD = WS_CHILD.0;
const CHILDWINDOW = WS_CHILDWINDOW.0;
const CLIPCHILDREN = WS_CLIPCHILDREN.0;
const CLIPSIBLINGS = WS_CLIPSIBLINGS.0;
const DISABLED = WS_DISABLED.0;
const DLGFRAME = WS_DLGFRAME.0;
const GROUP = WS_GROUP.0;
const HSCROLL = WS_HSCROLL.0;
const ICONIC = WS_ICONIC.0;
const MAXIMIZE = WS_MAXIMIZE.0;
const MAXIMIZEBOX = WS_MAXIMIZEBOX.0;
const MINIMIZE = WS_MINIMIZE.0;
const MINIMIZEBOX = WS_MINIMIZEBOX.0;
const OVERLAPPED = WS_OVERLAPPED.0;
const OVERLAPPEDWINDOW = WS_OVERLAPPEDWINDOW.0;
const POPUP = WS_POPUP.0;
const POPUPWINDOW = WS_POPUPWINDOW.0;
const SIZEBOX = WS_SIZEBOX.0;
const SYSMENU = WS_SYSMENU.0;
const TABSTOP = WS_TABSTOP.0;
const THICKFRAME = WS_THICKFRAME.0;
const TILED = WS_TILED.0;
const TILEDWINDOW = WS_TILEDWINDOW.0;
const VISIBLE = WS_VISIBLE.0;
const VSCROLL = WS_VSCROLL.0;
const BORDER = WS_BORDER;
const CAPTION = WS_CAPTION;
const CHILD = WS_CHILD;
const CHILDWINDOW = WS_CHILDWINDOW;
const CLIPCHILDREN = WS_CLIPCHILDREN;
const CLIPSIBLINGS = WS_CLIPSIBLINGS;
const DISABLED = WS_DISABLED;
const DLGFRAME = WS_DLGFRAME;
const GROUP = WS_GROUP;
const HSCROLL = WS_HSCROLL;
const ICONIC = WS_ICONIC;
const MAXIMIZE = WS_MAXIMIZE;
const MAXIMIZEBOX = WS_MAXIMIZEBOX;
const MINIMIZE = WS_MINIMIZE;
const MINIMIZEBOX = WS_MINIMIZEBOX;
const OVERLAPPED = WS_OVERLAPPED;
const OVERLAPPEDWINDOW = WS_OVERLAPPEDWINDOW;
const POPUP = WS_POPUP;
const POPUPWINDOW = WS_POPUPWINDOW;
const SIZEBOX = WS_SIZEBOX;
const SYSMENU = WS_SYSMENU;
const TABSTOP = WS_TABSTOP;
const THICKFRAME = WS_THICKFRAME;
const TILED = WS_TILED;
const TILEDWINDOW = WS_TILEDWINDOW;
const VISIBLE = WS_VISIBLE;
const VSCROLL = WS_VSCROLL;
}
}
@@ -92,32 +92,32 @@ bitflags! {
bitflags! {
#[derive(Default)]
pub struct ExtendedWindowStyle: u32 {
const ACCEPTFILES = WS_EX_ACCEPTFILES.0;
const APPWINDOW = WS_EX_APPWINDOW.0;
const CLIENTEDGE = WS_EX_CLIENTEDGE.0;
const COMPOSITED = WS_EX_COMPOSITED.0;
const CONTEXTHELP = WS_EX_CONTEXTHELP.0;
const CONTROLPARENT = WS_EX_CONTROLPARENT.0;
const DLGMODALFRAME = WS_EX_DLGMODALFRAME.0;
const LAYERED = WS_EX_LAYERED.0;
const LAYOUTRTL = WS_EX_LAYOUTRTL.0;
const LEFT = WS_EX_LEFT.0;
const LEFTSCROLLBAR = WS_EX_LEFTSCROLLBAR.0;
const LTRREADING = WS_EX_LTRREADING.0;
const MDICHILD = WS_EX_MDICHILD.0;
const NOACTIVATE = WS_EX_NOACTIVATE.0;
const NOINHERITLAYOUT = WS_EX_NOINHERITLAYOUT.0;
const NOPARENTNOTIFY = WS_EX_NOPARENTNOTIFY.0;
const NOREDIRECTIONBITMAP = WS_EX_NOREDIRECTIONBITMAP.0;
const OVERLAPPEDWINDOW = WS_EX_OVERLAPPEDWINDOW.0;
const PALETTEWINDOW = WS_EX_PALETTEWINDOW.0;
const RIGHT = WS_EX_RIGHT.0;
const RIGHTSCROLLBAR = WS_EX_RIGHTSCROLLBAR.0;
const RTLREADING = WS_EX_RTLREADING.0;
const STATICEDGE = WS_EX_STATICEDGE.0;
const TOOLWINDOW = WS_EX_TOOLWINDOW.0;
const TOPMOST = WS_EX_TOPMOST.0;
const TRANSPARENT = WS_EX_TRANSPARENT.0;
const WINDOWEDGE = WS_EX_WINDOWEDGE.0;
const ACCEPTFILES = WS_EX_ACCEPTFILES;
const APPWINDOW = WS_EX_APPWINDOW;
const CLIENTEDGE = WS_EX_CLIENTEDGE;
const COMPOSITED = WS_EX_COMPOSITED;
const CONTEXTHELP = WS_EX_CONTEXTHELP;
const CONTROLPARENT = WS_EX_CONTROLPARENT;
const DLGMODALFRAME = WS_EX_DLGMODALFRAME;
const LAYERED = WS_EX_LAYERED;
const LAYOUTRTL = WS_EX_LAYOUTRTL;
const LEFT = WS_EX_LEFT;
const LEFTSCROLLBAR = WS_EX_LEFTSCROLLBAR;
const LTRREADING = WS_EX_LTRREADING;
const MDICHILD = WS_EX_MDICHILD;
const NOACTIVATE = WS_EX_NOACTIVATE;
const NOINHERITLAYOUT = WS_EX_NOINHERITLAYOUT;
const NOPARENTNOTIFY = WS_EX_NOPARENTNOTIFY;
const NOREDIRECTIONBITMAP = WS_EX_NOREDIRECTIONBITMAP;
const OVERLAPPEDWINDOW = WS_EX_OVERLAPPEDWINDOW;
const PALETTEWINDOW = WS_EX_PALETTEWINDOW;
const RIGHT = WS_EX_RIGHT;
const RIGHTSCROLLBAR = WS_EX_RIGHTSCROLLBAR;
const RTLREADING = WS_EX_RTLREADING;
const STATICEDGE = WS_EX_STATICEDGE;
const TOOLWINDOW = WS_EX_TOOLWINDOW;
const TOPMOST = WS_EX_TOPMOST;
const TRANSPARENT = WS_EX_TRANSPARENT;
const WINDOWEDGE = WS_EX_WINDOWEDGE;
}
}
+9 -19
View File
@@ -6,7 +6,6 @@ use std::ffi::c_void;
use color_eyre::eyre::anyhow;
use color_eyre::eyre::Error;
use color_eyre::Result;
use windows::core::Handle;
use windows::core::Result as WindowsCrateResult;
use windows::Win32::Foundation::BOOL;
use windows::Win32::Foundation::HANDLE;
@@ -38,7 +37,6 @@ use windows::Win32::System::Threading::GetCurrentThreadId;
use windows::Win32::System::Threading::OpenProcess;
use windows::Win32::System::Threading::QueryFullProcessImageNameW;
use windows::Win32::System::Threading::PROCESS_ACCESS_RIGHTS;
use windows::Win32::System::Threading::PROCESS_NAME_FORMAT;
use windows::Win32::System::Threading::PROCESS_QUERY_INFORMATION;
use windows::Win32::UI::Input::KeyboardAndMouse::SetFocus;
use windows::Win32::UI::WindowsAndMessaging::AllowSetForegroundWindow;
@@ -68,7 +66,6 @@ use windows::Win32::UI::WindowsAndMessaging::GWL_STYLE;
use windows::Win32::UI::WindowsAndMessaging::GW_HWNDNEXT;
use windows::Win32::UI::WindowsAndMessaging::HWND_NOTOPMOST;
use windows::Win32::UI::WindowsAndMessaging::HWND_TOPMOST;
use windows::Win32::UI::WindowsAndMessaging::SET_WINDOW_POS_FLAGS;
use windows::Win32::UI::WindowsAndMessaging::SHOW_WINDOW_CMD;
use windows::Win32::UI::WindowsAndMessaging::SPIF_SENDCHANGE;
use windows::Win32::UI::WindowsAndMessaging::SPI_GETACTIVEWINDOWTRACKING;
@@ -167,7 +164,7 @@ impl WindowsApi {
EnumDisplayMonitors(
HDC(0),
std::ptr::null_mut(),
Option::from(callback),
callback,
LPARAM(callback_data_address),
)
}
@@ -179,7 +176,7 @@ impl WindowsApi {
let mut monitors: Vec<isize> = vec![];
let monitors_ref: &mut Vec<isize> = monitors.as_mut();
Self::enum_display_monitors(
windows_callbacks::valid_display_monitors,
Option::Some(windows_callbacks::valid_display_monitors),
monitors_ref as *mut Vec<isize> as isize,
)?;
@@ -188,13 +185,13 @@ impl WindowsApi {
pub fn load_monitor_information(monitors: &mut Ring<Monitor>) -> Result<()> {
Self::enum_display_monitors(
windows_callbacks::enum_display_monitor,
Option::Some(windows_callbacks::enum_display_monitor),
monitors as *mut Ring<Monitor> as isize,
)
}
pub fn enum_windows(callback: WNDENUMPROC, callback_data_address: isize) -> Result<()> {
unsafe { EnumWindows(Option::from(callback), LPARAM(callback_data_address)) }
unsafe { EnumWindows(callback, LPARAM(callback_data_address)) }
.ok()
.process()
}
@@ -205,7 +202,7 @@ impl WindowsApi {
if let Some(workspace) = monitor.workspaces_mut().front_mut() {
// EnumWindows will enumerate through windows on all monitors
Self::enum_windows(
windows_callbacks::enum_window,
Option::Some(windows_callbacks::enum_window),
workspace.containers_mut() as *mut VecDeque<Container> as isize,
)?;
@@ -268,7 +265,7 @@ impl WindowsApi {
layout.top,
layout.right,
layout.bottom,
SET_WINDOW_POS_FLAGS(flags),
flags,
)
}
.ok()
@@ -469,16 +466,9 @@ impl WindowsApi {
let mut path: Vec<u16> = vec![0; len as usize];
let text_ptr = path.as_mut_ptr();
unsafe {
QueryFullProcessImageNameW(
handle,
PROCESS_NAME_FORMAT(0),
PWSTR(text_ptr),
&mut len as *mut u32,
)
}
.ok()
.process()?;
unsafe { QueryFullProcessImageNameW(handle, 0, PWSTR(text_ptr), &mut len as *mut u32) }
.ok()
.process()?;
Ok(String::from_utf16(&path[..len as usize])?)
}