#![allow(non_snake_case)]
use core::ffi::c_void;
use crate::os::windows::types::{LONG, VARTYPE, WORD};
#[repr(C)]
#[derive(Copy, Clone)]
pub union VariantData {
llVal: i64,
lVal: LONG,
bVal: u8,
iVal: i16,
fltVal: f32,
dblVal: f64,
boolVal: i16,
scode: i32,
cyVal: i64,
date: f64,
bstrVal: *mut u16,
punkVal: *mut c_void,
pdispVal: *mut c_void,
pub parray: *mut SAFEARRAY,
byref: *mut c_void,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct VARIANT {
pub vt: VARTYPE,
pub w_reserved1: WORD,
pub w_reserved2: WORD,
pub w_reserved3: WORD,
pub data: VariantData,
}
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct SAFEARRAYBOUND {
pub cElements: u32,
pub lLbound: i32,
}
#[repr(C)]
pub struct SAFEARRAY {
cDims: u16,
fFeatures: u16,
cbElements: u32,
cLocks: u32,
pvData: *mut u8,
rgsabound: [SAFEARRAYBOUND; 1],
}