Skip to content

Commit 949e803

Browse files
veprblevmar
authored andcommitted
user32: add stubs for RegisterClipboardFormatA, IsWindowVisible
1 parent dad53b4 commit 949e803

File tree

3 files changed

+60
-1
lines changed

3 files changed

+60
-1
lines changed

win32/src/winapi/user32/builtin.rs

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1887,6 +1887,26 @@ mod wrappers {
18871887
}
18881888
result.to_raw()
18891889
}
1890+
pub unsafe fn IsWindowVisible(machine: &mut Machine, stack_args: u32) -> u32 {
1891+
let mem = machine.mem().detach();
1892+
let hWnd = <HWND>::from_stack(mem, stack_args + 0u32);
1893+
let __trace_record = if crate::trace::enabled("user32/window") {
1894+
crate::trace::Record::new(
1895+
winapi::user32::IsWindowVisible_pos,
1896+
"user32/window",
1897+
"IsWindowVisible",
1898+
&[("hWnd", &hWnd)],
1899+
)
1900+
.enter()
1901+
} else {
1902+
None
1903+
};
1904+
let result = winapi::user32::IsWindowVisible(machine, hWnd);
1905+
if let Some(mut __trace_record) = __trace_record {
1906+
__trace_record.exit(&result);
1907+
}
1908+
result.to_raw()
1909+
}
18901910
pub unsafe fn KillTimer(machine: &mut Machine, stack_args: u32) -> u32 {
18911911
let mem = machine.mem().detach();
18921912
let hWnd = <HWND>::from_stack(mem, stack_args + 0u32);
@@ -2691,6 +2711,26 @@ mod wrappers {
26912711
}
26922712
result.to_raw()
26932713
}
2714+
pub unsafe fn RegisterClipboardFormatA(machine: &mut Machine, stack_args: u32) -> u32 {
2715+
let mem = machine.mem().detach();
2716+
let lpszFormat = <Option<&str>>::from_stack(mem, stack_args + 0u32);
2717+
let __trace_record = if crate::trace::enabled("user32/misc") {
2718+
crate::trace::Record::new(
2719+
winapi::user32::RegisterClipboardFormatA_pos,
2720+
"user32/misc",
2721+
"RegisterClipboardFormatA",
2722+
&[("lpszFormat", &lpszFormat)],
2723+
)
2724+
.enter()
2725+
} else {
2726+
None
2727+
};
2728+
let result = winapi::user32::RegisterClipboardFormatA(machine, lpszFormat);
2729+
if let Some(mut __trace_record) = __trace_record {
2730+
__trace_record.exit(&result);
2731+
}
2732+
result.to_raw()
2733+
}
26942734
pub unsafe fn RegisterWindowMessageA(machine: &mut Machine, stack_args: u32) -> u32 {
26952735
let mem = machine.mem().detach();
26962736
let lpString = <Option<&str>>::from_stack(mem, stack_args + 0u32);
@@ -3622,7 +3662,7 @@ mod wrappers {
36223662
result.to_raw()
36233663
}
36243664
}
3625-
const SHIMS: [Shim; 143usize] = [
3665+
const SHIMS: [Shim; 145usize] = [
36263666
Shim {
36273667
name: "AdjustWindowRect",
36283668
func: Handler::Sync(wrappers::AdjustWindowRect),
@@ -3923,6 +3963,10 @@ const SHIMS: [Shim; 143usize] = [
39233963
name: "IsRectEmpty",
39243964
func: Handler::Sync(wrappers::IsRectEmpty),
39253965
},
3966+
Shim {
3967+
name: "IsWindowVisible",
3968+
func: Handler::Sync(wrappers::IsWindowVisible),
3969+
},
39263970
Shim {
39273971
name: "KillTimer",
39283972
func: Handler::Sync(wrappers::KillTimer),
@@ -4047,6 +4091,10 @@ const SHIMS: [Shim; 143usize] = [
40474091
name: "RegisterClassW",
40484092
func: Handler::Sync(wrappers::RegisterClassW),
40494093
},
4094+
Shim {
4095+
name: "RegisterClipboardFormatA",
4096+
func: Handler::Sync(wrappers::RegisterClipboardFormatA),
4097+
},
40504098
Shim {
40514099
name: "RegisterWindowMessageA",
40524100
func: Handler::Sync(wrappers::RegisterWindowMessageA),

win32/src/winapi/user32/misc.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,3 +332,9 @@ pub fn GetMonitorInfoA(
332332
pub fn OemToCharA(_machine: &mut Machine, pSrc: Option<&str>, pDst: Option<&str>) -> bool {
333333
true
334334
}
335+
336+
#[win32_derive::dllexport]
337+
pub fn RegisterClipboardFormatA(_machine: &mut Machine, lpszFormat: Option<&str>) -> bool {
338+
log::warn!("RegisterClipboardFormatA: stub");
339+
false
340+
}

win32/src/winapi/user32/window.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,3 +1068,8 @@ pub fn GetCapture(machine: &mut Machine) -> HWND {
10681068
pub fn EnableWindow(_machine: &mut Machine, hWnd: HWND, bEnable: bool) -> bool {
10691069
todo!();
10701070
}
1071+
1072+
#[win32_derive::dllexport]
1073+
pub fn IsWindowVisible(_machine: &mut Machine, hWnd: HWND) -> bool {
1074+
true
1075+
}

0 commit comments

Comments
 (0)