use winapi::um::winuser;
pub fn send_events(events: &[winuser::INPUT]) -> Result<(), super::Error> {
let mut c = events.len() as u32;
let mut p = events.as_ptr() as *mut winuser::INPUT;
let s = std::mem::size_of::<winuser::INPUT>() as i32;
while c != 0 {
let inserted = unsafe { winuser::SendInput(c, p, s) };
if inserted == 0 {
return Err(super::Error::Blocked);
}
c -= inserted;
p = unsafe { p.add(inserted as usize) };
}
Ok(())
}