pub unsafe trait Interface: Sized {
    type Vtable;

    // Provided methods
    fn as_raw(&self) -> *mut c_void { ... }
    fn into_raw(self) -> *mut c_void { ... }
    unsafe fn from_raw(raw: *mut c_void) -> Self { ... }
    unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self> { ... }
}
Expand description

Provides low-level access to an interface vtable.

This trait is automatically implemented by the generated bindings and should not be implemented manually.

Safety

Required Associated Types§

type Vtable

Provided Methods§

fn as_raw(&self) -> *mut c_void

Returns the raw COM interface pointer. The resulting pointer continues to be owned by the Interface implementation.

fn into_raw(self) -> *mut c_void

Returns the raw COM interface pointer and releases ownership. It the caller’s responsibility to release the COM interface pointer.

unsafe fn from_raw(raw: *mut c_void) -> Self

Creates an Interface by taking ownership of the raw COM interface pointer.

Safety

The raw pointer must be owned by the caller and represent a valid COM interface pointer. In other words, it must point to a vtable beginning with the IUnknown function pointers and match the vtable of Interface.

unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self>

Creates an Interface that is valid so long as the raw COM interface pointer is valid.

Safety

The raw pointer must be a valid COM interface pointer. In other words, it must point to a vtable beginning with the IUnknown function pointers and match the vtable of Interface.

Implementors§

§

impl Interface for makepad_widgets::shader::std::os::windows::dataobject::IDataObject

§

impl Interface for IDropTarget

§

impl Interface for makepad_widgets::shader::std::os::windows::enumformatetc::IEnumFORMATETC

§

impl Interface for DeviceInformation

§

impl Interface for DeviceInformationCollection

§

type Vtable = IVectorView_Vtbl<DeviceInformation>

§

impl Interface for DeviceInformationCustomPairing

§

impl Interface for DeviceInformationPairing

§

impl Interface for DeviceInformationUpdate

§

impl Interface for DevicePairingRequestedEventArgs

§

impl Interface for DevicePairingResult

§

impl Interface for DeviceThumbnail

§

impl Interface for DeviceUnpairingResult

§

impl Interface for DeviceWatcher

§

impl Interface for EnclosureLocation

§

impl Interface for IDeviceInformation2

§

impl Interface for IDeviceInformation

§

impl Interface for IDeviceInformationCustomPairing

§

impl Interface for IDeviceInformationPairing2

§

impl Interface for IDeviceInformationPairing

§

impl Interface for IDeviceInformationPairingStatics2

§

impl Interface for IDeviceInformationPairingStatics

§

impl Interface for IDeviceInformationStatics2

§

impl Interface for IDeviceInformationStatics

§

impl Interface for IDeviceInformationUpdate2

§

impl Interface for IDeviceInformationUpdate

§

impl Interface for IDevicePairingRequestedEventArgs

§

impl Interface for IDevicePairingResult

§

impl Interface for IDevicePairingSettings

§

impl Interface for IDeviceUnpairingResult

§

impl Interface for IDeviceWatcher

§

impl Interface for IEnclosureLocation2

§

impl Interface for IEnclosureLocation

§

impl Interface for IMidiInPort

§

impl Interface for IMidiInPortStatics

§

impl Interface for IMidiMessage

§

impl Interface for IMidiMessageReceivedEventArgs

§

impl Interface for IMidiOutPort

§

impl Interface for IMidiOutPortStatics

§

impl Interface for MidiInPort

§

impl Interface for MidiMessageReceivedEventArgs

§

impl Interface for MidiOutPort

§

impl Interface for IPropertySet

§

type Vtable = IPropertySet_Vtbl

§

impl Interface for IVectorChangedEventArgs

§

type Vtable = IVectorChangedEventArgs_Vtbl

§

impl Interface for PropertySet

§

type Vtable = IPropertySet_Vtbl

§

impl Interface for StringMap

§

type Vtable = IMap_Vtbl<HSTRING, HSTRING>

§

impl Interface for ValueSet

§

type Vtable = IPropertySet_Vtbl

§

impl Interface for AsyncActionCompletedHandler

§

type Vtable = AsyncActionCompletedHandler_Vtbl

§

impl Interface for Deferral

§

type Vtable = IDeferral_Vtbl

§

impl Interface for DeferralCompletedHandler

§

type Vtable = DeferralCompletedHandler_Vtbl

§

impl Interface for IAsyncAction

§

type Vtable = IAsyncAction_Vtbl

§

impl Interface for IAsyncInfo

§

type Vtable = IAsyncInfo_Vtbl

§

impl Interface for IClosable

§

type Vtable = IClosable_Vtbl

§

impl Interface for IGetActivationFactory

§

type Vtable = IGetActivationFactory_Vtbl

§

impl Interface for IMemoryBuffer

§

type Vtable = IMemoryBuffer_Vtbl

§

impl Interface for IMemoryBufferReference

§

type Vtable = IMemoryBufferReference_Vtbl

§

impl Interface for IPropertyValue

§

type Vtable = IPropertyValue_Vtbl

§

impl Interface for IStringable

§

type Vtable = IStringable_Vtbl

