pub unsafe trait ComInterface: Interface + Clone {
    const IID: GUID;

    // Provided methods
    fn as_unknown(&self) -> &IUnknown { ... }
    fn cast<T>(&self) -> Result<T, Error>
       where T: ComInterface { ... }
    fn downgrade(&self) -> Result<Weak<Self>, Error> { ... }
}
Expand description

Provides low-level access to a COM interface.

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

Safety

It is only safe to implement this trait if the implementing type is a valid COM interface pointer meaning the following criteria are met:

  • its in-memory representation is equal to NonNull<NonNull<Self::VTable>>
  • the vtable is correctly structured beginning with the IUnknown function pointers
  • the vtable must be the correct vtable for the supplied IID

Required Associated Constants§

const IID: GUID

A unique identifier representing this interface.

Provided Methods§

fn as_unknown(&self) -> &IUnknown

fn cast<T>(&self) -> Result<T, Error>where T: ComInterface,

Attempts to cast the current interface to another interface using QueryInterface.

The name cast is preferred to query because there is a WinRT method named query but not one named cast.

fn downgrade(&self) -> Result<Weak<Self>, Error>

Attempts to create a Weak reference to this object.

Implementors§

§

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

§

const IID: GUID = _

§

impl ComInterface for IDropTarget

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

impl ComInterface for DeviceInformation

§

const IID: GUID = <IDeviceInformation as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceInformationCollection

§

const IID: GUID = <super::super::Foundation::Collections::IVectorView<DeviceInformation> as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceInformationCustomPairing

§

const IID: GUID = <IDeviceInformationCustomPairing as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceInformationPairing

§

const IID: GUID = <IDeviceInformationPairing as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceInformationUpdate

§

const IID: GUID = <IDeviceInformationUpdate as ::windows_core::ComInterface>::IID

§

impl ComInterface for DevicePairingRequestedEventArgs

§

const IID: GUID = <IDevicePairingRequestedEventArgs as ::windows_core::ComInterface>::IID

§

impl ComInterface for DevicePairingResult

§

const IID: GUID = <IDevicePairingResult as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceThumbnail

§

const IID: GUID = <super::super::Storage::Streams::IRandomAccessStreamWithContentType as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceUnpairingResult

§

const IID: GUID = <IDeviceUnpairingResult as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeviceWatcher

§

const IID: GUID = <IDeviceWatcher as ::windows_core::ComInterface>::IID

§

impl ComInterface for EnclosureLocation

§

const IID: GUID = <IEnclosureLocation as ::windows_core::ComInterface>::IID

§

impl ComInterface for IDeviceInformation2

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformation

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationCustomPairing

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationPairing2

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationPairing

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationPairingStatics2

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationPairingStatics

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationStatics2

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationStatics

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationUpdate2

§

const IID: GUID = _

§

impl ComInterface for IDeviceInformationUpdate

§

const IID: GUID = _

§

impl ComInterface for IDevicePairingRequestedEventArgs

§

const IID: GUID = _

§

impl ComInterface for IDevicePairingResult

§

const IID: GUID = _

§

impl ComInterface for IDevicePairingSettings

§

const IID: GUID = _

§

impl ComInterface for IDeviceUnpairingResult

§

const IID: GUID = _

§

impl ComInterface for IDeviceWatcher

§

const IID: GUID = _

§

impl ComInterface for IEnclosureLocation2

§

const IID: GUID = _

§

impl ComInterface for IEnclosureLocation

§

const IID: GUID = _

§

impl ComInterface for IMidiInPort

§

const IID: GUID = _

§

impl ComInterface for IMidiInPortStatics

§

const IID: GUID = _

§

impl ComInterface for IMidiMessage

§

const IID: GUID = _

§

impl ComInterface for IMidiMessageReceivedEventArgs

§

const IID: GUID = _

§

impl ComInterface for IMidiOutPort

§

const IID: GUID = _

§

impl ComInterface for IMidiOutPortStatics

§

const IID: GUID = _

§

impl ComInterface for MidiInPort

§

const IID: GUID = <IMidiInPort as ::windows_core::ComInterface>::IID

§

impl ComInterface for MidiMessageReceivedEventArgs

§

const IID: GUID = <IMidiMessageReceivedEventArgs as ::windows_core::ComInterface>::IID

§

impl ComInterface for MidiOutPort

§

const IID: GUID = <IMidiOutPort as ::windows_core::ComInterface>::IID

§

impl ComInterface for IPropertySet

§

const IID: GUID = _

§

impl ComInterface for IVectorChangedEventArgs

§

const IID: GUID = _

§

impl ComInterface for PropertySet

§

const IID: GUID = <IPropertySet as ::windows_core::ComInterface>::IID

§

impl ComInterface for StringMap

§

const IID: GUID = <IMap<::windows_core::HSTRING, ::windows_core::HSTRING> as ::windows_core::ComInterface>::IID

§

impl ComInterface for ValueSet

§

const IID: GUID = <IPropertySet as ::windows_core::ComInterface>::IID

