chore: Bump windows crate version (#26455)

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
张小白 2025-03-11 21:14:36 +08:00 committed by GitHub
parent 41ddd1cc97
commit 18259c0fd4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 162 additions and 61 deletions

141
Cargo.lock generated
View file

@ -2301,7 +2301,7 @@ dependencies = [
"cap-primitives",
"cap-std",
"io-lifetimes",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -2329,7 +2329,7 @@ dependencies = [
"ipnet",
"maybe-owned",
"rustix",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
"winx",
]
@ -2670,7 +2670,7 @@ dependencies = [
"serde",
"tempfile",
"util",
"windows 0.58.0",
"windows 0.60.0",
]
[[package]]
@ -2712,7 +2712,7 @@ dependencies = [
"tokio-socks",
"url",
"util",
"windows 0.58.0",
"windows 0.60.0",
"worktree",
]
@ -4403,7 +4403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
dependencies = [
"libc",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -5053,7 +5053,7 @@ dependencies = [
"text",
"time",
"util",
"windows 0.58.0",
"windows 0.60.0",
]
[[package]]
@ -5064,7 +5064,7 @@ checksum = "5e2e6123af26f0f2c51cc66869137080199406754903cc926a7690401ce09cb4"
dependencies = [
"io-lifetimes",
"rustix",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -5481,7 +5481,7 @@ dependencies = [
"ui",
"unindent",
"util",
"windows 0.58.0",
"windows 0.60.0",
"workspace",
"zed_actions",
]
@ -5681,8 +5681,8 @@ dependencies = [
"wayland-cursor",
"wayland-protocols",
"wayland-protocols-plasma",
"windows 0.58.0",
"windows-core 0.58.0",
"windows 0.60.0",
"windows-core 0.60.1",
"x11-clipboard",
"x11rb",
"xim",
@ -6709,7 +6709,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2285ddfe3054097ef4b2fe909ef8c3bcd1ea52a8f0d274416caebeef39f04a65"
dependencies = [
"io-lifetimes",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -10734,7 +10734,7 @@ dependencies = [
"once_cell",
"socket2",
"tracing",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -11656,7 +11656,7 @@ dependencies = [
"libc",
"linux-raw-sys",
"once_cell",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -13428,7 +13428,7 @@ dependencies = [
"fd-lock",
"io-lifetimes",
"rustix",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
"winx",
]
@ -13568,7 +13568,7 @@ dependencies = [
"getrandom 0.3.1",
"once_cell",
"rustix",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -13615,7 +13615,7 @@ dependencies = [
"theme",
"thiserror 1.0.69",
"util",
"windows 0.58.0",
"windows 0.60.0",
]
[[package]]
@ -13992,7 +13992,7 @@ dependencies = [
"tree-sitter-md",
"ui",
"util",
"windows 0.58.0",
"windows 0.60.0",
"workspace",
"zed_actions",
"zeta",
@ -14699,7 +14699,7 @@ dependencies = [
"theme",
"ui_macros",
"util",
"windows 0.58.0",
"windows 0.60.0",
]
[[package]]
@ -15914,7 +15914,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -15971,6 +15971,28 @@ dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows"
version = "0.60.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529"
dependencies = [
"windows-collections",
"windows-core 0.60.1",
"windows-future",
"windows-link",
"windows-numerics",
]
[[package]]
name = "windows-collections"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec"
dependencies = [
"windows-core 0.60.1",
]
[[package]]
name = "windows-core"
version = "0.52.0"
@ -16011,10 +16033,33 @@ dependencies = [
"windows-implement 0.58.0",
"windows-interface 0.58.0",
"windows-result 0.2.0",
"windows-strings",
"windows-strings 0.1.0",
"windows-targets 0.52.6",
]
[[package]]
name = "windows-core"
version = "0.60.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247"
dependencies = [
"windows-implement 0.59.0",
"windows-interface 0.59.0",
"windows-link",
"windows-result 0.3.1",
"windows-strings 0.3.1",
]
[[package]]
name = "windows-future"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0"
dependencies = [
"windows-core 0.60.1",
"windows-link",
]
[[package]]
name = "windows-implement"
version = "0.57.0"
@ -16037,6 +16082,17 @@ dependencies = [
"syn 2.0.90",
]
[[package]]
name = "windows-implement"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.90",
]
[[package]]
name = "windows-interface"
version = "0.57.0"
@ -16059,12 +16115,33 @@ dependencies = [
"syn 2.0.90",
]
[[package]]
name = "windows-interface"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.90",
]
[[package]]
name = "windows-link"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3"
[[package]]
name = "windows-numerics"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed"
dependencies = [
"windows-core 0.60.1",
"windows-link",
]
[[package]]
name = "windows-registry"
version = "0.2.0"
@ -16072,7 +16149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0"
dependencies = [
"windows-result 0.2.0",
"windows-strings",
"windows-strings 0.1.0",
"windows-targets 0.52.6",
]
@ -16094,6 +16171,15 @@ dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-result"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-strings"
version = "0.1.0"
@ -16104,6 +16190,15 @@ dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-strings"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-sys"
version = "0.45.0"
@ -16379,7 +16474,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f3fd376f71958b862e7afb20cfe5a22830e1963462f3a17f49d82a6c1d1f42d"
dependencies = [
"bitflags 2.8.0",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@ -17020,7 +17115,7 @@ dependencies = [
"vim",
"vim_mode_setting",
"welcome",
"windows 0.58.0",
"windows 0.60.0",
"winresource",
"workspace",
"zed_actions",

View file

@ -597,12 +597,12 @@ features = [
]
[workspace.dependencies.windows]
version = "0.58"
version = "0.60"
features = [
"implement",
"Foundation_Collections",
"Foundation_Numerics",
"Storage",
"Storage_Search",
"Storage_Streams",
"System_Threading",
"UI_StartScreen",
"UI_ViewManagement",
@ -623,9 +623,11 @@ features = [
"Win32_System_Com_StructuredStorage",
"Win32_System_Console",
"Win32_System_DataExchange",
"Win32_System_IO",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_System_Ole",
"Win32_System_Pipes",
"Win32_System_SystemInformation",
"Win32_System_SystemServices",
"Win32_System_Threading",

View file

@ -207,7 +207,7 @@ blade-macros.workspace = true
flume = "0.11"
rand.workspace = true
windows.workspace = true
windows-core = "0.58"
windows-core = "0.60"
[dev-dependencies]
backtrace = "0.3"

View file

@ -170,7 +170,7 @@ fn set_data_to_clipboard<T>(data: &[T], format: u32) -> Result<()> {
let handle = GlobalLock(global);
std::ptr::copy_nonoverlapping(data.as_ptr(), handle as _, data.len());
let _ = GlobalUnlock(global);
SetClipboardData(format, HANDLE(global.0))?;
SetClipboardData(format, Some(HANDLE(global.0)))?;
}
Ok(())
}

View file

@ -1049,7 +1049,7 @@ impl IDWriteTextRenderer_Impl for TextRenderer_Impl {
_measuringmode: DWRITE_MEASURING_MODE,
glyphrun: *const DWRITE_GLYPH_RUN,
glyphrundescription: *const DWRITE_GLYPH_RUN_DESCRIPTION,
_clientdrawingeffect: Option<&windows::core::IUnknown>,
_clientdrawingeffect: windows::core::Ref<windows::core::IUnknown>,
) -> windows::core::Result<()> {
unsafe {
let glyphrun = &*glyphrun;
@ -1113,7 +1113,7 @@ impl IDWriteTextRenderer_Impl for TextRenderer_Impl {
_baselineoriginx: f32,
_baselineoriginy: f32,
_underline: *const DWRITE_UNDERLINE,
_clientdrawingeffect: Option<&windows::core::IUnknown>,
_clientdrawingeffect: windows::core::Ref<windows::core::IUnknown>,
) -> windows::core::Result<()> {
Err(windows::core::Error::new(
E_NOTIMPL,
@ -1127,7 +1127,7 @@ impl IDWriteTextRenderer_Impl for TextRenderer_Impl {
_baselineoriginx: f32,
_baselineoriginy: f32,
_strikethrough: *const DWRITE_STRIKETHROUGH,
_clientdrawingeffect: Option<&windows::core::IUnknown>,
_clientdrawingeffect: windows::core::Ref<windows::core::IUnknown>,
) -> windows::core::Result<()> {
Err(windows::core::Error::new(
E_NOTIMPL,
@ -1140,10 +1140,10 @@ impl IDWriteTextRenderer_Impl for TextRenderer_Impl {
_clientdrawingcontext: *const ::core::ffi::c_void,
_originx: f32,
_originy: f32,
_inlineobject: Option<&IDWriteInlineObject>,
_inlineobject: windows::core::Ref<IDWriteInlineObject>,
_issideways: BOOL,
_isrighttoleft: BOOL,
_clientdrawingeffect: Option<&windows::core::IUnknown>,
_clientdrawingeffect: windows::core::Ref<windows::core::IUnknown>,
) -> windows::core::Result<()> {
Err(windows::core::Error::new(
E_NOTIMPL,

View file

@ -215,7 +215,7 @@ fn available_monitors() -> SmallVec<[HMONITOR; 4]> {
let mut monitors: SmallVec<[HMONITOR; 4]> = SmallVec::new();
unsafe {
EnumDisplayMonitors(
HDC::default(),
None,
None,
Some(monitor_enum_proc),
LPARAM(&mut monitors as *mut _ as _),

View file

@ -177,7 +177,12 @@ fn handle_size_msg(
fn handle_size_move_loop(handle: HWND) -> Option<isize> {
unsafe {
let ret = SetTimer(handle, SIZE_MOVE_LOOP_TIMER_ID, USER_TIMER_MINIMUM, None);
let ret = SetTimer(
Some(handle),
SIZE_MOVE_LOOP_TIMER_ID,
USER_TIMER_MINIMUM,
None,
);
if ret == 0 {
log::error!(
"unable to create timer: {}",
@ -190,7 +195,7 @@ fn handle_size_move_loop(handle: HWND) -> Option<isize> {
fn handle_size_move_loop_exit(handle: HWND) -> Option<isize> {
unsafe {
KillTimer(handle, SIZE_MOVE_LOOP_TIMER_ID).log_err();
KillTimer(Some(handle), SIZE_MOVE_LOOP_TIMER_ID).log_err();
}
None
}
@ -217,7 +222,7 @@ fn handle_paint_msg(handle: HWND, state_ptr: Rc<WindowsWindowStatePtr>) -> Optio
request_frame(Default::default());
state_ptr.state.borrow_mut().callbacks.request_frame = Some(request_frame);
}
unsafe { ValidateRect(handle, None).ok().log_err() };
unsafe { ValidateRect(Some(handle), None).ok().log_err() };
Some(0)
}
@ -776,7 +781,7 @@ fn handle_activate_msg(
if state_ptr.hide_title_bar {
if let Some(titlebar_rect) = state_ptr.state.borrow().get_titlebar_rect().log_err() {
unsafe {
InvalidateRect(handle, Some(&titlebar_rect), FALSE)
InvalidateRect(Some(handle), Some(&titlebar_rect), false)
.ok()
.log_err()
};
@ -1105,7 +1110,7 @@ fn handle_nc_mouse_up_msg(
HTCLOSE => {
if last_button == HTCLOSE {
unsafe {
PostMessageW(handle, WM_CLOSE, WPARAM::default(), LPARAM::default())
PostMessageW(Some(handle), WM_CLOSE, WPARAM::default(), LPARAM::default())
.log_err()
};
handled = true;
@ -1133,7 +1138,7 @@ fn handle_set_cursor(lparam: LPARAM, state_ptr: Rc<WindowsWindowStatePtr>) -> Op
) {
return None;
}
unsafe { SetCursor(state_ptr.state.borrow().current_cursor) };
unsafe { SetCursor(Some(state_ptr.state.borrow().current_cursor)) };
Some(1)
}

View file

@ -130,14 +130,9 @@ impl WindowsPlatform {
fn redraw_all(&self) {
for handle in self.raw_window_handles.read().iter() {
unsafe {
RedrawWindow(
*handle,
None,
HRGN::default(),
RDW_INVALIDATE | RDW_UPDATENOW,
)
.ok()
.log_err();
RedrawWindow(Some(*handle), None, None, RDW_INVALIDATE | RDW_UPDATENOW)
.ok()
.log_err();
}
}
}
@ -156,7 +151,7 @@ impl WindowsPlatform {
.read()
.iter()
.for_each(|handle| unsafe {
PostMessageW(*handle, message, wparam, lparam).log_err();
PostMessageW(Some(*handle), message, wparam, lparam).log_err();
});
}
@ -620,7 +615,7 @@ impl Platform for WindowsPlatform {
CredReadW(
PCWSTR::from_raw(target_name.as_ptr()),
CRED_TYPE_GENERIC,
0,
None,
&mut credentials,
)?
};
@ -648,7 +643,13 @@ impl Platform for WindowsPlatform {
.chain(Some(0))
.collect_vec();
self.foreground_executor().spawn(async move {
unsafe { CredDeleteW(PCWSTR::from_raw(target_name.as_ptr()), CRED_TYPE_GENERIC, 0)? };
unsafe {
CredDeleteW(
PCWSTR::from_raw(target_name.as_ptr()),
CRED_TYPE_GENERIC,
None,
)?
};
Ok(())
})
}
@ -805,7 +806,7 @@ fn load_icon() -> Result<HICON> {
let module = unsafe { GetModuleHandleW(None).context("unable to get module handle")? };
let handle = unsafe {
LoadImageW(
module,
Some(module.into()),
windows::core::PCWSTR(1 as _),
IMAGE_ICON,
0,

View file

@ -2,6 +2,7 @@ use std::sync::OnceLock;
use ::util::ResultExt;
use windows::{
core::BOOL,
Wdk::System::SystemServices::RtlGetVersion,
Win32::{Foundation::*, Graphics::Dwm::*, UI::WindowsAndMessaging::*},
UI::{

View file

@ -296,7 +296,7 @@ impl WindowsWindowStatePtr {
unsafe {
SetWindowPos(
state_ptr.hwnd,
HWND::default(),
None,
x,
y,
cx,
@ -433,7 +433,7 @@ impl WindowsWindow {
CW_USEDEFAULT,
None,
None,
hinstance,
Some(hinstance.into()),
lpparam,
)
};
@ -650,7 +650,7 @@ impl PlatformWindow for WindowsWindow {
.spawn(async move {
this.set_window_placement().log_err();
unsafe { SetActiveWindow(hwnd).log_err() };
unsafe { SetFocus(hwnd).log_err() };
unsafe { SetFocus(Some(hwnd)).log_err() };
// todo(windows)
// crate `windows 0.56` reports true as Err
unsafe { SetForegroundWindow(hwnd).as_bool() };
@ -817,16 +817,13 @@ impl WindowsDragDropHandler {
impl IDropTarget_Impl for WindowsDragDropHandler_Impl {
fn DragEnter(
&self,
pdataobj: Option<&IDataObject>,
pdataobj: windows::core::Ref<IDataObject>,
_grfkeystate: MODIFIERKEYS_FLAGS,
pt: &POINTL,
pdweffect: *mut DROPEFFECT,
) -> windows::core::Result<()> {
unsafe {
let Some(idata_obj) = pdataobj else {
log::info!("no dragging file or directory detected");
return Ok(());
};
let idata_obj = pdataobj.ok()?;
let config = FORMATETC {
cfFormat: CF_HDROP.0,
ptd: std::ptr::null_mut() as _,
@ -905,7 +902,7 @@ impl IDropTarget_Impl for WindowsDragDropHandler_Impl {
fn Drop(
&self,
_pdataobj: Option<&IDataObject>,
_pdataobj: windows::core::Ref<IDataObject>,
_grfkeystate: MODIFIERKEYS_FLAGS,
pt: &POINTL,
_pdweffect: *mut DROPEFFECT,