fix(client/windows): CfConnectSyncRoot liefert Key als Return-Value

In windows-rs 0.58 hat CfConnectSyncRoot nur 4 Argumente und liefert
den CF_CONNECTION_KEY direkt zurueck, keinen out-Parameter mehr.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Hacker 2026-04-14 16:37:16 +02:00
parent f9bf53803f
commit 8f70b047d8
1 changed files with 3 additions and 5 deletions

View File

@ -246,18 +246,16 @@ fn connect_callbacks(mount_point: &Path) -> Result<(), String> {
let path_wide = U16CString::from_str(mount_point.to_string_lossy().as_ref()) let path_wide = U16CString::from_str(mount_point.to_string_lossy().as_ref())
.map_err(|e| e.to_string())?; .map_err(|e| e.to_string())?;
let mut key = CF::CF_CONNECTION_KEY::default(); let key = unsafe {
unsafe {
CF::CfConnectSyncRoot( CF::CfConnectSyncRoot(
PCWSTR(path_wide.as_ptr()), PCWSTR(path_wide.as_ptr()),
callbacks.as_ptr(), callbacks.as_ptr(),
None, None,
CF::CF_CONNECT_FLAG_REQUIRE_PROCESS_INFO CF::CF_CONNECT_FLAG_REQUIRE_PROCESS_INFO
| CF::CF_CONNECT_FLAG_REQUIRE_FULL_FILE_PATH, | CF::CF_CONNECT_FLAG_REQUIRE_FULL_FILE_PATH,
&mut key,
) )
.map_err(|e| format!("CfConnectSyncRoot: {e}"))?; .map_err(|e| format!("CfConnectSyncRoot: {e}"))?
} };
*CONNECTION_KEY.lock().unwrap() = Some(key); *CONNECTION_KEY.lock().unwrap() = Some(key);
Ok(()) Ok(())
} }