Struct wmi::connection::COMLibrary
source · pub struct COMLibrary { /* private fields */ }
Expand description
A marker to indicate that the current thread was CoInitialize
d.
§Note
COMLibrary
should be treated as a singleton per thread:
ⓘ
thread_local! {
static COM_LIB: COMLibrary = COMLibrary::new().unwrap();
}
pub fn wmi_con() -> WMIConnection {
let com_lib = COM_LIB.with(|com| *com);
WMIConnection::new(com_lib).unwrap()
}
Implementations§
source§impl COMLibrary
impl COMLibrary
Initialize COM.
CoUninitialize
will NOT be called when dropped.
See: https://github.com/microsoft/windows-rs/issues/1169#issuecomment-926877227
sourcepub fn without_security() -> WMIResult<Self>
pub fn without_security() -> WMIResult<Self>
CoInitialize
s the COM library for use by the calling thread, but without setting the security context.
sourcepub unsafe fn assume_initialized() -> Self
pub unsafe fn assume_initialized() -> Self
Assumes that COM was already initialized for this thread.
§Safety
This function is unsafe as it is the caller’s responsibility to ensure that COM is initialized and will not be uninitialized while any instance of object is in scope.
ⓘ
let initialized_com = unsafe { COMLibrary::assume_initialized() };
// Later, in the same thread.
let wmi_con = WMIConnection::with_namespace_path("ROOT\\CIMV2", initialized_com)?;
Trait Implementations§
source§impl Clone for COMLibrary
impl Clone for COMLibrary
source§fn clone(&self) -> COMLibrary
fn clone(&self) -> COMLibrary
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for COMLibrary
impl Debug for COMLibrary
impl Copy for COMLibrary
Auto Trait Implementations§
impl RefUnwindSafe for COMLibrary
impl !Send for COMLibrary
impl !Sync for COMLibrary
impl Unpin for COMLibrary
impl UnwindSafe for COMLibrary
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more