§

impl ComInterface for AsyncActionCompletedHandler

§

const IID: GUID = _

§

impl ComInterface for Deferral

§

const IID: GUID = <IDeferral as ::windows_core::ComInterface>::IID

§

impl ComInterface for DeferralCompletedHandler

§

const IID: GUID = _

§

impl ComInterface for IAsyncAction

§

const IID: GUID = _

§

impl ComInterface for IAsyncInfo

§

const IID: GUID = _

§

impl ComInterface for IClosable

§

const IID: GUID = _

§

impl ComInterface for IGetActivationFactory

§

const IID: GUID = _

§

impl ComInterface for IMemoryBuffer

§

const IID: GUID = _

§

impl ComInterface for IMemoryBufferReference

§

const IID: GUID = _

§

impl ComInterface for IPropertyValue

§

const IID: GUID = _

§

impl ComInterface for IStringable

§

const IID: GUID = _

§

impl ComInterface for IWwwFormUrlDecoderEntry

§

const IID: GUID = _

§

impl ComInterface for MemoryBuffer

§

const IID: GUID = <IMemoryBuffer as ::windows_core::ComInterface>::IID

§

impl ComInterface for Uri

§

const IID: GUID = <IUriRuntimeClass as ::windows_core::ComInterface>::IID

§

impl ComInterface for WwwFormUrlDecoder

§

const IID: GUID = <IWwwFormUrlDecoderRuntimeClass as ::windows_core::ComInterface>::IID

§

impl ComInterface for WwwFormUrlDecoderEntry

§

const IID: GUID = <IWwwFormUrlDecoderEntry as ::windows_core::ComInterface>::IID

§

impl ComInterface for DataReader

§

const IID: GUID = <IDataReader as ::windows_core::ComInterface>::IID

§

impl ComInterface for DataReaderLoadOperation

§

const IID: GUID = <super::super::Foundation::IAsyncOperation<u32> as ::windows_core::ComInterface>::IID

§

impl ComInterface for DataWriter

§

const IID: GUID = <IDataWriter as ::windows_core::ComInterface>::IID

§

impl ComInterface for DataWriterStoreOperation

§

const IID: GUID = <super::super::Foundation::IAsyncOperation<u32> as ::windows_core::ComInterface>::IID

§

impl ComInterface for IBuffer

§

const IID: GUID = _

§

impl ComInterface for IContentTypeProvider

§

const IID: GUID = _

§

impl ComInterface for IDataReader

§

const IID: GUID = _

§

impl ComInterface for IDataReaderFactory

§

const IID: GUID = _

§

impl ComInterface for IDataReaderStatics

§

const IID: GUID = _

§

impl ComInterface for IDataWriter

§

const IID: GUID = _

§

impl ComInterface for IDataWriterFactory

§

const IID: GUID = _

§

impl ComInterface for IInputStream

§

const IID: GUID = _

§

impl ComInterface for IOutputStream

§

const IID: GUID = _

§

impl ComInterface for IRandomAccessStream

§

const IID: GUID = _

§

impl ComInterface for IRandomAccessStreamWithContentType

§

const IID: GUID = _

§

impl ComInterface for ID3D11Asynchronous

§

const IID: GUID = _

§

impl ComInterface for ID3D11BlendState

§

const IID: GUID = _

§

impl ComInterface for ID3D11Buffer

§

const IID: GUID = _

§

impl ComInterface for ID3D11ClassInstance

§

const IID: GUID = _

§

impl ComInterface for ID3D11ClassLinkage

§

const IID: GUID = _

§

impl ComInterface for ID3D11CommandList

§

const IID: GUID = _

§

impl ComInterface for ID3D11ComputeShader

§

const IID: GUID = _

§

impl ComInterface for ID3D11Counter

§

const IID: GUID = _

§

impl ComInterface for ID3D11DepthStencilState

§

const IID: GUID = _

§

impl ComInterface for ID3D11DepthStencilView

§

const IID: GUID = _

§

impl ComInterface for ID3D11Device

§

const IID: GUID = _

§

impl ComInterface for ID3D11DeviceChild

§

const IID: GUID = _

§

impl ComInterface for ID3D11DeviceContext

§

const IID: GUID = _

§

impl ComInterface for ID3D11DomainShader

§

const IID: GUID = _

§

impl ComInterface for ID3D11GeometryShader

§

const IID: GUID = _

§

impl ComInterface for ID3D11HullShader

§

const IID: GUID = _

§

impl ComInterface for ID3D11InputLayout

§

const IID: GUID = _

§

impl ComInterface for ID3D11PixelShader

§

const IID: GUID = _

§

impl ComInterface for ID3D11Predicate

§

const IID: GUID = _

§

impl ComInterface for ID3D11Query

§

const IID: GUID = _

§

impl ComInterface for ID3D11RasterizerState

§

const IID: GUID = _

§

impl ComInterface for ID3D11RenderTargetView

§

const IID: GUID = _

§

impl ComInterface for ID3D11Resource

§

const IID: GUID = _

§

