use windows::Win32::Graphics::Gdi::{DEVMODEW, CDS_TYPE, CDS_UPDATEREGISTRY, CDS_NORESET, CDS_SET_PRIMARY};
pub fn to_wide(s: &str) -> Vec<u16> {
s.encode_utf16().chain(std::iter::once(0)).collect()
}
pub fn from_wide(data: &[u16]) -> String {
let end = data.iter().position(|&c| c == 0).unwrap_or(data.len());
String::from_utf16_lossy(&data[..end]).to_string()
}
pub fn create_empty_devmode() -> DEVMODEW {
DEVMODEW {
dmSize: std::mem::size_of::<DEVMODEW>() as u16,
..Default::default()
}
}
pub mod gdi_flags {
use super::*;
pub const STAGE_FLAGS: CDS_TYPE = CDS_TYPE(CDS_UPDATEREGISTRY.0 | CDS_NORESET.0);
pub const STAGE_PRIMARY_FLAGS: CDS_TYPE = CDS_TYPE(
CDS_UPDATEREGISTRY.0 | CDS_NORESET.0 | CDS_SET_PRIMARY.0,
);
pub const GLOBAL_FLUSH_FLAGS: CDS_TYPE = CDS_TYPE(0);
}