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 { ... }
}
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:
Required Associated Constants§
Required Methods§
sourcefn ptr(&self) -> *mut c_void
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.
sourceunsafe fn as_mut(&mut self) -> &mut *mut c_void
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§
sourceunsafe fn null() -> Self
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.
sourcefn leak(&mut self) -> *mut c_void
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.
sourcefn QueryInterface<T>(&self) -> HrResult<T>where
T: ole_IUnknown,
fn QueryInterface<T>(&self) -> HrResult<T>where
T: ole_IUnknown,
IUnknown::QueryInterface
method.
Object Safety§
Implementors§
source§impl ole_IUnknown for IAction
Available on crate feature taskschd
only.
impl ole_IUnknown for IAction
taskschd
only.source§impl ole_IUnknown for IActionCollection
Available on crate feature taskschd
only.
impl ole_IUnknown for IActionCollection
taskschd
only.source§impl ole_IUnknown for IAdviseSink
impl ole_IUnknown for IAdviseSink
source§impl ole_IUnknown for IBaseFilter
Available on crate feature dshow
only.
impl ole_IUnknown for IBaseFilter
dshow
only.source§impl ole_IUnknown for IBootTrigger
Available on crate feature taskschd
only.
impl ole_IUnknown for IBootTrigger
taskschd
only.source§impl ole_IUnknown for IComHandlerAction
Available on crate feature taskschd
only.
impl ole_IUnknown for IComHandlerAction
taskschd
only.source§impl ole_IUnknown for IDXGIAdapter
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIAdapter
dxgi
only.source§impl ole_IUnknown for IDXGIDevice
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIDevice
dxgi
only.source§impl ole_IUnknown for IDXGIDeviceSubObject
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIDeviceSubObject
dxgi
only.source§impl ole_IUnknown for IDXGIFactory
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIFactory
dxgi
only.source§impl ole_IUnknown for IDXGIObject
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIObject
dxgi
only.source§impl ole_IUnknown for IDXGIOutput
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIOutput
dxgi
only.source§impl ole_IUnknown for IDXGIResource
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGIResource
dxgi
only.source§impl ole_IUnknown for IDXGISurface
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGISurface
dxgi
only.source§impl ole_IUnknown for IDXGISwapChain
Available on crate feature dxgi
only.
impl ole_IUnknown for IDXGISwapChain
dxgi
only.source§impl ole_IUnknown for IDailyTrigger
Available on crate feature taskschd
only.
impl ole_IUnknown for IDailyTrigger
taskschd
only.source§impl ole_IUnknown for IDataObject
impl ole_IUnknown for IDataObject
source§impl ole_IUnknown for IDispatch
Available on crate feature oleaut
only.
impl ole_IUnknown for IDispatch
oleaut
only.source§impl ole_IUnknown for IDropTarget
impl ole_IUnknown for IDropTarget
source§impl ole_IUnknown for IEmailAction
Available on crate feature taskschd
only.
impl ole_IUnknown for IEmailAction
taskschd
only.source§impl ole_IUnknown for IEnumFilters
Available on crate feature dshow
only.
impl ole_IUnknown for IEnumFilters
dshow
only.source§impl ole_IUnknown for IEnumMediaTypes
Available on crate feature dshow
only.
impl ole_IUnknown for IEnumMediaTypes
dshow
only.source§impl ole_IUnknown for IEnumPins
Available on crate feature dshow
only.
impl ole_IUnknown for IEnumPins
dshow
only.source§impl ole_IUnknown for IEnumShellItems
Available on crate feature shell
only.
impl ole_IUnknown for IEnumShellItems
shell
only.source§impl ole_IUnknown for IEventTrigger
Available on crate feature taskschd
only.
impl ole_IUnknown for IEventTrigger
taskschd
only.source§impl ole_IUnknown for IExecAction
Available on crate feature taskschd
only.
impl ole_IUnknown for IExecAction
taskschd
only.source§impl ole_IUnknown for IFileDialog
Available on crate feature shell
only.
impl ole_IUnknown for IFileDialog
shell
only.source§impl ole_IUnknown for IFileDialogEvents
Available on crate feature shell
only.
impl ole_IUnknown for IFileDialogEvents
shell
only.source§impl ole_IUnknown for IFileOpenDialog
Available on crate feature shell
only.
impl ole_IUnknown for IFileOpenDialog
shell
only.source§impl ole_IUnknown for IFileSaveDialog
Available on crate feature shell
only.
impl ole_IUnknown for IFileSaveDialog
shell
only.source§impl ole_IUnknown for IFileSinkFilter
Available on crate feature dshow
only.
impl ole_IUnknown for IFileSinkFilter
dshow
only.source§impl ole_IUnknown for IFilterGraph2
Available on crate feature dshow
only.
impl ole_IUnknown for IFilterGraph2
dshow
only.source§impl ole_IUnknown for IFilterGraph
Available on crate feature dshow
only.
impl ole_IUnknown for IFilterGraph
dshow
only.source§impl ole_IUnknown for IGraphBuilder
Available on crate feature dshow
only.
impl ole_IUnknown for IGraphBuilder
dshow
only.source§impl ole_IUnknown for IIdleTrigger
Available on crate feature taskschd
only.
impl ole_IUnknown for IIdleTrigger
taskschd
only.source§impl ole_IUnknown for ILogonTrigger
Available on crate feature taskschd
only.
impl ole_IUnknown for ILogonTrigger
taskschd
only.source§impl ole_IUnknown for IMFAsyncCallback
Available on crate feature mf
only.
impl ole_IUnknown for IMFAsyncCallback
mf
only.source§impl ole_IUnknown for IMFAsyncResult
Available on crate feature mf
only.
impl ole_IUnknown for IMFAsyncResult
mf
only.source§impl ole_IUnknown for IMFAttributes
Available on crate feature mf
only.
impl ole_IUnknown for IMFAttributes
mf
only.source§impl ole_IUnknown for IMFGetService
Available on crate feature mf
only.
impl ole_IUnknown for IMFGetService
mf
only.source§impl ole_IUnknown for IMFMediaEvent
Available on crate feature mf
only.
impl ole_IUnknown for IMFMediaEvent
mf
only.source§impl ole_IUnknown for IMFMediaEventGenerator
Available on crate feature mf
only.
impl ole_IUnknown for IMFMediaEventGenerator
mf
only.source§impl ole_IUnknown for IMFMediaSession
Available on crate feature mf
only.
impl ole_IUnknown for IMFMediaSession
mf
only.source§impl ole_IUnknown for IMFMediaSource
Available on crate feature mf
only.
impl ole_IUnknown for IMFMediaSource
mf
only.source§impl ole_IUnknown for IMFPresentationDescriptor
Available on crate feature mf
only.
impl ole_IUnknown for IMFPresentationDescriptor
mf
only.source§impl ole_IUnknown for IMFSourceResolver
Available on crate feature mf
only.
impl ole_IUnknown for IMFSourceResolver
mf
only.source§impl ole_IUnknown for IMFTopology
Available on crate feature mf
only.
impl ole_IUnknown for IMFTopology
mf
only.source§impl ole_IUnknown for IMFTopologyNode
Available on crate feature mf
only.
impl ole_IUnknown for IMFTopologyNode
mf
only.source§impl ole_IUnknown for IMFVideoDisplayControl
Available on crate feature mf
only.
impl ole_IUnknown for IMFVideoDisplayControl
mf
only.source§impl ole_IUnknown for IMediaControl
Available on crate feature dshow
only.
impl ole_IUnknown for IMediaControl
dshow
only.source§impl ole_IUnknown for IMediaFilter
Available on crate feature dshow
only.
impl ole_IUnknown for IMediaFilter
dshow
only.source§impl ole_IUnknown for IMediaSeeking
Available on crate feature dshow
only.
impl ole_IUnknown for IMediaSeeking
dshow
only.source§impl ole_IUnknown for IModalWindow
Available on crate feature shell
only.
impl ole_IUnknown for IModalWindow
shell
only.source§impl ole_IUnknown for IPersistFile
impl ole_IUnknown for IPersistFile
source§impl ole_IUnknown for IPersistStream
impl ole_IUnknown for IPersistStream
source§impl ole_IUnknown for IPropertyStore
Available on crate feature oleaut
only.
impl ole_IUnknown for IPropertyStore
oleaut
only.source§impl ole_IUnknown for IRegisteredTask
Available on crate feature taskschd
only.
impl ole_IUnknown for IRegisteredTask
taskschd
only.source§impl ole_IUnknown for IRegistrationInfo
Available on crate feature taskschd
only.
impl ole_IUnknown for IRegistrationInfo
taskschd
only.source§impl ole_IUnknown for ISequentialStream
impl ole_IUnknown for ISequentialStream
source§impl ole_IUnknown for IShellItem2
Available on crate feature shell
only.
impl ole_IUnknown for IShellItem2
shell
only.source§impl ole_IUnknown for IShellItem
Available on crate feature shell
only.
impl ole_IUnknown for IShellItem
shell
only.source§impl ole_IUnknown for IShellItemArray
Available on crate feature shell
only.
impl ole_IUnknown for IShellItemArray
shell
only.source§impl ole_IUnknown for IShellLink
Available on crate feature shell
only.
impl ole_IUnknown for IShellLink
shell
only.source§impl ole_IUnknown for ITaskDefinition
Available on crate feature taskschd
only.
impl ole_IUnknown for ITaskDefinition
taskschd
only.source§impl ole_IUnknown for ITaskFolder
Available on crate feature taskschd
only.
impl ole_IUnknown for ITaskFolder
taskschd
only.source§impl ole_IUnknown for ITaskService
Available on crate feature taskschd
only.
impl ole_IUnknown for ITaskService
taskschd
only.source§impl ole_IUnknown for ITaskbarList2
Available on crate feature shell
only.
impl ole_IUnknown for ITaskbarList2
shell
only.source§impl ole_IUnknown for ITaskbarList3
Available on crate feature shell
only.
impl ole_IUnknown for ITaskbarList3
shell
only.source§impl ole_IUnknown for ITaskbarList4
Available on crate feature shell
only.
impl ole_IUnknown for ITaskbarList4
shell
only.source§impl ole_IUnknown for ITaskbarList
Available on crate feature shell
only.
impl ole_IUnknown for ITaskbarList
shell
only.source§impl ole_IUnknown for ITrigger
Available on crate feature taskschd
only.
impl ole_IUnknown for ITrigger
taskschd
only.source§impl ole_IUnknown for ITriggerCollection
Available on crate feature taskschd
only.
impl ole_IUnknown for ITriggerCollection
taskschd
only.source§impl ole_IUnknown for ITypeInfo
Available on crate feature oleaut
only.
impl ole_IUnknown for ITypeInfo
oleaut
only.