6 pub type HRESULT
= i32;
7 pub type HSTRING
= *mut ::core
::ffi
::c_void
;
8 pub type IUnknown
= *mut ::core
::ffi
::c_void
;
9 pub type IInspectable
= *mut ::core
::ffi
::c_void
;
10 pub type PSTR
= *mut u8;
11 pub type PWSTR
= *mut u16;
12 pub type PCSTR
= *const u8;
13 pub type PCWSTR
= *const u16;
14 pub type BSTR
= *const u16;
24 impl ::core
::marker
::Copy
for GUID {}
26 impl ::core
::clone
::Clone
for GUID
{
27 fn clone(&self) -> Self {
33 pub const fn from_u128(uuid
: u128
) -> Self {
34 Self { data1: (uuid >> 96) as u32, data2: (uuid >> 80 & 0xffff) as u16, data3: (uuid >> 64 & 0xffff) as u16, data4: (uuid as u64).to_be_bytes() }
38 #[cfg(all(windows_raw_dylib, target_arch = "x86"))]
42 ($library
:literal $abi
:literal $
(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => (
43 #[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim", import_name_type = "undecorated")]
45 pub fn $
name($
($arg
: $argty
),*) -> $ret
;
50 #[cfg(all(windows_raw_dylib, not(target_arch = "x86")))]
54 ($library
:literal $abi
:literal $
(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => (
55 #[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim")]
57 pub fn $
name($
($arg
: $argty
),*) -> $ret
;
62 #[cfg(not(windows_raw_dylib))]
66 ($library
:literal $abi
:literal $
(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => (
67 #[link(name = "windows")]
70 pub fn $
name($
($arg
: $argty
),*) -> $ret
;