Skip to main content

ComGuard

Struct ComGuard 

Source
pub struct ComGuard { /* private fields */ }
Expand description

RAII guard for COM initialization. Calls CoUninitialize on drop.

§Threading

This guard initializes COM in single-threaded apartment (STA) mode, which is required by the Windows Shell context menu interfaces. All context menu operations must happen on the same thread that created the ComGuard.

ComGuard is intentionally not Send or Sync — moving it to another thread would violate STA rules.

§Example

let _com = win_context_menu::init_com()?;
// COM is active for the lifetime of `_com`

Implementations§

Source§

impl ComGuard

Source

pub fn new() -> Result<Self>

Initialize COM in single-threaded apartment mode.

Returns Error::ComInit if COM has already been initialized with an incompatible threading model on this thread.

Trait Implementations§

Source§

impl Drop for ComGuard

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.