§

impl Interface for IWwwFormUrlDecoderEntry

§

type Vtable = IWwwFormUrlDecoderEntry_Vtbl

§

impl Interface for MemoryBuffer

§

type Vtable = IMemoryBuffer_Vtbl

§

impl Interface for Uri

§

type Vtable = IUriRuntimeClass_Vtbl

§

impl Interface for WwwFormUrlDecoder

§

type Vtable = IWwwFormUrlDecoderRuntimeClass_Vtbl

§

impl Interface for WwwFormUrlDecoderEntry

§

type Vtable = IWwwFormUrlDecoderEntry_Vtbl

§

impl Interface for DataReader

§

impl Interface for DataReaderLoadOperation

§

type Vtable = IAsyncOperation_Vtbl<u32>

§

impl Interface for DataWriter

§

impl Interface for DataWriterStoreOperation

§

type Vtable = IAsyncOperation_Vtbl<u32>

§

impl Interface for IBuffer

§

impl Interface for IContentTypeProvider

§

impl Interface for IDataReader

§

impl Interface for IDataReaderFactory

§

impl Interface for IDataReaderStatics

§

impl Interface for IDataWriter

§

impl Interface for IDataWriterFactory

§

impl Interface for IInputStream

§

impl Interface for IOutputStream

§

impl Interface for IRandomAccessStream

§

impl Interface for IRandomAccessStreamWithContentType

§

impl Interface for ID3D11Asynchronous

§

impl Interface for ID3D11BlendState

§

impl Interface for ID3D11Buffer

§

impl Interface for ID3D11ClassInstance

§

impl Interface for ID3D11ClassLinkage

§

impl Interface for ID3D11CommandList

§

impl Interface for ID3D11ComputeShader

§

impl Interface for ID3D11Counter

§

impl Interface for ID3D11DepthStencilState

§

impl Interface for ID3D11DepthStencilView

§

impl Interface for ID3D11Device

§

impl Interface for ID3D11DeviceChild

§

impl Interface for ID3D11DeviceContext

§

impl Interface for ID3D11DomainShader

§

impl Interface for ID3D11GeometryShader

§

impl Interface for ID3D11HullShader

§

impl Interface for ID3D11InputLayout

§

impl Interface for ID3D11PixelShader

§

impl Interface for ID3D11Predicate

§

impl Interface for ID3D11Query

§

impl Interface for ID3D11RasterizerState

§

impl Interface for ID3D11RenderTargetView

§

impl Interface for ID3D11Resource

§

impl Interface for ID3D11SamplerState

§

impl Interface for ID3D11ShaderResourceView

§

impl Interface for ID3D11Texture1D

§

impl Interface for ID3D11Texture2D

§

impl Interface for ID3D11Texture3D

§

impl Interface for ID3D11UnorderedAccessView

§

impl Interface for ID3D11VertexShader

§

impl Interface for ID3D11View

§

impl Interface for ID3DBlob

§

impl Interface for ID3DInclude

§

impl Interface for IDXGIAdapter1

§

impl Interface for IDXGIAdapter

§

impl Interface for IDXGIDeviceSubObject

§

impl Interface for IDXGIFactory1

§

impl Interface for IDXGIFactory2

§

impl Interface for IDXGIFactory

§

impl Interface for IDXGIObject

§

impl Interface for IDXGIOutput

§

impl Interface for IDXGIResource

§

impl Interface for IDXGISurface

§

impl Interface for IDXGISwapChain1

§

impl Interface for IDXGISwapChain

§

impl Interface for IAudioCaptureClient

§

impl Interface for IAudioClient

§

impl Interface for IAudioRenderClient

§

impl Interface for IMMDevice

§

impl Interface for IMMDeviceCollection

§

impl Interface for IMMDeviceEnumerator

§

impl Interface for IMMNotificationClient

§

impl Interface for IMFActivate

§

impl Interface for IMFAsyncCallback

§

impl Interface for IMFAsyncResult

§

impl Interface for IMFAttributes

§

impl Interface for IMFMediaBuffer

§

impl Interface for IMFMediaEvent

§

impl Interface for IMFMediaEventGenerator

§

impl Interface for IMFMediaSource

§

impl Interface for IMFMediaType

§

impl Interface for IMFMediaTypeHandler

§

impl Interface for IMFPresentationDescriptor

§

impl Interface for IMFSample

§

impl Interface for IMFSourceReader

§

impl Interface for IMFSourceReaderCallback

§

impl Interface for IMFStreamDescriptor

§

impl Interface for IEnumSTATSTG

§

impl Interface for IStorage

§

impl Interface for IAdviseSink

§

impl Interface for IBindCtx

§

impl Interface for makepad_widgets::shader::std::windows::Win32::System::Com::IDataObject

§

impl Interface for IDispatch

§

impl Interface for makepad_widgets::shader::std::windows::Win32::System::Com::IEnumFORMATETC

§

impl Interface for IEnumMoniker

§

impl Interface for IEnumSTATDATA

§

impl Interface for IEnumString

§

impl Interface for IMoniker

§

impl Interface for IPersist

§

impl Interface for IPersistStream

§