impl ComInterface for ID3D11SamplerState

§

const IID: GUID = _

§

impl ComInterface for ID3D11ShaderResourceView

§

const IID: GUID = _

§

impl ComInterface for ID3D11Texture1D

§

const IID: GUID = _

§

impl ComInterface for ID3D11Texture2D

§

const IID: GUID = _

§

impl ComInterface for ID3D11Texture3D

§

const IID: GUID = _

§

impl ComInterface for ID3D11UnorderedAccessView

§

const IID: GUID = _

§

impl ComInterface for ID3D11VertexShader

§

const IID: GUID = _

§

impl ComInterface for ID3D11View

§

const IID: GUID = _

§

impl ComInterface for ID3DBlob

§

const IID: GUID = _

§

impl ComInterface for IDXGIAdapter1

§

const IID: GUID = _

§

impl ComInterface for IDXGIAdapter

§

const IID: GUID = _

§

impl ComInterface for IDXGIDeviceSubObject

§

const IID: GUID = _

§

impl ComInterface for IDXGIFactory1

§

const IID: GUID = _

§

impl ComInterface for IDXGIFactory2

§

const IID: GUID = _

§

impl ComInterface for IDXGIFactory

§

const IID: GUID = _

§

impl ComInterface for IDXGIObject

§

const IID: GUID = _

§

impl ComInterface for IDXGIOutput

§

const IID: GUID = _

§

impl ComInterface for IDXGIResource

§

const IID: GUID = _

§

impl ComInterface for IDXGISurface

§

const IID: GUID = _

§

impl ComInterface for IDXGISwapChain1

§

const IID: GUID = _

§

impl ComInterface for IDXGISwapChain

§

const IID: GUID = _

§

impl ComInterface for IAudioCaptureClient

§

const IID: GUID = _

§

impl ComInterface for IAudioClient

§

const IID: GUID = _

§

impl ComInterface for IAudioRenderClient

§

const IID: GUID = _

§

impl ComInterface for IMMDevice

§

const IID: GUID = _

§

impl ComInterface for IMMDeviceCollection

§

const IID: GUID = _

§

impl ComInterface for IMMDeviceEnumerator

§

const IID: GUID = _

§

impl ComInterface for IMMNotificationClient

§

const IID: GUID = _

§

impl ComInterface for IMFActivate

§

const IID: GUID = _

§

impl ComInterface for IMFAsyncCallback

§

const IID: GUID = _

§

impl ComInterface for IMFAsyncResult

§

const IID: GUID = _

§

impl ComInterface for IMFAttributes

§

const IID: GUID = _

§

impl ComInterface for IMFMediaBuffer

§

const IID: GUID = _

§

impl ComInterface for IMFMediaEvent

§

const IID: GUID = _

§

impl ComInterface for IMFMediaEventGenerator

§

const IID: GUID = _

§

impl ComInterface for IMFMediaSource

§

const IID: GUID = _

§

impl ComInterface for IMFMediaType

§

const IID: GUID = _

§

impl ComInterface for IMFMediaTypeHandler

§

const IID: GUID = _

§

impl ComInterface for IMFPresentationDescriptor

§

const IID: GUID = _

§

impl ComInterface for IMFSample

§

const IID: GUID = _

§

impl ComInterface for IMFSourceReader

§

const IID: GUID = _

§

impl ComInterface for IMFSourceReaderCallback

§

const IID: GUID = _

§

impl ComInterface for IMFStreamDescriptor

§

const IID: GUID = _

§

impl ComInterface for IEnumSTATSTG

§

const IID: GUID = _

§

impl ComInterface for IStorage

§

const IID: GUID = _

§

impl ComInterface for IAdviseSink

§

const IID: GUID = _

§

impl ComInterface for IBindCtx

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

impl ComInterface for IDispatch

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

impl ComInterface for IEnumMoniker

§

const IID: GUID = _

§

impl ComInterface for IEnumSTATDATA

§

const IID: GUID = _

§

impl ComInterface for IEnumString

§

const IID: GUID = _

§

impl ComInterface for IMoniker

§

const IID: GUID = _

§

impl ComInterface for IPersist

§

const IID: GUID = _

§

impl ComInterface for IPersistStream

§

const IID: GUID = _

§

impl ComInterface for IRunningObjectTable

§

const IID: GUID = _

§

impl ComInterface for ISequentialStream

§

const IID: GUID = _

§

impl ComInterface for IStream

§

const IID: GUID = _

§

impl ComInterface for ITypeComp

§

const IID: GUID = _

§

impl ComInterface for ITypeInfo

§

const IID: GUID = _

§

impl ComInterface for ITypeLib

§

const IID: GUID = _

§

impl ComInterface for IDropSource

§

const IID: GUID = _

§

impl ComInterface for IRecordInfo

§

const IID: GUID = _

§

impl ComInterface for IPropertyStore

§

const IID: GUID = _

§

impl ComInterface for IInspectable

§

const IID: GUID = _

§

impl ComInterface for IUnknown

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _

§

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

§

const IID: GUID = _