Trait winsafe::prelude::ole_IUnknown

source ·
pub trait ole_IUnknown: Clone {
    const IID: IID;

    // Required methods
    unsafe fn from_ptr(p: *mut c_void) -> Self;
    fn ptr(&self) -> *mut c_void;
    unsafe fn as_mut(&mut self) -> &mut *mut c_void;

    // Provided methods
    unsafe fn null() -> Self { ... }
    fn leak(&mut self) -> *mut c_void { ... }
    fn QueryInterface<T>(&self) -> HrResult<T>
       where T: ole_IUnknown { ... }
}
Available on crate features kernel and ole only.
Expand description

This trait is enabled with the ole feature, and provides methods for IUnknown. It is the base trait for all COM traits.

Prefer importing this trait through the prelude:

use winsafe::prelude::*;

Note that the IUnknownVT virtual table has two other methods: AddRef and Release. While these methods are relevant in C++, here they are abstracted away as it follows:

  • AddRef – called along the clone method from the Clone trait;

  • Release – called automatically by the Drop trait, so you don’t need to worry about it.

Required Associated Constants§

source

const IID: IID

The COM interface ID.

Required Methods§

source

unsafe fn from_ptr(p: *mut c_void) -> Self

Creates an object from a COM virtual table pointer.

This method can be used as an escape hatch to interoperate with other libraries.

§Panics

Panics if trying to create a custom COM implementation object.

§Safety

Be sure the pointer points to a properly allocated COM virtual table.

source

fn ptr(&self) -> *mut c_void

Returns the pointer to the underlying COM virtual table.

This method can be used as an escape hatch to interoperate with other libraries.

source

unsafe fn as_mut(&mut self) -> &mut *mut c_void

Returns a mutable reference do the underlying COM virtual table pointer.

This method can be used as an escape hatch to interoperate with other libraries.

§Panics

Panics if trying to modify a custom COM implementation object.

§Safety

Be sure the pointer being set points to a properly allocated COM virtual table.

Provided Methods§

source

unsafe fn null() -> Self

Creates an object from a null COM virtual table pointer.

§Safety

The pointer must be initialized before any call. Do not call methods on a null COM pointer.

source

fn leak(&mut self) -> *mut c_void

Returns the pointer to the underlying COM virtual table and sets the internal pointer to null, so that Release won’t be called.

Be sure to release the pointer, otherwise, as the name of this method implies, you will cause a resource leak.

source

fn QueryInterface<T>(&self) -> HrResult<T>
where T: ole_IUnknown,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl ole_IUnknown for IAction

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IActionCollection

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IAdviseSink

source§

const IID: IID = _

source§

impl ole_IUnknown for IBaseFilter

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IBindCtx

source§

const IID: IID = _

source§

impl ole_IUnknown for IBootTrigger

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IComHandlerAction

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIAdapter

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIDevice

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIDeviceSubObject

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIFactory

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIObject

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIOutput

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGIResource

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGISurface

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDXGISwapChain

Available on crate feature dxgi only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDailyTrigger

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDataObject

source§

const IID: IID = _

source§

impl ole_IUnknown for IDispatch

Available on crate feature oleaut only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IDropTarget

source§

const IID: IID = _

source§

impl ole_IUnknown for IEmailAction

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IEnumFilters

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IEnumMediaTypes

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IEnumPins

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IEnumShellItems

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IEventTrigger

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IExecAction

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFileDialog

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFileDialogEvents

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFileOpenDialog

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFileSaveDialog

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFileSinkFilter

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFilterGraph2

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IFilterGraph

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IGraphBuilder

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IIdleTrigger

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ILogonTrigger

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFAsyncCallback

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFAsyncResult

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFAttributes

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFClock

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFGetService

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFMediaEvent

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFMediaEventGenerator

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFMediaSession

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFMediaSource

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFPresentationDescriptor

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFSourceResolver

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFTopology

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFTopologyNode

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMFVideoDisplayControl

Available on crate feature mf only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMediaControl

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMediaFilter

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMediaSeeking

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IModalWindow

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IMoniker

source§

const IID: IID = _

source§

impl ole_IUnknown for IPersist

source§

const IID: IID = _

source§

impl ole_IUnknown for IPersistFile

source§

const IID: IID = _

source§

impl ole_IUnknown for IPersistStream

source§

const IID: IID = _

source§

impl ole_IUnknown for IPicture

source§

const IID: IID = _

source§

impl ole_IUnknown for IPin

Available on crate feature dshow only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IPropertyStore

Available on crate feature oleaut only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IRegisteredTask

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IRegistrationInfo

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ISequentialStream

source§

const IID: IID = _

source§

impl ole_IUnknown for IShellItem2

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IShellItem

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IShellItemArray

Available on crate feature shell only.
source§

const IID: IID = _

source§

const IID: IID = _

source§

impl ole_IUnknown for IStorage

source§

const IID: IID = _

source§

impl ole_IUnknown for IStream

source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskDefinition

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskFolder

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskService

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskbarList2

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskbarList3

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskbarList4

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITaskbarList

Available on crate feature shell only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITrigger

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITriggerCollection

Available on crate feature taskschd only.
source§

const IID: IID = _

source§

impl ole_IUnknown for ITypeInfo

Available on crate feature oleaut only.
source§

const IID: IID = _

source§

impl ole_IUnknown for IUnknown

source§

const IID: IID = _