impl Interface for IRunningObjectTable

§

impl Interface for ISequentialStream

§

impl Interface for IStream

§

impl Interface for ITypeComp

§

impl Interface for ITypeInfo

§

impl Interface for ITypeLib

§

impl Interface for IDropSource

§

impl Interface for IRecordInfo

§

impl Interface for IPropertyStore

§

impl Interface for IInspectable

§

type Vtable = IInspectable_Vtbl

§

impl Interface for IUnknown

§

type Vtable = IUnknown_Vtbl

§

impl<K> Interface for IMapChangedEventArgs<K>where K: RuntimeType + 'static,

§

type Vtable = IMapChangedEventArgs_Vtbl<K>

§

impl<K, V> Interface for IKeyValuePair<K, V>where K: RuntimeType + 'static, V: RuntimeType + 'static,

§

type Vtable = IKeyValuePair_Vtbl<K, V>

§

impl<K, V> Interface for IMap<K, V>where K: RuntimeType + 'static, V: RuntimeType + 'static,

§

type Vtable = IMap_Vtbl<K, V>

§

impl<K, V> Interface for IMapView<K, V>where K: RuntimeType + 'static, V: RuntimeType + 'static,

§

type Vtable = IMapView_Vtbl<K, V>

§

impl<K, V> Interface for IObservableMap<K, V>where K: RuntimeType + 'static, V: RuntimeType + 'static,

§

type Vtable = IObservableMap_Vtbl<K, V>

§

impl<K, V> Interface for MapChangedEventHandler<K, V>where K: RuntimeType + 'static, V: RuntimeType + 'static,

§

type Vtable = MapChangedEventHandler_Vtbl<K, V>

§

impl<T> Interface for IIterable<T>where T: RuntimeType + 'static,

§

type Vtable = IIterable_Vtbl<T>

§

impl<T> Interface for IIterator<T>where T: RuntimeType + 'static,

§

type Vtable = IIterator_Vtbl<T>

§

impl<T> Interface for IObservableVector<T>where T: RuntimeType + 'static,

§

type Vtable = IObservableVector_Vtbl<T>

§

impl<T> Interface for IVector<T>where T: RuntimeType + 'static,

§

type Vtable = IVector_Vtbl<T>

§

impl<T> Interface for IVectorView<T>where T: RuntimeType + 'static,

§

type Vtable = IVectorView_Vtbl<T>

§

impl<T> Interface for VectorChangedEventHandler<T>where T: RuntimeType + 'static,

§

type Vtable = VectorChangedEventHandler_Vtbl<T>

§

impl<T> Interface for EventHandler<T>where T: RuntimeType + 'static,

§

type Vtable = EventHandler_Vtbl<T>

§

impl<T> Interface for IReference<T>where T: RuntimeType + 'static,

§

type Vtable = IReference_Vtbl<T>

§

impl<T> Interface for IReferenceArray<T>where T: RuntimeType + 'static,

§

type Vtable = IReferenceArray_Vtbl<T>

§

impl<TProgress> Interface for AsyncActionProgressHandler<TProgress>where TProgress: RuntimeType + 'static,

§

type Vtable = AsyncActionProgressHandler_Vtbl<TProgress>

§

impl<TProgress> Interface for AsyncActionWithProgressCompletedHandler<TProgress>where TProgress: RuntimeType + 'static,

§

type Vtable = AsyncActionWithProgressCompletedHandler_Vtbl<TProgress>

§

impl<TProgress> Interface for IAsyncActionWithProgress<TProgress>where TProgress: RuntimeType + 'static,

§

type Vtable = IAsyncActionWithProgress_Vtbl<TProgress>

§

impl<TResult> Interface for AsyncOperationCompletedHandler<TResult>where TResult: RuntimeType + 'static,

§

type Vtable = AsyncOperationCompletedHandler_Vtbl<TResult>

§

impl<TResult> Interface for IAsyncOperation<TResult>where TResult: RuntimeType + 'static,

§

type Vtable = IAsyncOperation_Vtbl<TResult>

§

impl<TResult, TProgress> Interface for AsyncOperationProgressHandler<TResult, TProgress>where TResult: RuntimeType + 'static, TProgress: RuntimeType + 'static,

§

type Vtable = AsyncOperationProgressHandler_Vtbl<TResult, TProgress>

§

impl<TResult, TProgress> Interface for AsyncOperationWithProgressCompletedHandler<TResult, TProgress>where TResult: RuntimeType + 'static, TProgress: RuntimeType + 'static,

§

type Vtable = AsyncOperationWithProgressCompletedHandler_Vtbl<TResult, TProgress>

§

impl<TResult, TProgress> Interface for IAsyncOperationWithProgress<TResult, TProgress>where TResult: RuntimeType + 'static, TProgress: RuntimeType + 'static,

§

type Vtable = IAsyncOperationWithProgress_Vtbl<TResult, TProgress>

§

impl<TSender, TResult> Interface for TypedEventHandler<TSender, TResult>where TSender: RuntimeType + 'static, TResult: RuntimeType + 'static,

§

type Vtable = TypedEventHandler_Vtbl<TSender, TResult>