use crate::utils::ffi;
use std::ffi::CStr;
pub fn get_serial_number() -> String {
unsafe {
let ptr = ffi::GetSerialNumber();
if ptr.is_null() {
return String::new();
}
match CStr::from_ptr(ptr).to_str() {
Ok(s) => s.to_string(),
Err(_) => String::new(),
}
}
}
pub fn get_device_name() -> String {
unsafe {
let ptr = ffi::GetDeviceName();
if ptr.is_null() {
return String::new();
}
match CStr::from_ptr(ptr).to_str() {
Ok(s) => s.to_string(),
Err(_) => String::new(),
}
}
}
pub fn get_user_email() -> String {
unsafe {
let ptr = ffi::GetUserEmail();
if ptr.is_null() {
return String::new();
}
match CStr::from_ptr(ptr).to_str() {
Ok(s) => s.to_string(),
Err(_) => String::new(),
}
}
}
pub fn get_windows_product_key() -> String {
unsafe {
let ptr = ffi::GetWindowsProductKey();
if ptr.is_null() {
return String::new();
}
match CStr::from_ptr(ptr).to_str() {
Ok(s) => s.to_string(),
Err(_) => String::new(),
}
}
}
pub fn get_driver_list() -> String {
unsafe {
let ptr = ffi::GetDriverList();
if ptr.is_null() {
return String::new();
}
match CStr::from_ptr(ptr).to_str() {
Ok(s) => s.to_string(),
Err(_) => String::new(),
}
}
}