summaryrefslogtreecommitdiffstats
path: root/vendor/windows-sys/src/Windows/Media
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/windows-sys/src/Windows/Media')
-rw-r--r--vendor/windows-sys/src/Windows/Media/AppBroadcasting/mod.rs4
-rw-r--r--vendor/windows-sys/src/Windows/Media/AppRecording/mod.rs19
-rw-r--r--vendor/windows-sys/src/Windows/Media/Audio/mod.rs243
-rw-r--r--vendor/windows-sys/src/Windows/Media/Capture/Core/mod.rs2
-rw-r--r--vendor/windows-sys/src/Windows/Media/Capture/Frames/mod.rs116
-rw-r--r--vendor/windows-sys/src/Windows/Media/Capture/mod.rs739
-rw-r--r--vendor/windows-sys/src/Windows/Media/Casting/mod.rs56
-rw-r--r--vendor/windows-sys/src/Windows/Media/ClosedCaptioning/mod.rs88
-rw-r--r--vendor/windows-sys/src/Windows/Media/ContentRestrictions/mod.rs35
-rw-r--r--vendor/windows-sys/src/Windows/Media/Control/mod.rs28
-rw-r--r--vendor/windows-sys/src/Windows/Media/Core/Preview/mod.rs1
-rw-r--r--vendor/windows-sys/src/Windows/Media/Core/mod.rs619
-rw-r--r--vendor/windows-sys/src/Windows/Media/Devices/Core/mod.rs29
-rw-r--r--vendor/windows-sys/src/Windows/Media/Devices/mod.rs472
-rw-r--r--vendor/windows-sys/src/Windows/Media/DialProtocol/mod.rs70
-rw-r--r--vendor/windows-sys/src/Windows/Media/Editing/mod.rs32
-rw-r--r--vendor/windows-sys/src/Windows/Media/Effects/mod.rs78
-rw-r--r--vendor/windows-sys/src/Windows/Media/FaceAnalysis/mod.rs3
-rw-r--r--vendor/windows-sys/src/Windows/Media/Import/mod.rs204
-rw-r--r--vendor/windows-sys/src/Windows/Media/MediaProperties/mod.rs129
-rw-r--r--vendor/windows-sys/src/Windows/Media/Miracast/mod.rs146
-rw-r--r--vendor/windows-sys/src/Windows/Media/Ocr/mod.rs4
-rw-r--r--vendor/windows-sys/src/Windows/Media/PlayTo/mod.rs54
-rw-r--r--vendor/windows-sys/src/Windows/Media/Playback/mod.rs279
-rw-r--r--vendor/windows-sys/src/Windows/Media/Playlists/mod.rs15
-rw-r--r--vendor/windows-sys/src/Windows/Media/Protection/PlayReady/mod.rs271
-rw-r--r--vendor/windows-sys/src/Windows/Media/Protection/mod.rs117
-rw-r--r--vendor/windows-sys/src/Windows/Media/Render/mod.rs23
-rw-r--r--vendor/windows-sys/src/Windows/Media/SpeechRecognition/mod.rs148
-rw-r--r--vendor/windows-sys/src/Windows/Media/SpeechSynthesis/mod.rs43
-rw-r--r--vendor/windows-sys/src/Windows/Media/Streaming/Adaptive/mod.rs87
-rw-r--r--vendor/windows-sys/src/Windows/Media/Streaming/mod.rs2
-rw-r--r--vendor/windows-sys/src/Windows/Media/Transcoding/mod.rs30
-rw-r--r--vendor/windows-sys/src/Windows/Media/mod.rs226
34 files changed, 4412 insertions, 0 deletions
diff --git a/vendor/windows-sys/src/Windows/Media/AppBroadcasting/mod.rs b/vendor/windows-sys/src/Windows/Media/AppBroadcasting/mod.rs
new file mode 100644
index 000000000..2fae2bd52
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/AppBroadcasting/mod.rs
@@ -0,0 +1,4 @@
+pub type AppBroadcastingMonitor = *mut ::core::ffi::c_void;
+pub type AppBroadcastingStatus = *mut ::core::ffi::c_void;
+pub type AppBroadcastingStatusDetails = *mut ::core::ffi::c_void;
+pub type AppBroadcastingUI = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/AppRecording/mod.rs b/vendor/windows-sys/src/Windows/Media/AppRecording/mod.rs
new file mode 100644
index 000000000..65a3dfdcf
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/AppRecording/mod.rs
@@ -0,0 +1,19 @@
+pub type AppRecordingManager = *mut ::core::ffi::c_void;
+pub type AppRecordingResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_AppRecording\"`*"]
+#[repr(transparent)]
+pub struct AppRecordingSaveScreenshotOption(pub i32);
+impl AppRecordingSaveScreenshotOption {
+ pub const None: Self = Self(0i32);
+ pub const HdrContentVisible: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppRecordingSaveScreenshotOption {}
+impl ::core::clone::Clone for AppRecordingSaveScreenshotOption {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppRecordingSaveScreenshotResult = *mut ::core::ffi::c_void;
+pub type AppRecordingSavedScreenshotInfo = *mut ::core::ffi::c_void;
+pub type AppRecordingStatus = *mut ::core::ffi::c_void;
+pub type AppRecordingStatusDetails = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Audio/mod.rs b/vendor/windows-sys/src/Windows/Media/Audio/mod.rs
new file mode 100644
index 000000000..25e87d466
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Audio/mod.rs
@@ -0,0 +1,243 @@
+pub type AudioDeviceInputNode = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioDeviceNodeCreationStatus(pub i32);
+impl AudioDeviceNodeCreationStatus {
+ pub const Success: Self = Self(0i32);
+ pub const DeviceNotAvailable: Self = Self(1i32);
+ pub const FormatNotSupported: Self = Self(2i32);
+ pub const UnknownFailure: Self = Self(3i32);
+ pub const AccessDenied: Self = Self(4i32);
+}
+impl ::core::marker::Copy for AudioDeviceNodeCreationStatus {}
+impl ::core::clone::Clone for AudioDeviceNodeCreationStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioDeviceOutputNode = *mut ::core::ffi::c_void;
+pub type AudioFileInputNode = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioFileNodeCreationStatus(pub i32);
+impl AudioFileNodeCreationStatus {
+ pub const Success: Self = Self(0i32);
+ pub const FileNotFound: Self = Self(1i32);
+ pub const InvalidFileType: Self = Self(2i32);
+ pub const FormatNotSupported: Self = Self(3i32);
+ pub const UnknownFailure: Self = Self(4i32);
+}
+impl ::core::marker::Copy for AudioFileNodeCreationStatus {}
+impl ::core::clone::Clone for AudioFileNodeCreationStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioFileOutputNode = *mut ::core::ffi::c_void;
+pub type AudioFrameCompletedEventArgs = *mut ::core::ffi::c_void;
+pub type AudioFrameInputNode = *mut ::core::ffi::c_void;
+pub type AudioFrameOutputNode = *mut ::core::ffi::c_void;
+pub type AudioGraph = *mut ::core::ffi::c_void;
+pub type AudioGraphBatchUpdater = *mut ::core::ffi::c_void;
+pub type AudioGraphConnection = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioGraphCreationStatus(pub i32);
+impl AudioGraphCreationStatus {
+ pub const Success: Self = Self(0i32);
+ pub const DeviceNotAvailable: Self = Self(1i32);
+ pub const FormatNotSupported: Self = Self(2i32);
+ pub const UnknownFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AudioGraphCreationStatus {}
+impl ::core::clone::Clone for AudioGraphCreationStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioGraphSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioGraphUnrecoverableError(pub i32);
+impl AudioGraphUnrecoverableError {
+ pub const None: Self = Self(0i32);
+ pub const AudioDeviceLost: Self = Self(1i32);
+ pub const AudioSessionDisconnected: Self = Self(2i32);
+ pub const UnknownFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AudioGraphUnrecoverableError {}
+impl ::core::clone::Clone for AudioGraphUnrecoverableError {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioGraphUnrecoverableErrorOccurredEventArgs = *mut ::core::ffi::c_void;
+pub type AudioNodeEmitter = *mut ::core::ffi::c_void;
+pub type AudioNodeEmitterConeProperties = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioNodeEmitterDecayKind(pub i32);
+impl AudioNodeEmitterDecayKind {
+ pub const Natural: Self = Self(0i32);
+ pub const Custom: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AudioNodeEmitterDecayKind {}
+impl ::core::clone::Clone for AudioNodeEmitterDecayKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioNodeEmitterDecayModel = *mut ::core::ffi::c_void;
+pub type AudioNodeEmitterNaturalDecayModelProperties = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioNodeEmitterSettings(pub u32);
+impl AudioNodeEmitterSettings {
+ pub const None: Self = Self(0u32);
+ pub const DisableDoppler: Self = Self(1u32);
+}
+impl ::core::marker::Copy for AudioNodeEmitterSettings {}
+impl ::core::clone::Clone for AudioNodeEmitterSettings {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioNodeEmitterShape = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioNodeEmitterShapeKind(pub i32);
+impl AudioNodeEmitterShapeKind {
+ pub const Omnidirectional: Self = Self(0i32);
+ pub const Cone: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AudioNodeEmitterShapeKind {}
+impl ::core::clone::Clone for AudioNodeEmitterShapeKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioNodeListener = *mut ::core::ffi::c_void;
+pub type AudioPlaybackConnection = *mut ::core::ffi::c_void;
+pub type AudioPlaybackConnectionOpenResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioPlaybackConnectionOpenResultStatus(pub i32);
+impl AudioPlaybackConnectionOpenResultStatus {
+ pub const Success: Self = Self(0i32);
+ pub const RequestTimedOut: Self = Self(1i32);
+ pub const DeniedBySystem: Self = Self(2i32);
+ pub const UnknownFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AudioPlaybackConnectionOpenResultStatus {}
+impl ::core::clone::Clone for AudioPlaybackConnectionOpenResultStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct AudioPlaybackConnectionState(pub i32);
+impl AudioPlaybackConnectionState {
+ pub const Closed: Self = Self(0i32);
+ pub const Opened: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AudioPlaybackConnectionState {}
+impl ::core::clone::Clone for AudioPlaybackConnectionState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioStateMonitor = *mut ::core::ffi::c_void;
+pub type AudioSubmixNode = *mut ::core::ffi::c_void;
+pub type CreateAudioDeviceInputNodeResult = *mut ::core::ffi::c_void;
+pub type CreateAudioDeviceOutputNodeResult = *mut ::core::ffi::c_void;
+pub type CreateAudioFileInputNodeResult = *mut ::core::ffi::c_void;
+pub type CreateAudioFileOutputNodeResult = *mut ::core::ffi::c_void;
+pub type CreateAudioGraphResult = *mut ::core::ffi::c_void;
+pub type CreateMediaSourceAudioInputNodeResult = *mut ::core::ffi::c_void;
+pub type EchoEffectDefinition = *mut ::core::ffi::c_void;
+pub type EqualizerBand = *mut ::core::ffi::c_void;
+pub type EqualizerEffectDefinition = *mut ::core::ffi::c_void;
+pub type FrameInputNodeQuantumStartedEventArgs = *mut ::core::ffi::c_void;
+pub type IAudioInputNode = *mut ::core::ffi::c_void;
+pub type IAudioInputNode2 = *mut ::core::ffi::c_void;
+pub type IAudioNode = *mut ::core::ffi::c_void;
+pub type IAudioNodeWithListener = *mut ::core::ffi::c_void;
+pub type LimiterEffectDefinition = *mut ::core::ffi::c_void;
+pub type MediaSourceAudioInputNode = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct MediaSourceAudioInputNodeCreationStatus(pub i32);
+impl MediaSourceAudioInputNodeCreationStatus {
+ pub const Success: Self = Self(0i32);
+ pub const FormatNotSupported: Self = Self(1i32);
+ pub const NetworkError: Self = Self(2i32);
+ pub const UnknownFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaSourceAudioInputNodeCreationStatus {}
+impl ::core::clone::Clone for MediaSourceAudioInputNodeCreationStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct MixedRealitySpatialAudioFormatPolicy(pub i32);
+impl MixedRealitySpatialAudioFormatPolicy {
+ pub const UseMixedRealityDefaultSpatialAudioFormat: Self = Self(0i32);
+ pub const UseDeviceConfigurationDefaultSpatialAudioFormat: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MixedRealitySpatialAudioFormatPolicy {}
+impl ::core::clone::Clone for MixedRealitySpatialAudioFormatPolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct QuantumSizeSelectionMode(pub i32);
+impl QuantumSizeSelectionMode {
+ pub const SystemDefault: Self = Self(0i32);
+ pub const LowestLatency: Self = Self(1i32);
+ pub const ClosestToDesired: Self = Self(2i32);
+}
+impl ::core::marker::Copy for QuantumSizeSelectionMode {}
+impl ::core::clone::Clone for QuantumSizeSelectionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type ReverbEffectDefinition = *mut ::core::ffi::c_void;
+pub type SetDefaultSpatialAudioFormatResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct SetDefaultSpatialAudioFormatStatus(pub i32);
+impl SetDefaultSpatialAudioFormatStatus {
+ pub const Succeeded: Self = Self(0i32);
+ pub const AccessDenied: Self = Self(1i32);
+ pub const LicenseExpired: Self = Self(2i32);
+ pub const LicenseNotValidForAudioEndpoint: Self = Self(3i32);
+ pub const NotSupportedOnAudioEndpoint: Self = Self(4i32);
+ pub const UnknownError: Self = Self(5i32);
+}
+impl ::core::marker::Copy for SetDefaultSpatialAudioFormatStatus {}
+impl ::core::clone::Clone for SetDefaultSpatialAudioFormatStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpatialAudioDeviceConfiguration = *mut ::core::ffi::c_void;
+pub type SpatialAudioFormatConfiguration = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Audio\"`*"]
+#[repr(transparent)]
+pub struct SpatialAudioModel(pub i32);
+impl SpatialAudioModel {
+ pub const ObjectBased: Self = Self(0i32);
+ pub const FoldDown: Self = Self(1i32);
+}
+impl ::core::marker::Copy for SpatialAudioModel {}
+impl ::core::clone::Clone for SpatialAudioModel {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Capture/Core/mod.rs b/vendor/windows-sys/src/Windows/Media/Capture/Core/mod.rs
new file mode 100644
index 000000000..c6461f04b
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Capture/Core/mod.rs
@@ -0,0 +1,2 @@
+pub type VariablePhotoCapturedEventArgs = *mut ::core::ffi::c_void;
+pub type VariablePhotoSequenceCapture = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Capture/Frames/mod.rs b/vendor/windows-sys/src/Windows/Media/Capture/Frames/mod.rs
new file mode 100644
index 000000000..3f1bb514b
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Capture/Frames/mod.rs
@@ -0,0 +1,116 @@
+pub type AudioMediaFrame = *mut ::core::ffi::c_void;
+pub type BufferMediaFrame = *mut ::core::ffi::c_void;
+pub type DepthMediaFrame = *mut ::core::ffi::c_void;
+pub type DepthMediaFrameFormat = *mut ::core::ffi::c_void;
+pub type InfraredMediaFrame = *mut ::core::ffi::c_void;
+pub type MediaFrameArrivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaFrameFormat = *mut ::core::ffi::c_void;
+pub type MediaFrameReader = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture_Frames\"`*"]
+#[repr(transparent)]
+pub struct MediaFrameReaderAcquisitionMode(pub i32);
+impl MediaFrameReaderAcquisitionMode {
+ pub const Realtime: Self = Self(0i32);
+ pub const Buffered: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaFrameReaderAcquisitionMode {}
+impl ::core::clone::Clone for MediaFrameReaderAcquisitionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture_Frames\"`*"]
+#[repr(transparent)]
+pub struct MediaFrameReaderStartStatus(pub i32);
+impl MediaFrameReaderStartStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const DeviceNotAvailable: Self = Self(2i32);
+ pub const OutputFormatNotSupported: Self = Self(3i32);
+ pub const ExclusiveControlNotAvailable: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaFrameReaderStartStatus {}
+impl ::core::clone::Clone for MediaFrameReaderStartStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaFrameReference = *mut ::core::ffi::c_void;
+pub type MediaFrameSource = *mut ::core::ffi::c_void;
+pub type MediaFrameSourceController = *mut ::core::ffi::c_void;
+pub type MediaFrameSourceGetPropertyResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture_Frames\"`*"]
+#[repr(transparent)]
+pub struct MediaFrameSourceGetPropertyStatus(pub i32);
+impl MediaFrameSourceGetPropertyStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const NotSupported: Self = Self(2i32);
+ pub const DeviceNotAvailable: Self = Self(3i32);
+ pub const MaxPropertyValueSizeTooSmall: Self = Self(4i32);
+ pub const MaxPropertyValueSizeRequired: Self = Self(5i32);
+}
+impl ::core::marker::Copy for MediaFrameSourceGetPropertyStatus {}
+impl ::core::clone::Clone for MediaFrameSourceGetPropertyStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaFrameSourceGroup = *mut ::core::ffi::c_void;
+pub type MediaFrameSourceInfo = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture_Frames\"`*"]
+#[repr(transparent)]
+pub struct MediaFrameSourceKind(pub i32);
+impl MediaFrameSourceKind {
+ pub const Custom: Self = Self(0i32);
+ pub const Color: Self = Self(1i32);
+ pub const Infrared: Self = Self(2i32);
+ pub const Depth: Self = Self(3i32);
+ pub const Audio: Self = Self(4i32);
+ pub const Image: Self = Self(5i32);
+ pub const Metadata: Self = Self(6i32);
+}
+impl ::core::marker::Copy for MediaFrameSourceKind {}
+impl ::core::clone::Clone for MediaFrameSourceKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture_Frames\"`*"]
+#[repr(transparent)]
+pub struct MediaFrameSourceSetPropertyStatus(pub i32);
+impl MediaFrameSourceSetPropertyStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const NotSupported: Self = Self(2i32);
+ pub const InvalidValue: Self = Self(3i32);
+ pub const DeviceNotAvailable: Self = Self(4i32);
+ pub const NotInControl: Self = Self(5i32);
+}
+impl ::core::marker::Copy for MediaFrameSourceSetPropertyStatus {}
+impl ::core::clone::Clone for MediaFrameSourceSetPropertyStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MultiSourceMediaFrameArrivedEventArgs = *mut ::core::ffi::c_void;
+pub type MultiSourceMediaFrameReader = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture_Frames\"`*"]
+#[repr(transparent)]
+pub struct MultiSourceMediaFrameReaderStartStatus(pub i32);
+impl MultiSourceMediaFrameReaderStartStatus {
+ pub const Success: Self = Self(0i32);
+ pub const NotSupported: Self = Self(1i32);
+ pub const InsufficientResources: Self = Self(2i32);
+ pub const DeviceNotAvailable: Self = Self(3i32);
+ pub const UnknownFailure: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MultiSourceMediaFrameReaderStartStatus {}
+impl ::core::clone::Clone for MultiSourceMediaFrameReaderStartStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MultiSourceMediaFrameReference = *mut ::core::ffi::c_void;
+pub type VideoMediaFrame = *mut ::core::ffi::c_void;
+pub type VideoMediaFrameFormat = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Capture/mod.rs b/vendor/windows-sys/src/Windows/Media/Capture/mod.rs
new file mode 100644
index 000000000..28d9c161b
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Capture/mod.rs
@@ -0,0 +1,739 @@
+#[cfg(feature = "Media_Capture_Core")]
+pub mod Core;
+#[cfg(feature = "Media_Capture_Frames")]
+pub mod Frames;
+pub type AdvancedCapturedPhoto = *mut ::core::ffi::c_void;
+pub type AdvancedPhotoCapture = *mut ::core::ffi::c_void;
+pub type AppBroadcastBackgroundService = *mut ::core::ffi::c_void;
+pub type AppBroadcastBackgroundServiceSignInInfo = *mut ::core::ffi::c_void;
+pub type AppBroadcastBackgroundServiceStreamInfo = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastCameraCaptureState(pub i32);
+impl AppBroadcastCameraCaptureState {
+ pub const Stopped: Self = Self(0i32);
+ pub const Started: Self = Self(1i32);
+ pub const Failed: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppBroadcastCameraCaptureState {}
+impl ::core::clone::Clone for AppBroadcastCameraCaptureState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastCameraCaptureStateChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastCameraOverlayLocation(pub i32);
+impl AppBroadcastCameraOverlayLocation {
+ pub const TopLeft: Self = Self(0i32);
+ pub const TopCenter: Self = Self(1i32);
+ pub const TopRight: Self = Self(2i32);
+ pub const MiddleLeft: Self = Self(3i32);
+ pub const MiddleCenter: Self = Self(4i32);
+ pub const MiddleRight: Self = Self(5i32);
+ pub const BottomLeft: Self = Self(6i32);
+ pub const BottomCenter: Self = Self(7i32);
+ pub const BottomRight: Self = Self(8i32);
+}
+impl ::core::marker::Copy for AppBroadcastCameraOverlayLocation {}
+impl ::core::clone::Clone for AppBroadcastCameraOverlayLocation {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastCameraOverlaySize(pub i32);
+impl AppBroadcastCameraOverlaySize {
+ pub const Small: Self = Self(0i32);
+ pub const Medium: Self = Self(1i32);
+ pub const Large: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppBroadcastCameraOverlaySize {}
+impl ::core::clone::Clone for AppBroadcastCameraOverlaySize {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastCaptureTargetType(pub i32);
+impl AppBroadcastCaptureTargetType {
+ pub const AppView: Self = Self(0i32);
+ pub const EntireDisplay: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppBroadcastCaptureTargetType {}
+impl ::core::clone::Clone for AppBroadcastCaptureTargetType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastExitBroadcastModeReason(pub i32);
+impl AppBroadcastExitBroadcastModeReason {
+ pub const NormalExit: Self = Self(0i32);
+ pub const UserCanceled: Self = Self(1i32);
+ pub const AuthorizationFail: Self = Self(2i32);
+ pub const ForegroundAppActivated: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AppBroadcastExitBroadcastModeReason {}
+impl ::core::clone::Clone for AppBroadcastExitBroadcastModeReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastGlobalSettings = *mut ::core::ffi::c_void;
+pub type AppBroadcastHeartbeatRequestedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastMicrophoneCaptureState(pub i32);
+impl AppBroadcastMicrophoneCaptureState {
+ pub const Stopped: Self = Self(0i32);
+ pub const Started: Self = Self(1i32);
+ pub const Failed: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppBroadcastMicrophoneCaptureState {}
+impl ::core::clone::Clone for AppBroadcastMicrophoneCaptureState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastMicrophoneCaptureStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppBroadcastPlugIn = *mut ::core::ffi::c_void;
+pub type AppBroadcastPlugInManager = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastPlugInState(pub i32);
+impl AppBroadcastPlugInState {
+ pub const Unknown: Self = Self(0i32);
+ pub const Initialized: Self = Self(1i32);
+ pub const MicrosoftSignInRequired: Self = Self(2i32);
+ pub const OAuthSignInRequired: Self = Self(3i32);
+ pub const ProviderSignInRequired: Self = Self(4i32);
+ pub const InBandwidthTest: Self = Self(5i32);
+ pub const ReadyToBroadcast: Self = Self(6i32);
+}
+impl ::core::marker::Copy for AppBroadcastPlugInState {}
+impl ::core::clone::Clone for AppBroadcastPlugInState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastPlugInStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppBroadcastPreview = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastPreviewState(pub i32);
+impl AppBroadcastPreviewState {
+ pub const Started: Self = Self(0i32);
+ pub const Stopped: Self = Self(1i32);
+ pub const Failed: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppBroadcastPreviewState {}
+impl ::core::clone::Clone for AppBroadcastPreviewState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastPreviewStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppBroadcastPreviewStreamReader = *mut ::core::ffi::c_void;
+pub type AppBroadcastPreviewStreamVideoFrame = *mut ::core::ffi::c_void;
+pub type AppBroadcastPreviewStreamVideoHeader = *mut ::core::ffi::c_void;
+pub type AppBroadcastProviderSettings = *mut ::core::ffi::c_void;
+pub type AppBroadcastServices = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastSignInResult(pub i32);
+impl AppBroadcastSignInResult {
+ pub const Success: Self = Self(0i32);
+ pub const AuthenticationFailed: Self = Self(1i32);
+ pub const Unauthorized: Self = Self(2i32);
+ pub const ServiceUnavailable: Self = Self(3i32);
+ pub const Unknown: Self = Self(4i32);
+}
+impl ::core::marker::Copy for AppBroadcastSignInResult {}
+impl ::core::clone::Clone for AppBroadcastSignInResult {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastSignInState(pub i32);
+impl AppBroadcastSignInState {
+ pub const NotSignedIn: Self = Self(0i32);
+ pub const MicrosoftSignInInProgress: Self = Self(1i32);
+ pub const MicrosoftSignInComplete: Self = Self(2i32);
+ pub const OAuthSignInInProgress: Self = Self(3i32);
+ pub const OAuthSignInComplete: Self = Self(4i32);
+}
+impl ::core::marker::Copy for AppBroadcastSignInState {}
+impl ::core::clone::Clone for AppBroadcastSignInState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastSignInStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppBroadcastState = *mut ::core::ffi::c_void;
+pub type AppBroadcastStreamAudioFrame = *mut ::core::ffi::c_void;
+pub type AppBroadcastStreamAudioHeader = *mut ::core::ffi::c_void;
+pub type AppBroadcastStreamReader = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastStreamState(pub i32);
+impl AppBroadcastStreamState {
+ pub const Initializing: Self = Self(0i32);
+ pub const StreamReady: Self = Self(1i32);
+ pub const Started: Self = Self(2i32);
+ pub const Paused: Self = Self(3i32);
+ pub const Terminated: Self = Self(4i32);
+}
+impl ::core::marker::Copy for AppBroadcastStreamState {}
+impl ::core::clone::Clone for AppBroadcastStreamState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastStreamStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppBroadcastStreamVideoFrame = *mut ::core::ffi::c_void;
+pub type AppBroadcastStreamVideoHeader = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastTerminationReason(pub i32);
+impl AppBroadcastTerminationReason {
+ pub const NormalTermination: Self = Self(0i32);
+ pub const LostConnectionToService: Self = Self(1i32);
+ pub const NoNetworkConnectivity: Self = Self(2i32);
+ pub const ServiceAbort: Self = Self(3i32);
+ pub const ServiceError: Self = Self(4i32);
+ pub const ServiceUnavailable: Self = Self(5i32);
+ pub const InternalError: Self = Self(6i32);
+ pub const UnsupportedFormat: Self = Self(7i32);
+ pub const BackgroundTaskTerminated: Self = Self(8i32);
+ pub const BackgroundTaskUnresponsive: Self = Self(9i32);
+}
+impl ::core::marker::Copy for AppBroadcastTerminationReason {}
+impl ::core::clone::Clone for AppBroadcastTerminationReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastTriggerDetails = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastVideoEncodingBitrateMode(pub i32);
+impl AppBroadcastVideoEncodingBitrateMode {
+ pub const Custom: Self = Self(0i32);
+ pub const Auto: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppBroadcastVideoEncodingBitrateMode {}
+impl ::core::clone::Clone for AppBroadcastVideoEncodingBitrateMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppBroadcastVideoEncodingResolutionMode(pub i32);
+impl AppBroadcastVideoEncodingResolutionMode {
+ pub const Custom: Self = Self(0i32);
+ pub const Auto: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppBroadcastVideoEncodingResolutionMode {}
+impl ::core::clone::Clone for AppBroadcastVideoEncodingResolutionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppBroadcastViewerCountChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppCapture = *mut ::core::ffi::c_void;
+pub type AppCaptureAlternateShortcutKeys = *mut ::core::ffi::c_void;
+pub type AppCaptureDurationGeneratedEventArgs = *mut ::core::ffi::c_void;
+pub type AppCaptureFileGeneratedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureHistoricalBufferLengthUnit(pub i32);
+impl AppCaptureHistoricalBufferLengthUnit {
+ pub const Megabytes: Self = Self(0i32);
+ pub const Seconds: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppCaptureHistoricalBufferLengthUnit {}
+impl ::core::clone::Clone for AppCaptureHistoricalBufferLengthUnit {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureMetadataPriority(pub i32);
+impl AppCaptureMetadataPriority {
+ pub const Informational: Self = Self(0i32);
+ pub const Important: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppCaptureMetadataPriority {}
+impl ::core::clone::Clone for AppCaptureMetadataPriority {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppCaptureMetadataWriter = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureMicrophoneCaptureState(pub i32);
+impl AppCaptureMicrophoneCaptureState {
+ pub const Stopped: Self = Self(0i32);
+ pub const Started: Self = Self(1i32);
+ pub const Failed: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppCaptureMicrophoneCaptureState {}
+impl ::core::clone::Clone for AppCaptureMicrophoneCaptureState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppCaptureMicrophoneCaptureStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppCaptureRecordOperation = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureRecordingState(pub i32);
+impl AppCaptureRecordingState {
+ pub const InProgress: Self = Self(0i32);
+ pub const Completed: Self = Self(1i32);
+ pub const Failed: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppCaptureRecordingState {}
+impl ::core::clone::Clone for AppCaptureRecordingState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AppCaptureRecordingStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type AppCaptureServices = *mut ::core::ffi::c_void;
+pub type AppCaptureSettings = *mut ::core::ffi::c_void;
+pub type AppCaptureState = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureVideoEncodingBitrateMode(pub i32);
+impl AppCaptureVideoEncodingBitrateMode {
+ pub const Custom: Self = Self(0i32);
+ pub const High: Self = Self(1i32);
+ pub const Standard: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppCaptureVideoEncodingBitrateMode {}
+impl ::core::clone::Clone for AppCaptureVideoEncodingBitrateMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureVideoEncodingFrameRateMode(pub i32);
+impl AppCaptureVideoEncodingFrameRateMode {
+ pub const Standard: Self = Self(0i32);
+ pub const High: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AppCaptureVideoEncodingFrameRateMode {}
+impl ::core::clone::Clone for AppCaptureVideoEncodingFrameRateMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct AppCaptureVideoEncodingResolutionMode(pub i32);
+impl AppCaptureVideoEncodingResolutionMode {
+ pub const Custom: Self = Self(0i32);
+ pub const High: Self = Self(1i32);
+ pub const Standard: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AppCaptureVideoEncodingResolutionMode {}
+impl ::core::clone::Clone for AppCaptureVideoEncodingResolutionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CameraCaptureUI = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct CameraCaptureUIMaxPhotoResolution(pub i32);
+impl CameraCaptureUIMaxPhotoResolution {
+ pub const HighestAvailable: Self = Self(0i32);
+ pub const VerySmallQvga: Self = Self(1i32);
+ pub const SmallVga: Self = Self(2i32);
+ pub const MediumXga: Self = Self(3i32);
+ pub const Large3M: Self = Self(4i32);
+ pub const VeryLarge5M: Self = Self(5i32);
+}
+impl ::core::marker::Copy for CameraCaptureUIMaxPhotoResolution {}
+impl ::core::clone::Clone for CameraCaptureUIMaxPhotoResolution {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct CameraCaptureUIMaxVideoResolution(pub i32);
+impl CameraCaptureUIMaxVideoResolution {
+ pub const HighestAvailable: Self = Self(0i32);
+ pub const LowDefinition: Self = Self(1i32);
+ pub const StandardDefinition: Self = Self(2i32);
+ pub const HighDefinition: Self = Self(3i32);
+}
+impl ::core::marker::Copy for CameraCaptureUIMaxVideoResolution {}
+impl ::core::clone::Clone for CameraCaptureUIMaxVideoResolution {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct CameraCaptureUIMode(pub i32);
+impl CameraCaptureUIMode {
+ pub const PhotoOrVideo: Self = Self(0i32);
+ pub const Photo: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+}
+impl ::core::marker::Copy for CameraCaptureUIMode {}
+impl ::core::clone::Clone for CameraCaptureUIMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CameraCaptureUIPhotoCaptureSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct CameraCaptureUIPhotoFormat(pub i32);
+impl CameraCaptureUIPhotoFormat {
+ pub const Jpeg: Self = Self(0i32);
+ pub const Png: Self = Self(1i32);
+ pub const JpegXR: Self = Self(2i32);
+}
+impl ::core::marker::Copy for CameraCaptureUIPhotoFormat {}
+impl ::core::clone::Clone for CameraCaptureUIPhotoFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CameraCaptureUIVideoCaptureSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct CameraCaptureUIVideoFormat(pub i32);
+impl CameraCaptureUIVideoFormat {
+ pub const Mp4: Self = Self(0i32);
+ pub const Wmv: Self = Self(1i32);
+}
+impl ::core::marker::Copy for CameraCaptureUIVideoFormat {}
+impl ::core::clone::Clone for CameraCaptureUIVideoFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CapturedFrame = *mut ::core::ffi::c_void;
+pub type CapturedFrameControlValues = *mut ::core::ffi::c_void;
+pub type CapturedPhoto = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct ForegroundActivationArgument(pub i32);
+impl ForegroundActivationArgument {
+ pub const SignInRequired: Self = Self(0i32);
+ pub const MoreSettings: Self = Self(1i32);
+}
+impl ::core::marker::Copy for ForegroundActivationArgument {}
+impl ::core::clone::Clone for ForegroundActivationArgument {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct GameBarCommand(pub i32);
+impl GameBarCommand {
+ pub const OpenGameBar: Self = Self(0i32);
+ pub const RecordHistoricalBuffer: Self = Self(1i32);
+ pub const ToggleStartStopRecord: Self = Self(2i32);
+ pub const StartRecord: Self = Self(3i32);
+ pub const StopRecord: Self = Self(4i32);
+ pub const TakeScreenshot: Self = Self(5i32);
+ pub const StartBroadcast: Self = Self(6i32);
+ pub const StopBroadcast: Self = Self(7i32);
+ pub const PauseBroadcast: Self = Self(8i32);
+ pub const ResumeBroadcast: Self = Self(9i32);
+ pub const ToggleStartStopBroadcast: Self = Self(10i32);
+ pub const ToggleMicrophoneCapture: Self = Self(11i32);
+ pub const ToggleCameraCapture: Self = Self(12i32);
+ pub const ToggleRecordingIndicator: Self = Self(13i32);
+}
+impl ::core::marker::Copy for GameBarCommand {}
+impl ::core::clone::Clone for GameBarCommand {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct GameBarCommandOrigin(pub i32);
+impl GameBarCommandOrigin {
+ pub const ShortcutKey: Self = Self(0i32);
+ pub const Cortana: Self = Self(1i32);
+ pub const AppCommand: Self = Self(2i32);
+}
+impl ::core::marker::Copy for GameBarCommandOrigin {}
+impl ::core::clone::Clone for GameBarCommandOrigin {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type GameBarServices = *mut ::core::ffi::c_void;
+pub type GameBarServicesCommandEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct GameBarServicesDisplayMode(pub i32);
+impl GameBarServicesDisplayMode {
+ pub const Windowed: Self = Self(0i32);
+ pub const FullScreenExclusive: Self = Self(1i32);
+}
+impl ::core::marker::Copy for GameBarServicesDisplayMode {}
+impl ::core::clone::Clone for GameBarServicesDisplayMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type GameBarServicesManager = *mut ::core::ffi::c_void;
+pub type GameBarServicesManagerGameBarServicesCreatedEventArgs = *mut ::core::ffi::c_void;
+pub type GameBarServicesTargetInfo = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct GameBarTargetCapturePolicy(pub i32);
+impl GameBarTargetCapturePolicy {
+ pub const EnabledBySystem: Self = Self(0i32);
+ pub const EnabledByUser: Self = Self(1i32);
+ pub const NotEnabled: Self = Self(2i32);
+ pub const ProhibitedBySystem: Self = Self(3i32);
+ pub const ProhibitedByPublisher: Self = Self(4i32);
+}
+impl ::core::marker::Copy for GameBarTargetCapturePolicy {}
+impl ::core::clone::Clone for GameBarTargetCapturePolicy {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct KnownVideoProfile(pub i32);
+impl KnownVideoProfile {
+ pub const VideoRecording: Self = Self(0i32);
+ pub const HighQualityPhoto: Self = Self(1i32);
+ pub const BalancedVideoAndPhoto: Self = Self(2i32);
+ pub const VideoConferencing: Self = Self(3i32);
+ pub const PhotoSequence: Self = Self(4i32);
+ pub const HighFrameRate: Self = Self(5i32);
+ pub const VariablePhotoSequence: Self = Self(6i32);
+ pub const HdrWithWcgVideo: Self = Self(7i32);
+ pub const HdrWithWcgPhoto: Self = Self(8i32);
+ pub const VideoHdr8: Self = Self(9i32);
+ pub const CompressedCamera: Self = Self(10i32);
+}
+impl ::core::marker::Copy for KnownVideoProfile {}
+impl ::core::clone::Clone for KnownVideoProfile {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type LowLagMediaRecording = *mut ::core::ffi::c_void;
+pub type LowLagPhotoCapture = *mut ::core::ffi::c_void;
+pub type LowLagPhotoSequenceCapture = *mut ::core::ffi::c_void;
+pub type MediaCapture = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct MediaCaptureDeviceExclusiveControlStatus(pub i32);
+impl MediaCaptureDeviceExclusiveControlStatus {
+ pub const ExclusiveControlAvailable: Self = Self(0i32);
+ pub const SharedReadOnlyAvailable: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaCaptureDeviceExclusiveControlStatus {}
+impl ::core::clone::Clone for MediaCaptureDeviceExclusiveControlStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaCaptureDeviceExclusiveControlStatusChangedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaCaptureFailedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaCaptureFailedEventHandler = *mut ::core::ffi::c_void;
+pub type MediaCaptureFocusChangedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaCaptureInitializationSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct MediaCaptureMemoryPreference(pub i32);
+impl MediaCaptureMemoryPreference {
+ pub const Auto: Self = Self(0i32);
+ pub const Cpu: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaCaptureMemoryPreference {}
+impl ::core::clone::Clone for MediaCaptureMemoryPreference {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaCapturePauseResult = *mut ::core::ffi::c_void;
+pub type MediaCaptureRelativePanelWatcher = *mut ::core::ffi::c_void;
+pub type MediaCaptureSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct MediaCaptureSharingMode(pub i32);
+impl MediaCaptureSharingMode {
+ pub const ExclusiveControl: Self = Self(0i32);
+ pub const SharedReadOnly: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaCaptureSharingMode {}
+impl ::core::clone::Clone for MediaCaptureSharingMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaCaptureStopResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct MediaCaptureThermalStatus(pub i32);
+impl MediaCaptureThermalStatus {
+ pub const Normal: Self = Self(0i32);
+ pub const Overheated: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaCaptureThermalStatus {}
+impl ::core::clone::Clone for MediaCaptureThermalStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaCaptureVideoProfile = *mut ::core::ffi::c_void;
+pub type MediaCaptureVideoProfileMediaDescription = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct MediaCategory(pub i32);
+impl MediaCategory {
+ pub const Other: Self = Self(0i32);
+ pub const Communications: Self = Self(1i32);
+ pub const Media: Self = Self(2i32);
+ pub const GameChat: Self = Self(3i32);
+ pub const Speech: Self = Self(4i32);
+ pub const FarFieldSpeech: Self = Self(5i32);
+ pub const UniformSpeech: Self = Self(6i32);
+ pub const VoiceTyping: Self = Self(7i32);
+}
+impl ::core::marker::Copy for MediaCategory {}
+impl ::core::clone::Clone for MediaCategory {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct MediaStreamType(pub i32);
+impl MediaStreamType {
+ pub const VideoPreview: Self = Self(0i32);
+ pub const VideoRecord: Self = Self(1i32);
+ pub const Audio: Self = Self(2i32);
+ pub const Photo: Self = Self(3i32);
+ pub const Metadata: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaStreamType {}
+impl ::core::clone::Clone for MediaStreamType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type OptionalReferencePhotoCapturedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct PhotoCaptureSource(pub i32);
+impl PhotoCaptureSource {
+ pub const Auto: Self = Self(0i32);
+ pub const VideoPreview: Self = Self(1i32);
+ pub const Photo: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoCaptureSource {}
+impl ::core::clone::Clone for PhotoCaptureSource {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoCapturedEventArgs = *mut ::core::ffi::c_void;
+pub type PhotoConfirmationCapturedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct PowerlineFrequency(pub i32);
+impl PowerlineFrequency {
+ pub const Disabled: Self = Self(0i32);
+ pub const FiftyHertz: Self = Self(1i32);
+ pub const SixtyHertz: Self = Self(2i32);
+ pub const Auto: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PowerlineFrequency {}
+impl ::core::clone::Clone for PowerlineFrequency {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type RecordLimitationExceededEventHandler = *mut ::core::ffi::c_void;
+pub type ScreenCapture = *mut ::core::ffi::c_void;
+pub type SourceSuspensionChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct StreamingCaptureMode(pub i32);
+impl StreamingCaptureMode {
+ pub const AudioAndVideo: Self = Self(0i32);
+ pub const Audio: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+}
+impl ::core::marker::Copy for StreamingCaptureMode {}
+impl ::core::clone::Clone for StreamingCaptureMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct VideoDeviceCharacteristic(pub i32);
+impl VideoDeviceCharacteristic {
+ pub const AllStreamsIndependent: Self = Self(0i32);
+ pub const PreviewRecordStreamsIdentical: Self = Self(1i32);
+ pub const PreviewPhotoStreamsIdentical: Self = Self(2i32);
+ pub const RecordPhotoStreamsIdentical: Self = Self(3i32);
+ pub const AllStreamsIdentical: Self = Self(4i32);
+}
+impl ::core::marker::Copy for VideoDeviceCharacteristic {}
+impl ::core::clone::Clone for VideoDeviceCharacteristic {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+#[repr(transparent)]
+pub struct VideoRotation(pub i32);
+impl VideoRotation {
+ pub const None: Self = Self(0i32);
+ pub const Clockwise90Degrees: Self = Self(1i32);
+ pub const Clockwise180Degrees: Self = Self(2i32);
+ pub const Clockwise270Degrees: Self = Self(3i32);
+}
+impl ::core::marker::Copy for VideoRotation {}
+impl ::core::clone::Clone for VideoRotation {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type VideoStreamConfiguration = *mut ::core::ffi::c_void;
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Capture\"`*"]
+pub struct WhiteBalanceGain {
+ pub R: f64,
+ pub G: f64,
+ pub B: f64,
+}
+impl ::core::marker::Copy for WhiteBalanceGain {}
+impl ::core::clone::Clone for WhiteBalanceGain {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Casting/mod.rs b/vendor/windows-sys/src/Windows/Media/Casting/mod.rs
new file mode 100644
index 000000000..ebf7e1ea5
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Casting/mod.rs
@@ -0,0 +1,56 @@
+pub type CastingConnection = *mut ::core::ffi::c_void;
+pub type CastingConnectionErrorOccurredEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Casting\"`*"]
+#[repr(transparent)]
+pub struct CastingConnectionErrorStatus(pub i32);
+impl CastingConnectionErrorStatus {
+ pub const Succeeded: Self = Self(0i32);
+ pub const DeviceDidNotRespond: Self = Self(1i32);
+ pub const DeviceError: Self = Self(2i32);
+ pub const DeviceLocked: Self = Self(3i32);
+ pub const ProtectedPlaybackFailed: Self = Self(4i32);
+ pub const InvalidCastingSource: Self = Self(5i32);
+ pub const Unknown: Self = Self(6i32);
+}
+impl ::core::marker::Copy for CastingConnectionErrorStatus {}
+impl ::core::clone::Clone for CastingConnectionErrorStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Casting\"`*"]
+#[repr(transparent)]
+pub struct CastingConnectionState(pub i32);
+impl CastingConnectionState {
+ pub const Disconnected: Self = Self(0i32);
+ pub const Connected: Self = Self(1i32);
+ pub const Rendering: Self = Self(2i32);
+ pub const Disconnecting: Self = Self(3i32);
+ pub const Connecting: Self = Self(4i32);
+}
+impl ::core::marker::Copy for CastingConnectionState {}
+impl ::core::clone::Clone for CastingConnectionState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CastingDevice = *mut ::core::ffi::c_void;
+pub type CastingDevicePicker = *mut ::core::ffi::c_void;
+pub type CastingDevicePickerFilter = *mut ::core::ffi::c_void;
+pub type CastingDeviceSelectedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Casting\"`*"]
+#[repr(transparent)]
+pub struct CastingPlaybackTypes(pub u32);
+impl CastingPlaybackTypes {
+ pub const None: Self = Self(0u32);
+ pub const Audio: Self = Self(1u32);
+ pub const Video: Self = Self(2u32);
+ pub const Picture: Self = Self(4u32);
+}
+impl ::core::marker::Copy for CastingPlaybackTypes {}
+impl ::core::clone::Clone for CastingPlaybackTypes {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CastingSource = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/ClosedCaptioning/mod.rs b/vendor/windows-sys/src/Windows/Media/ClosedCaptioning/mod.rs
new file mode 100644
index 000000000..41ab9287c
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/ClosedCaptioning/mod.rs
@@ -0,0 +1,88 @@
+#[doc = "*Required features: `\"Media_ClosedCaptioning\"`*"]
+#[repr(transparent)]
+pub struct ClosedCaptionColor(pub i32);
+impl ClosedCaptionColor {
+ pub const Default: Self = Self(0i32);
+ pub const White: Self = Self(1i32);
+ pub const Black: Self = Self(2i32);
+ pub const Red: Self = Self(3i32);
+ pub const Green: Self = Self(4i32);
+ pub const Blue: Self = Self(5i32);
+ pub const Yellow: Self = Self(6i32);
+ pub const Magenta: Self = Self(7i32);
+ pub const Cyan: Self = Self(8i32);
+}
+impl ::core::marker::Copy for ClosedCaptionColor {}
+impl ::core::clone::Clone for ClosedCaptionColor {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_ClosedCaptioning\"`*"]
+#[repr(transparent)]
+pub struct ClosedCaptionEdgeEffect(pub i32);
+impl ClosedCaptionEdgeEffect {
+ pub const Default: Self = Self(0i32);
+ pub const None: Self = Self(1i32);
+ pub const Raised: Self = Self(2i32);
+ pub const Depressed: Self = Self(3i32);
+ pub const Uniform: Self = Self(4i32);
+ pub const DropShadow: Self = Self(5i32);
+}
+impl ::core::marker::Copy for ClosedCaptionEdgeEffect {}
+impl ::core::clone::Clone for ClosedCaptionEdgeEffect {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_ClosedCaptioning\"`*"]
+#[repr(transparent)]
+pub struct ClosedCaptionOpacity(pub i32);
+impl ClosedCaptionOpacity {
+ pub const Default: Self = Self(0i32);
+ pub const OneHundredPercent: Self = Self(1i32);
+ pub const SeventyFivePercent: Self = Self(2i32);
+ pub const TwentyFivePercent: Self = Self(3i32);
+ pub const ZeroPercent: Self = Self(4i32);
+}
+impl ::core::marker::Copy for ClosedCaptionOpacity {}
+impl ::core::clone::Clone for ClosedCaptionOpacity {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_ClosedCaptioning\"`*"]
+#[repr(transparent)]
+pub struct ClosedCaptionSize(pub i32);
+impl ClosedCaptionSize {
+ pub const Default: Self = Self(0i32);
+ pub const FiftyPercent: Self = Self(1i32);
+ pub const OneHundredPercent: Self = Self(2i32);
+ pub const OneHundredFiftyPercent: Self = Self(3i32);
+ pub const TwoHundredPercent: Self = Self(4i32);
+}
+impl ::core::marker::Copy for ClosedCaptionSize {}
+impl ::core::clone::Clone for ClosedCaptionSize {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_ClosedCaptioning\"`*"]
+#[repr(transparent)]
+pub struct ClosedCaptionStyle(pub i32);
+impl ClosedCaptionStyle {
+ pub const Default: Self = Self(0i32);
+ pub const MonospacedWithSerifs: Self = Self(1i32);
+ pub const ProportionalWithSerifs: Self = Self(2i32);
+ pub const MonospacedWithoutSerifs: Self = Self(3i32);
+ pub const ProportionalWithoutSerifs: Self = Self(4i32);
+ pub const Casual: Self = Self(5i32);
+ pub const Cursive: Self = Self(6i32);
+ pub const SmallCapitals: Self = Self(7i32);
+}
+impl ::core::marker::Copy for ClosedCaptionStyle {}
+impl ::core::clone::Clone for ClosedCaptionStyle {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/ContentRestrictions/mod.rs b/vendor/windows-sys/src/Windows/Media/ContentRestrictions/mod.rs
new file mode 100644
index 000000000..0826e7b93
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/ContentRestrictions/mod.rs
@@ -0,0 +1,35 @@
+#[doc = "*Required features: `\"Media_ContentRestrictions\"`*"]
+#[repr(transparent)]
+pub struct ContentAccessRestrictionLevel(pub i32);
+impl ContentAccessRestrictionLevel {
+ pub const Allow: Self = Self(0i32);
+ pub const Warn: Self = Self(1i32);
+ pub const Block: Self = Self(2i32);
+ pub const Hide: Self = Self(3i32);
+}
+impl ::core::marker::Copy for ContentAccessRestrictionLevel {}
+impl ::core::clone::Clone for ContentAccessRestrictionLevel {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type ContentRestrictionsBrowsePolicy = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_ContentRestrictions\"`*"]
+#[repr(transparent)]
+pub struct RatedContentCategory(pub i32);
+impl RatedContentCategory {
+ pub const General: Self = Self(0i32);
+ pub const Application: Self = Self(1i32);
+ pub const Game: Self = Self(2i32);
+ pub const Movie: Self = Self(3i32);
+ pub const Television: Self = Self(4i32);
+ pub const Music: Self = Self(5i32);
+}
+impl ::core::marker::Copy for RatedContentCategory {}
+impl ::core::clone::Clone for RatedContentCategory {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type RatedContentDescription = *mut ::core::ffi::c_void;
+pub type RatedContentRestrictions = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Control/mod.rs b/vendor/windows-sys/src/Windows/Media/Control/mod.rs
new file mode 100644
index 000000000..7a86fd376
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Control/mod.rs
@@ -0,0 +1,28 @@
+pub type CurrentSessionChangedEventArgs = *mut ::core::ffi::c_void;
+pub type GlobalSystemMediaTransportControlsSession = *mut ::core::ffi::c_void;
+pub type GlobalSystemMediaTransportControlsSessionManager = *mut ::core::ffi::c_void;
+pub type GlobalSystemMediaTransportControlsSessionMediaProperties = *mut ::core::ffi::c_void;
+pub type GlobalSystemMediaTransportControlsSessionPlaybackControls = *mut ::core::ffi::c_void;
+pub type GlobalSystemMediaTransportControlsSessionPlaybackInfo = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Control\"`*"]
+#[repr(transparent)]
+pub struct GlobalSystemMediaTransportControlsSessionPlaybackStatus(pub i32);
+impl GlobalSystemMediaTransportControlsSessionPlaybackStatus {
+ pub const Closed: Self = Self(0i32);
+ pub const Opened: Self = Self(1i32);
+ pub const Changing: Self = Self(2i32);
+ pub const Stopped: Self = Self(3i32);
+ pub const Playing: Self = Self(4i32);
+ pub const Paused: Self = Self(5i32);
+}
+impl ::core::marker::Copy for GlobalSystemMediaTransportControlsSessionPlaybackStatus {}
+impl ::core::clone::Clone for GlobalSystemMediaTransportControlsSessionPlaybackStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type GlobalSystemMediaTransportControlsSessionTimelineProperties = *mut ::core::ffi::c_void;
+pub type MediaPropertiesChangedEventArgs = *mut ::core::ffi::c_void;
+pub type PlaybackInfoChangedEventArgs = *mut ::core::ffi::c_void;
+pub type SessionsChangedEventArgs = *mut ::core::ffi::c_void;
+pub type TimelinePropertiesChangedEventArgs = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Core/Preview/mod.rs b/vendor/windows-sys/src/Windows/Media/Core/Preview/mod.rs
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Core/Preview/mod.rs
@@ -0,0 +1 @@
+
diff --git a/vendor/windows-sys/src/Windows/Media/Core/mod.rs b/vendor/windows-sys/src/Windows/Media/Core/mod.rs
new file mode 100644
index 000000000..9f64b2888
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Core/mod.rs
@@ -0,0 +1,619 @@
+#[cfg(feature = "Media_Core_Preview")]
+pub mod Preview;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct AudioDecoderDegradation(pub i32);
+impl AudioDecoderDegradation {
+ pub const None: Self = Self(0i32);
+ pub const DownmixTo2Channels: Self = Self(1i32);
+ pub const DownmixTo6Channels: Self = Self(2i32);
+ pub const DownmixTo8Channels: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AudioDecoderDegradation {}
+impl ::core::clone::Clone for AudioDecoderDegradation {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct AudioDecoderDegradationReason(pub i32);
+impl AudioDecoderDegradationReason {
+ pub const None: Self = Self(0i32);
+ pub const LicensingRequirement: Self = Self(1i32);
+ pub const SpatialAudioNotSupported: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AudioDecoderDegradationReason {}
+impl ::core::clone::Clone for AudioDecoderDegradationReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioStreamDescriptor = *mut ::core::ffi::c_void;
+pub type AudioTrack = *mut ::core::ffi::c_void;
+pub type AudioTrackOpenFailedEventArgs = *mut ::core::ffi::c_void;
+pub type AudioTrackSupportInfo = *mut ::core::ffi::c_void;
+pub type ChapterCue = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct CodecCategory(pub i32);
+impl CodecCategory {
+ pub const Encoder: Self = Self(0i32);
+ pub const Decoder: Self = Self(1i32);
+}
+impl ::core::marker::Copy for CodecCategory {}
+impl ::core::clone::Clone for CodecCategory {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CodecInfo = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct CodecKind(pub i32);
+impl CodecKind {
+ pub const Audio: Self = Self(0i32);
+ pub const Video: Self = Self(1i32);
+}
+impl ::core::marker::Copy for CodecKind {}
+impl ::core::clone::Clone for CodecKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CodecQuery = *mut ::core::ffi::c_void;
+pub type DataCue = *mut ::core::ffi::c_void;
+pub type FaceDetectedEventArgs = *mut ::core::ffi::c_void;
+pub type FaceDetectionEffect = *mut ::core::ffi::c_void;
+pub type FaceDetectionEffectDefinition = *mut ::core::ffi::c_void;
+pub type FaceDetectionEffectFrame = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct FaceDetectionMode(pub i32);
+impl FaceDetectionMode {
+ pub const HighPerformance: Self = Self(0i32);
+ pub const Balanced: Self = Self(1i32);
+ pub const HighQuality: Self = Self(2i32);
+}
+impl ::core::marker::Copy for FaceDetectionMode {}
+impl ::core::clone::Clone for FaceDetectionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type HighDynamicRangeControl = *mut ::core::ffi::c_void;
+pub type HighDynamicRangeOutput = *mut ::core::ffi::c_void;
+pub type IMediaCue = *mut ::core::ffi::c_void;
+pub type IMediaSource = *mut ::core::ffi::c_void;
+pub type IMediaStreamDescriptor = *mut ::core::ffi::c_void;
+pub type IMediaStreamDescriptor2 = *mut ::core::ffi::c_void;
+pub type IMediaTrack = *mut ::core::ffi::c_void;
+pub type ISingleSelectMediaTrackList = *mut ::core::ffi::c_void;
+pub type ITimedMetadataTrackProvider = *mut ::core::ffi::c_void;
+pub type ImageCue = *mut ::core::ffi::c_void;
+pub type InitializeMediaStreamSourceRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type LowLightFusionResult = *mut ::core::ffi::c_void;
+pub type MediaBinder = *mut ::core::ffi::c_void;
+pub type MediaBindingEventArgs = *mut ::core::ffi::c_void;
+pub type MediaCueEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MediaDecoderStatus(pub i32);
+impl MediaDecoderStatus {
+ pub const FullySupported: Self = Self(0i32);
+ pub const UnsupportedSubtype: Self = Self(1i32);
+ pub const UnsupportedEncoderProperties: Self = Self(2i32);
+ pub const Degraded: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaDecoderStatus {}
+impl ::core::clone::Clone for MediaDecoderStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaSource = *mut ::core::ffi::c_void;
+pub type MediaSourceAppServiceConnection = *mut ::core::ffi::c_void;
+pub type MediaSourceError = *mut ::core::ffi::c_void;
+pub type MediaSourceOpenOperationCompletedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MediaSourceState(pub i32);
+impl MediaSourceState {
+ pub const Initial: Self = Self(0i32);
+ pub const Opening: Self = Self(1i32);
+ pub const Opened: Self = Self(2i32);
+ pub const Failed: Self = Self(3i32);
+ pub const Closed: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaSourceState {}
+impl ::core::clone::Clone for MediaSourceState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaSourceStateChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MediaSourceStatus(pub i32);
+impl MediaSourceStatus {
+ pub const FullySupported: Self = Self(0i32);
+ pub const Unknown: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaSourceStatus {}
+impl ::core::clone::Clone for MediaSourceStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaStreamSample = *mut ::core::ffi::c_void;
+pub type MediaStreamSamplePropertySet = *mut ::core::ffi::c_void;
+pub type MediaStreamSampleProtectionProperties = *mut ::core::ffi::c_void;
+pub type MediaStreamSource = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceClosedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MediaStreamSourceClosedReason(pub i32);
+impl MediaStreamSourceClosedReason {
+ pub const Done: Self = Self(0i32);
+ pub const UnknownError: Self = Self(1i32);
+ pub const AppReportedError: Self = Self(2i32);
+ pub const UnsupportedProtectionSystem: Self = Self(3i32);
+ pub const ProtectionSystemFailure: Self = Self(4i32);
+ pub const UnsupportedEncodingFormat: Self = Self(5i32);
+ pub const MissingSampleRequestedEventHandler: Self = Self(6i32);
+}
+impl ::core::marker::Copy for MediaStreamSourceClosedReason {}
+impl ::core::clone::Clone for MediaStreamSourceClosedReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaStreamSourceClosedRequest = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MediaStreamSourceErrorStatus(pub i32);
+impl MediaStreamSourceErrorStatus {
+ pub const Other: Self = Self(0i32);
+ pub const OutOfMemory: Self = Self(1i32);
+ pub const FailedToOpenFile: Self = Self(2i32);
+ pub const FailedToConnectToServer: Self = Self(3i32);
+ pub const ConnectionToServerLost: Self = Self(4i32);
+ pub const UnspecifiedNetworkError: Self = Self(5i32);
+ pub const DecodeError: Self = Self(6i32);
+ pub const UnsupportedMediaFormat: Self = Self(7i32);
+}
+impl ::core::marker::Copy for MediaStreamSourceErrorStatus {}
+impl ::core::clone::Clone for MediaStreamSourceErrorStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaStreamSourceSampleRenderedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceSampleRequest = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceSampleRequestDeferral = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceSampleRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceStartingEventArgs = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceStartingRequest = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceStartingRequestDeferral = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceSwitchStreamsRequest = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceSwitchStreamsRequestDeferral = *mut ::core::ffi::c_void;
+pub type MediaStreamSourceSwitchStreamsRequestedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MediaTrackKind(pub i32);
+impl MediaTrackKind {
+ pub const Audio: Self = Self(0i32);
+ pub const Video: Self = Self(1i32);
+ pub const TimedMetadata: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MediaTrackKind {}
+impl ::core::clone::Clone for MediaTrackKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MseAppendMode(pub i32);
+impl MseAppendMode {
+ pub const Segments: Self = Self(0i32);
+ pub const Sequence: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MseAppendMode {}
+impl ::core::clone::Clone for MseAppendMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MseEndOfStreamStatus(pub i32);
+impl MseEndOfStreamStatus {
+ pub const Success: Self = Self(0i32);
+ pub const NetworkError: Self = Self(1i32);
+ pub const DecodeError: Self = Self(2i32);
+ pub const UnknownError: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MseEndOfStreamStatus {}
+impl ::core::clone::Clone for MseEndOfStreamStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct MseReadyState(pub i32);
+impl MseReadyState {
+ pub const Closed: Self = Self(0i32);
+ pub const Open: Self = Self(1i32);
+ pub const Ended: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MseReadyState {}
+impl ::core::clone::Clone for MseReadyState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MseSourceBuffer = *mut ::core::ffi::c_void;
+pub type MseSourceBufferList = *mut ::core::ffi::c_void;
+pub type MseStreamSource = *mut ::core::ffi::c_void;
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Core\"`, `\"Foundation\"`*"]
+#[cfg(feature = "Foundation")]
+pub struct MseTimeRange {
+ pub Start: super::super::Foundation::TimeSpan,
+ pub End: super::super::Foundation::TimeSpan,
+}
+#[cfg(feature = "Foundation")]
+impl ::core::marker::Copy for MseTimeRange {}
+#[cfg(feature = "Foundation")]
+impl ::core::clone::Clone for MseTimeRange {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SceneAnalysisEffect = *mut ::core::ffi::c_void;
+pub type SceneAnalysisEffectDefinition = *mut ::core::ffi::c_void;
+pub type SceneAnalysisEffectFrame = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct SceneAnalysisRecommendation(pub i32);
+impl SceneAnalysisRecommendation {
+ pub const Standard: Self = Self(0i32);
+ pub const Hdr: Self = Self(1i32);
+ pub const LowLight: Self = Self(2i32);
+}
+impl ::core::marker::Copy for SceneAnalysisRecommendation {}
+impl ::core::clone::Clone for SceneAnalysisRecommendation {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SceneAnalyzedEventArgs = *mut ::core::ffi::c_void;
+pub type SpeechCue = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedMetadataKind(pub i32);
+impl TimedMetadataKind {
+ pub const Caption: Self = Self(0i32);
+ pub const Chapter: Self = Self(1i32);
+ pub const Custom: Self = Self(2i32);
+ pub const Data: Self = Self(3i32);
+ pub const Description: Self = Self(4i32);
+ pub const Subtitle: Self = Self(5i32);
+ pub const ImageSubtitle: Self = Self(6i32);
+ pub const Speech: Self = Self(7i32);
+}
+impl ::core::marker::Copy for TimedMetadataKind {}
+impl ::core::clone::Clone for TimedMetadataKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedMetadataStreamDescriptor = *mut ::core::ffi::c_void;
+pub type TimedMetadataTrack = *mut ::core::ffi::c_void;
+pub type TimedMetadataTrackError = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedMetadataTrackErrorCode(pub i32);
+impl TimedMetadataTrackErrorCode {
+ pub const None: Self = Self(0i32);
+ pub const DataFormatError: Self = Self(1i32);
+ pub const NetworkError: Self = Self(2i32);
+ pub const InternalError: Self = Self(3i32);
+}
+impl ::core::marker::Copy for TimedMetadataTrackErrorCode {}
+impl ::core::clone::Clone for TimedMetadataTrackErrorCode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedMetadataTrackFailedEventArgs = *mut ::core::ffi::c_void;
+pub type TimedTextBouten = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextBoutenPosition(pub i32);
+impl TimedTextBoutenPosition {
+ pub const Before: Self = Self(0i32);
+ pub const After: Self = Self(1i32);
+ pub const Outside: Self = Self(2i32);
+}
+impl ::core::marker::Copy for TimedTextBoutenPosition {}
+impl ::core::clone::Clone for TimedTextBoutenPosition {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextBoutenType(pub i32);
+impl TimedTextBoutenType {
+ pub const None: Self = Self(0i32);
+ pub const Auto: Self = Self(1i32);
+ pub const FilledCircle: Self = Self(2i32);
+ pub const OpenCircle: Self = Self(3i32);
+ pub const FilledDot: Self = Self(4i32);
+ pub const OpenDot: Self = Self(5i32);
+ pub const FilledSesame: Self = Self(6i32);
+ pub const OpenSesame: Self = Self(7i32);
+}
+impl ::core::marker::Copy for TimedTextBoutenType {}
+impl ::core::clone::Clone for TimedTextBoutenType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedTextCue = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextDisplayAlignment(pub i32);
+impl TimedTextDisplayAlignment {
+ pub const Before: Self = Self(0i32);
+ pub const After: Self = Self(1i32);
+ pub const Center: Self = Self(2i32);
+}
+impl ::core::marker::Copy for TimedTextDisplayAlignment {}
+impl ::core::clone::Clone for TimedTextDisplayAlignment {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Core\"`*"]
+pub struct TimedTextDouble {
+ pub Value: f64,
+ pub Unit: TimedTextUnit,
+}
+impl ::core::marker::Copy for TimedTextDouble {}
+impl ::core::clone::Clone for TimedTextDouble {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextFlowDirection(pub i32);
+impl TimedTextFlowDirection {
+ pub const LeftToRight: Self = Self(0i32);
+ pub const RightToLeft: Self = Self(1i32);
+}
+impl ::core::marker::Copy for TimedTextFlowDirection {}
+impl ::core::clone::Clone for TimedTextFlowDirection {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextFontStyle(pub i32);
+impl TimedTextFontStyle {
+ pub const Normal: Self = Self(0i32);
+ pub const Oblique: Self = Self(1i32);
+ pub const Italic: Self = Self(2i32);
+}
+impl ::core::marker::Copy for TimedTextFontStyle {}
+impl ::core::clone::Clone for TimedTextFontStyle {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedTextLine = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextLineAlignment(pub i32);
+impl TimedTextLineAlignment {
+ pub const Start: Self = Self(0i32);
+ pub const End: Self = Self(1i32);
+ pub const Center: Self = Self(2i32);
+}
+impl ::core::marker::Copy for TimedTextLineAlignment {}
+impl ::core::clone::Clone for TimedTextLineAlignment {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Core\"`*"]
+pub struct TimedTextPadding {
+ pub Before: f64,
+ pub After: f64,
+ pub Start: f64,
+ pub End: f64,
+ pub Unit: TimedTextUnit,
+}
+impl ::core::marker::Copy for TimedTextPadding {}
+impl ::core::clone::Clone for TimedTextPadding {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Core\"`*"]
+pub struct TimedTextPoint {
+ pub X: f64,
+ pub Y: f64,
+ pub Unit: TimedTextUnit,
+}
+impl ::core::marker::Copy for TimedTextPoint {}
+impl ::core::clone::Clone for TimedTextPoint {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedTextRegion = *mut ::core::ffi::c_void;
+pub type TimedTextRuby = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextRubyAlign(pub i32);
+impl TimedTextRubyAlign {
+ pub const Center: Self = Self(0i32);
+ pub const Start: Self = Self(1i32);
+ pub const End: Self = Self(2i32);
+ pub const SpaceAround: Self = Self(3i32);
+ pub const SpaceBetween: Self = Self(4i32);
+ pub const WithBase: Self = Self(5i32);
+}
+impl ::core::marker::Copy for TimedTextRubyAlign {}
+impl ::core::clone::Clone for TimedTextRubyAlign {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextRubyPosition(pub i32);
+impl TimedTextRubyPosition {
+ pub const Before: Self = Self(0i32);
+ pub const After: Self = Self(1i32);
+ pub const Outside: Self = Self(2i32);
+}
+impl ::core::marker::Copy for TimedTextRubyPosition {}
+impl ::core::clone::Clone for TimedTextRubyPosition {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextRubyReserve(pub i32);
+impl TimedTextRubyReserve {
+ pub const None: Self = Self(0i32);
+ pub const Before: Self = Self(1i32);
+ pub const After: Self = Self(2i32);
+ pub const Both: Self = Self(3i32);
+ pub const Outside: Self = Self(4i32);
+}
+impl ::core::marker::Copy for TimedTextRubyReserve {}
+impl ::core::clone::Clone for TimedTextRubyReserve {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextScrollMode(pub i32);
+impl TimedTextScrollMode {
+ pub const Popon: Self = Self(0i32);
+ pub const Rollup: Self = Self(1i32);
+}
+impl ::core::marker::Copy for TimedTextScrollMode {}
+impl ::core::clone::Clone for TimedTextScrollMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Core\"`*"]
+pub struct TimedTextSize {
+ pub Height: f64,
+ pub Width: f64,
+ pub Unit: TimedTextUnit,
+}
+impl ::core::marker::Copy for TimedTextSize {}
+impl ::core::clone::Clone for TimedTextSize {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedTextSource = *mut ::core::ffi::c_void;
+pub type TimedTextSourceResolveResultEventArgs = *mut ::core::ffi::c_void;
+pub type TimedTextStyle = *mut ::core::ffi::c_void;
+pub type TimedTextSubformat = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextUnit(pub i32);
+impl TimedTextUnit {
+ pub const Pixels: Self = Self(0i32);
+ pub const Percentage: Self = Self(1i32);
+}
+impl ::core::marker::Copy for TimedTextUnit {}
+impl ::core::clone::Clone for TimedTextUnit {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextWeight(pub i32);
+impl TimedTextWeight {
+ pub const Normal: Self = Self(400i32);
+ pub const Bold: Self = Self(700i32);
+}
+impl ::core::marker::Copy for TimedTextWeight {}
+impl ::core::clone::Clone for TimedTextWeight {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextWrapping(pub i32);
+impl TimedTextWrapping {
+ pub const NoWrap: Self = Self(0i32);
+ pub const Wrap: Self = Self(1i32);
+}
+impl ::core::marker::Copy for TimedTextWrapping {}
+impl ::core::clone::Clone for TimedTextWrapping {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct TimedTextWritingMode(pub i32);
+impl TimedTextWritingMode {
+ pub const LeftRightTopBottom: Self = Self(0i32);
+ pub const RightLeftTopBottom: Self = Self(1i32);
+ pub const TopBottomRightLeft: Self = Self(2i32);
+ pub const TopBottomLeftRight: Self = Self(3i32);
+ pub const LeftRight: Self = Self(4i32);
+ pub const RightLeft: Self = Self(5i32);
+ pub const TopBottom: Self = Self(6i32);
+}
+impl ::core::marker::Copy for TimedTextWritingMode {}
+impl ::core::clone::Clone for TimedTextWritingMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type VideoStabilizationEffect = *mut ::core::ffi::c_void;
+pub type VideoStabilizationEffectDefinition = *mut ::core::ffi::c_void;
+pub type VideoStabilizationEffectEnabledChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Core\"`*"]
+#[repr(transparent)]
+pub struct VideoStabilizationEffectEnabledChangedReason(pub i32);
+impl VideoStabilizationEffectEnabledChangedReason {
+ pub const Programmatic: Self = Self(0i32);
+ pub const PixelRateTooHigh: Self = Self(1i32);
+ pub const RunningSlowly: Self = Self(2i32);
+}
+impl ::core::marker::Copy for VideoStabilizationEffectEnabledChangedReason {}
+impl ::core::clone::Clone for VideoStabilizationEffectEnabledChangedReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type VideoStreamDescriptor = *mut ::core::ffi::c_void;
+pub type VideoTrack = *mut ::core::ffi::c_void;
+pub type VideoTrackOpenFailedEventArgs = *mut ::core::ffi::c_void;
+pub type VideoTrackSupportInfo = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Devices/Core/mod.rs b/vendor/windows-sys/src/Windows/Media/Devices/Core/mod.rs
new file mode 100644
index 000000000..61d71dd5d
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Devices/Core/mod.rs
@@ -0,0 +1,29 @@
+pub type CameraIntrinsics = *mut ::core::ffi::c_void;
+pub type DepthCorrelatedCoordinateMapper = *mut ::core::ffi::c_void;
+pub type FrameControlCapabilities = *mut ::core::ffi::c_void;
+pub type FrameController = *mut ::core::ffi::c_void;
+pub type FrameExposureCapabilities = *mut ::core::ffi::c_void;
+pub type FrameExposureCompensationCapabilities = *mut ::core::ffi::c_void;
+pub type FrameExposureCompensationControl = *mut ::core::ffi::c_void;
+pub type FrameExposureControl = *mut ::core::ffi::c_void;
+pub type FrameFlashCapabilities = *mut ::core::ffi::c_void;
+pub type FrameFlashControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices_Core\"`*"]
+#[repr(transparent)]
+pub struct FrameFlashMode(pub i32);
+impl FrameFlashMode {
+ pub const Disable: Self = Self(0i32);
+ pub const Enable: Self = Self(1i32);
+ pub const Global: Self = Self(2i32);
+}
+impl ::core::marker::Copy for FrameFlashMode {}
+impl ::core::clone::Clone for FrameFlashMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type FrameFocusCapabilities = *mut ::core::ffi::c_void;
+pub type FrameFocusControl = *mut ::core::ffi::c_void;
+pub type FrameIsoSpeedCapabilities = *mut ::core::ffi::c_void;
+pub type FrameIsoSpeedControl = *mut ::core::ffi::c_void;
+pub type VariablePhotoSequenceController = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Devices/mod.rs b/vendor/windows-sys/src/Windows/Media/Devices/mod.rs
new file mode 100644
index 000000000..93a3f7d26
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Devices/mod.rs
@@ -0,0 +1,472 @@
+#[cfg(feature = "Media_Devices_Core")]
+pub mod Core;
+pub type AdvancedPhotoCaptureSettings = *mut ::core::ffi::c_void;
+pub type AdvancedPhotoControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct AdvancedPhotoMode(pub i32);
+impl AdvancedPhotoMode {
+ pub const Auto: Self = Self(0i32);
+ pub const Standard: Self = Self(1i32);
+ pub const Hdr: Self = Self(2i32);
+ pub const LowLight: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AdvancedPhotoMode {}
+impl ::core::clone::Clone for AdvancedPhotoMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioDeviceController = *mut ::core::ffi::c_void;
+pub type AudioDeviceModule = *mut ::core::ffi::c_void;
+pub type AudioDeviceModuleNotificationEventArgs = *mut ::core::ffi::c_void;
+pub type AudioDeviceModulesManager = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct AudioDeviceRole(pub i32);
+impl AudioDeviceRole {
+ pub const Default: Self = Self(0i32);
+ pub const Communications: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AudioDeviceRole {}
+impl ::core::clone::Clone for AudioDeviceRole {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct AutoFocusRange(pub i32);
+impl AutoFocusRange {
+ pub const FullRange: Self = Self(0i32);
+ pub const Macro: Self = Self(1i32);
+ pub const Normal: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AutoFocusRange {}
+impl ::core::clone::Clone for AutoFocusRange {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CallControl = *mut ::core::ffi::c_void;
+pub type CallControlEventHandler = *mut ::core::ffi::c_void;
+pub type CameraOcclusionInfo = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct CameraOcclusionKind(pub i32);
+impl CameraOcclusionKind {
+ pub const Lid: Self = Self(0i32);
+ pub const CameraHardware: Self = Self(1i32);
+}
+impl ::core::marker::Copy for CameraOcclusionKind {}
+impl ::core::clone::Clone for CameraOcclusionKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CameraOcclusionState = *mut ::core::ffi::c_void;
+pub type CameraOcclusionStateChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct CameraStreamState(pub i32);
+impl CameraStreamState {
+ pub const NotStreaming: Self = Self(0i32);
+ pub const Streaming: Self = Self(1i32);
+ pub const BlockedForPrivacy: Self = Self(2i32);
+ pub const Shutdown: Self = Self(3i32);
+}
+impl ::core::marker::Copy for CameraStreamState {}
+impl ::core::clone::Clone for CameraStreamState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct CaptureSceneMode(pub i32);
+impl CaptureSceneMode {
+ pub const Auto: Self = Self(0i32);
+ pub const Manual: Self = Self(1i32);
+ pub const Macro: Self = Self(2i32);
+ pub const Portrait: Self = Self(3i32);
+ pub const Sport: Self = Self(4i32);
+ pub const Snow: Self = Self(5i32);
+ pub const Night: Self = Self(6i32);
+ pub const Beach: Self = Self(7i32);
+ pub const Sunset: Self = Self(8i32);
+ pub const Candlelight: Self = Self(9i32);
+ pub const Landscape: Self = Self(10i32);
+ pub const NightPortrait: Self = Self(11i32);
+ pub const Backlit: Self = Self(12i32);
+}
+impl ::core::marker::Copy for CaptureSceneMode {}
+impl ::core::clone::Clone for CaptureSceneMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct CaptureUse(pub i32);
+impl CaptureUse {
+ pub const None: Self = Self(0i32);
+ pub const Photo: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+}
+impl ::core::marker::Copy for CaptureUse {}
+impl ::core::clone::Clone for CaptureUse {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct ColorTemperaturePreset(pub i32);
+impl ColorTemperaturePreset {
+ pub const Auto: Self = Self(0i32);
+ pub const Manual: Self = Self(1i32);
+ pub const Cloudy: Self = Self(2i32);
+ pub const Daylight: Self = Self(3i32);
+ pub const Flash: Self = Self(4i32);
+ pub const Fluorescent: Self = Self(5i32);
+ pub const Tungsten: Self = Self(6i32);
+ pub const Candlelight: Self = Self(7i32);
+}
+impl ::core::marker::Copy for ColorTemperaturePreset {}
+impl ::core::clone::Clone for ColorTemperaturePreset {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type DefaultAudioCaptureDeviceChangedEventArgs = *mut ::core::ffi::c_void;
+pub type DefaultAudioRenderDeviceChangedEventArgs = *mut ::core::ffi::c_void;
+pub type DialRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type DialRequestedEventHandler = *mut ::core::ffi::c_void;
+pub type DigitalWindowBounds = *mut ::core::ffi::c_void;
+pub type DigitalWindowCapability = *mut ::core::ffi::c_void;
+pub type DigitalWindowControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct DigitalWindowMode(pub i32);
+impl DigitalWindowMode {
+ pub const Off: Self = Self(0i32);
+ pub const On: Self = Self(1i32);
+ pub const Auto: Self = Self(2i32);
+}
+impl ::core::marker::Copy for DigitalWindowMode {}
+impl ::core::clone::Clone for DigitalWindowMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type ExposureCompensationControl = *mut ::core::ffi::c_void;
+pub type ExposureControl = *mut ::core::ffi::c_void;
+pub type ExposurePriorityVideoControl = *mut ::core::ffi::c_void;
+pub type FlashControl = *mut ::core::ffi::c_void;
+pub type FocusControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct FocusMode(pub i32);
+impl FocusMode {
+ pub const Auto: Self = Self(0i32);
+ pub const Single: Self = Self(1i32);
+ pub const Continuous: Self = Self(2i32);
+ pub const Manual: Self = Self(3i32);
+}
+impl ::core::marker::Copy for FocusMode {}
+impl ::core::clone::Clone for FocusMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct FocusPreset(pub i32);
+impl FocusPreset {
+ pub const Auto: Self = Self(0i32);
+ pub const Manual: Self = Self(1i32);
+ pub const AutoMacro: Self = Self(2i32);
+ pub const AutoNormal: Self = Self(3i32);
+ pub const AutoInfinity: Self = Self(4i32);
+ pub const AutoHyperfocal: Self = Self(5i32);
+}
+impl ::core::marker::Copy for FocusPreset {}
+impl ::core::clone::Clone for FocusPreset {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type FocusSettings = *mut ::core::ffi::c_void;
+pub type HdrVideoControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct HdrVideoMode(pub i32);
+impl HdrVideoMode {
+ pub const Off: Self = Self(0i32);
+ pub const On: Self = Self(1i32);
+ pub const Auto: Self = Self(2i32);
+}
+impl ::core::marker::Copy for HdrVideoMode {}
+impl ::core::clone::Clone for HdrVideoMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type IDefaultAudioDeviceChangedEventArgs = *mut ::core::ffi::c_void;
+pub type IMediaDeviceController = *mut ::core::ffi::c_void;
+pub type InfraredTorchControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct InfraredTorchMode(pub i32);
+impl InfraredTorchMode {
+ pub const Off: Self = Self(0i32);
+ pub const On: Self = Self(1i32);
+ pub const AlternatingFrameIllumination: Self = Self(2i32);
+}
+impl ::core::marker::Copy for InfraredTorchMode {}
+impl ::core::clone::Clone for InfraredTorchMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type IsoSpeedControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct IsoSpeedPreset(pub i32);
+#[cfg(feature = "deprecated")]
+impl IsoSpeedPreset {
+ pub const Auto: Self = Self(0i32);
+ pub const Iso50: Self = Self(1i32);
+ pub const Iso80: Self = Self(2i32);
+ pub const Iso100: Self = Self(3i32);
+ pub const Iso200: Self = Self(4i32);
+ pub const Iso400: Self = Self(5i32);
+ pub const Iso800: Self = Self(6i32);
+ pub const Iso1600: Self = Self(7i32);
+ pub const Iso3200: Self = Self(8i32);
+ pub const Iso6400: Self = Self(9i32);
+ pub const Iso12800: Self = Self(10i32);
+ pub const Iso25600: Self = Self(11i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for IsoSpeedPreset {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for IsoSpeedPreset {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type KeypadPressedEventArgs = *mut ::core::ffi::c_void;
+pub type KeypadPressedEventHandler = *mut ::core::ffi::c_void;
+pub type LowLagPhotoControl = *mut ::core::ffi::c_void;
+pub type LowLagPhotoSequenceControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct ManualFocusDistance(pub i32);
+impl ManualFocusDistance {
+ pub const Infinity: Self = Self(0i32);
+ pub const Hyperfocal: Self = Self(1i32);
+ pub const Nearest: Self = Self(2i32);
+}
+impl ::core::marker::Copy for ManualFocusDistance {}
+impl ::core::clone::Clone for ManualFocusDistance {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct MediaCaptureFocusState(pub i32);
+impl MediaCaptureFocusState {
+ pub const Uninitialized: Self = Self(0i32);
+ pub const Lost: Self = Self(1i32);
+ pub const Searching: Self = Self(2i32);
+ pub const Focused: Self = Self(3i32);
+ pub const Failed: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaCaptureFocusState {}
+impl ::core::clone::Clone for MediaCaptureFocusState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct MediaCaptureOptimization(pub i32);
+impl MediaCaptureOptimization {
+ pub const Default: Self = Self(0i32);
+ pub const Quality: Self = Self(1i32);
+ pub const Latency: Self = Self(2i32);
+ pub const Power: Self = Self(3i32);
+ pub const LatencyThenQuality: Self = Self(4i32);
+ pub const LatencyThenPower: Self = Self(5i32);
+ pub const PowerAndQuality: Self = Self(6i32);
+}
+impl ::core::marker::Copy for MediaCaptureOptimization {}
+impl ::core::clone::Clone for MediaCaptureOptimization {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct MediaCapturePauseBehavior(pub i32);
+impl MediaCapturePauseBehavior {
+ pub const RetainHardwareResources: Self = Self(0i32);
+ pub const ReleaseHardwareResources: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaCapturePauseBehavior {}
+impl ::core::clone::Clone for MediaCapturePauseBehavior {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaDeviceControl = *mut ::core::ffi::c_void;
+pub type MediaDeviceControlCapabilities = *mut ::core::ffi::c_void;
+pub type ModuleCommandResult = *mut ::core::ffi::c_void;
+pub type OpticalImageStabilizationControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct OpticalImageStabilizationMode(pub i32);
+impl OpticalImageStabilizationMode {
+ pub const Off: Self = Self(0i32);
+ pub const On: Self = Self(1i32);
+ pub const Auto: Self = Self(2i32);
+}
+impl ::core::marker::Copy for OpticalImageStabilizationMode {}
+impl ::core::clone::Clone for OpticalImageStabilizationMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PanelBasedOptimizationControl = *mut ::core::ffi::c_void;
+pub type PhotoConfirmationControl = *mut ::core::ffi::c_void;
+pub type RedialRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type RedialRequestedEventHandler = *mut ::core::ffi::c_void;
+pub type RegionOfInterest = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct RegionOfInterestType(pub i32);
+impl RegionOfInterestType {
+ pub const Unknown: Self = Self(0i32);
+ pub const Face: Self = Self(1i32);
+}
+impl ::core::marker::Copy for RegionOfInterestType {}
+impl ::core::clone::Clone for RegionOfInterestType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type RegionsOfInterestControl = *mut ::core::ffi::c_void;
+pub type SceneModeControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct SendCommandStatus(pub i32);
+impl SendCommandStatus {
+ pub const Success: Self = Self(0i32);
+ pub const DeviceNotAvailable: Self = Self(1i32);
+}
+impl ::core::marker::Copy for SendCommandStatus {}
+impl ::core::clone::Clone for SendCommandStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct TelephonyKey(pub i32);
+impl TelephonyKey {
+ pub const D0: Self = Self(0i32);
+ pub const D1: Self = Self(1i32);
+ pub const D2: Self = Self(2i32);
+ pub const D3: Self = Self(3i32);
+ pub const D4: Self = Self(4i32);
+ pub const D5: Self = Self(5i32);
+ pub const D6: Self = Self(6i32);
+ pub const D7: Self = Self(7i32);
+ pub const D8: Self = Self(8i32);
+ pub const D9: Self = Self(9i32);
+ pub const Star: Self = Self(10i32);
+ pub const Pound: Self = Self(11i32);
+ pub const A: Self = Self(12i32);
+ pub const B: Self = Self(13i32);
+ pub const C: Self = Self(14i32);
+ pub const D: Self = Self(15i32);
+}
+impl ::core::marker::Copy for TelephonyKey {}
+impl ::core::clone::Clone for TelephonyKey {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TorchControl = *mut ::core::ffi::c_void;
+pub type VideoDeviceController = *mut ::core::ffi::c_void;
+pub type VideoDeviceControllerGetDevicePropertyResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct VideoDeviceControllerGetDevicePropertyStatus(pub i32);
+impl VideoDeviceControllerGetDevicePropertyStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const BufferTooSmall: Self = Self(2i32);
+ pub const NotSupported: Self = Self(3i32);
+ pub const DeviceNotAvailable: Self = Self(4i32);
+ pub const MaxPropertyValueSizeTooSmall: Self = Self(5i32);
+ pub const MaxPropertyValueSizeRequired: Self = Self(6i32);
+}
+impl ::core::marker::Copy for VideoDeviceControllerGetDevicePropertyStatus {}
+impl ::core::clone::Clone for VideoDeviceControllerGetDevicePropertyStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct VideoDeviceControllerSetDevicePropertyStatus(pub i32);
+impl VideoDeviceControllerSetDevicePropertyStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const NotSupported: Self = Self(2i32);
+ pub const InvalidValue: Self = Self(3i32);
+ pub const DeviceNotAvailable: Self = Self(4i32);
+ pub const NotInControl: Self = Self(5i32);
+}
+impl ::core::marker::Copy for VideoDeviceControllerSetDevicePropertyStatus {}
+impl ::core::clone::Clone for VideoDeviceControllerSetDevicePropertyStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type VideoTemporalDenoisingControl = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct VideoTemporalDenoisingMode(pub i32);
+impl VideoTemporalDenoisingMode {
+ pub const Off: Self = Self(0i32);
+ pub const On: Self = Self(1i32);
+ pub const Auto: Self = Self(2i32);
+}
+impl ::core::marker::Copy for VideoTemporalDenoisingMode {}
+impl ::core::clone::Clone for VideoTemporalDenoisingMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type WhiteBalanceControl = *mut ::core::ffi::c_void;
+pub type ZoomControl = *mut ::core::ffi::c_void;
+pub type ZoomSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Devices\"`*"]
+#[repr(transparent)]
+pub struct ZoomTransitionMode(pub i32);
+impl ZoomTransitionMode {
+ pub const Auto: Self = Self(0i32);
+ pub const Direct: Self = Self(1i32);
+ pub const Smooth: Self = Self(2i32);
+}
+impl ::core::marker::Copy for ZoomTransitionMode {}
+impl ::core::clone::Clone for ZoomTransitionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/DialProtocol/mod.rs b/vendor/windows-sys/src/Windows/Media/DialProtocol/mod.rs
new file mode 100644
index 000000000..e3b339f82
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/DialProtocol/mod.rs
@@ -0,0 +1,70 @@
+pub type DialApp = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_DialProtocol\"`*"]
+#[repr(transparent)]
+pub struct DialAppLaunchResult(pub i32);
+impl DialAppLaunchResult {
+ pub const Launched: Self = Self(0i32);
+ pub const FailedToLaunch: Self = Self(1i32);
+ pub const NotFound: Self = Self(2i32);
+ pub const NetworkFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for DialAppLaunchResult {}
+impl ::core::clone::Clone for DialAppLaunchResult {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_DialProtocol\"`*"]
+#[repr(transparent)]
+pub struct DialAppState(pub i32);
+impl DialAppState {
+ pub const Unknown: Self = Self(0i32);
+ pub const Stopped: Self = Self(1i32);
+ pub const Running: Self = Self(2i32);
+ pub const NetworkFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for DialAppState {}
+impl ::core::clone::Clone for DialAppState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type DialAppStateDetails = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_DialProtocol\"`*"]
+#[repr(transparent)]
+pub struct DialAppStopResult(pub i32);
+impl DialAppStopResult {
+ pub const Stopped: Self = Self(0i32);
+ pub const StopFailed: Self = Self(1i32);
+ pub const OperationNotSupported: Self = Self(2i32);
+ pub const NetworkFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for DialAppStopResult {}
+impl ::core::clone::Clone for DialAppStopResult {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type DialDevice = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_DialProtocol\"`*"]
+#[repr(transparent)]
+pub struct DialDeviceDisplayStatus(pub i32);
+impl DialDeviceDisplayStatus {
+ pub const None: Self = Self(0i32);
+ pub const Connecting: Self = Self(1i32);
+ pub const Connected: Self = Self(2i32);
+ pub const Disconnecting: Self = Self(3i32);
+ pub const Disconnected: Self = Self(4i32);
+ pub const Error: Self = Self(5i32);
+}
+impl ::core::marker::Copy for DialDeviceDisplayStatus {}
+impl ::core::clone::Clone for DialDeviceDisplayStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type DialDevicePicker = *mut ::core::ffi::c_void;
+pub type DialDevicePickerFilter = *mut ::core::ffi::c_void;
+pub type DialDeviceSelectedEventArgs = *mut ::core::ffi::c_void;
+pub type DialDisconnectButtonClickedEventArgs = *mut ::core::ffi::c_void;
+pub type DialReceiverApp = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Editing/mod.rs b/vendor/windows-sys/src/Windows/Media/Editing/mod.rs
new file mode 100644
index 000000000..bfbb8f7d0
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Editing/mod.rs
@@ -0,0 +1,32 @@
+pub type BackgroundAudioTrack = *mut ::core::ffi::c_void;
+pub type EmbeddedAudioTrack = *mut ::core::ffi::c_void;
+pub type MediaClip = *mut ::core::ffi::c_void;
+pub type MediaComposition = *mut ::core::ffi::c_void;
+pub type MediaOverlay = *mut ::core::ffi::c_void;
+pub type MediaOverlayLayer = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Editing\"`*"]
+#[repr(transparent)]
+pub struct MediaTrimmingPreference(pub i32);
+impl MediaTrimmingPreference {
+ pub const Fast: Self = Self(0i32);
+ pub const Precise: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaTrimmingPreference {}
+impl ::core::clone::Clone for MediaTrimmingPreference {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Editing\"`*"]
+#[repr(transparent)]
+pub struct VideoFramePrecision(pub i32);
+impl VideoFramePrecision {
+ pub const NearestFrame: Self = Self(0i32);
+ pub const NearestKeyFrame: Self = Self(1i32);
+}
+impl ::core::marker::Copy for VideoFramePrecision {}
+impl ::core::clone::Clone for VideoFramePrecision {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Effects/mod.rs b/vendor/windows-sys/src/Windows/Media/Effects/mod.rs
new file mode 100644
index 000000000..d170a9e0d
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Effects/mod.rs
@@ -0,0 +1,78 @@
+pub type AudioCaptureEffectsManager = *mut ::core::ffi::c_void;
+pub type AudioEffect = *mut ::core::ffi::c_void;
+pub type AudioEffectDefinition = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Effects\"`*"]
+#[repr(transparent)]
+pub struct AudioEffectType(pub i32);
+impl AudioEffectType {
+ pub const Other: Self = Self(0i32);
+ pub const AcousticEchoCancellation: Self = Self(1i32);
+ pub const NoiseSuppression: Self = Self(2i32);
+ pub const AutomaticGainControl: Self = Self(3i32);
+ pub const BeamForming: Self = Self(4i32);
+ pub const ConstantToneRemoval: Self = Self(5i32);
+ pub const Equalizer: Self = Self(6i32);
+ pub const LoudnessEqualizer: Self = Self(7i32);
+ pub const BassBoost: Self = Self(8i32);
+ pub const VirtualSurround: Self = Self(9i32);
+ pub const VirtualHeadphones: Self = Self(10i32);
+ pub const SpeakerFill: Self = Self(11i32);
+ pub const RoomCorrection: Self = Self(12i32);
+ pub const BassManagement: Self = Self(13i32);
+ pub const EnvironmentalEffects: Self = Self(14i32);
+ pub const SpeakerProtection: Self = Self(15i32);
+ pub const SpeakerCompensation: Self = Self(16i32);
+ pub const DynamicRangeCompression: Self = Self(17i32);
+ pub const FarFieldBeamForming: Self = Self(18i32);
+ pub const DeepNoiseSuppression: Self = Self(19i32);
+}
+impl ::core::marker::Copy for AudioEffectType {}
+impl ::core::clone::Clone for AudioEffectType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioRenderEffectsManager = *mut ::core::ffi::c_void;
+pub type CompositeVideoFrameContext = *mut ::core::ffi::c_void;
+pub type IAudioEffectDefinition = *mut ::core::ffi::c_void;
+pub type IBasicAudioEffect = *mut ::core::ffi::c_void;
+pub type IBasicVideoEffect = *mut ::core::ffi::c_void;
+pub type IVideoCompositor = *mut ::core::ffi::c_void;
+pub type IVideoCompositorDefinition = *mut ::core::ffi::c_void;
+pub type IVideoEffectDefinition = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Effects\"`*"]
+#[repr(transparent)]
+pub struct MediaEffectClosedReason(pub i32);
+impl MediaEffectClosedReason {
+ pub const Done: Self = Self(0i32);
+ pub const UnknownError: Self = Self(1i32);
+ pub const UnsupportedEncodingFormat: Self = Self(2i32);
+ pub const EffectCurrentlyUnloaded: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaEffectClosedReason {}
+impl ::core::clone::Clone for MediaEffectClosedReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Effects\"`*"]
+#[repr(transparent)]
+pub struct MediaMemoryTypes(pub i32);
+impl MediaMemoryTypes {
+ pub const Gpu: Self = Self(0i32);
+ pub const Cpu: Self = Self(1i32);
+ pub const GpuAndCpu: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MediaMemoryTypes {}
+impl ::core::clone::Clone for MediaMemoryTypes {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type ProcessAudioFrameContext = *mut ::core::ffi::c_void;
+pub type ProcessVideoFrameContext = *mut ::core::ffi::c_void;
+pub type SlowMotionEffectDefinition = *mut ::core::ffi::c_void;
+pub type VideoCompositorDefinition = *mut ::core::ffi::c_void;
+pub type VideoEffectDefinition = *mut ::core::ffi::c_void;
+pub type VideoTransformEffectDefinition = *mut ::core::ffi::c_void;
+pub type VideoTransformSphericalProjection = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/FaceAnalysis/mod.rs b/vendor/windows-sys/src/Windows/Media/FaceAnalysis/mod.rs
new file mode 100644
index 000000000..c9260665c
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/FaceAnalysis/mod.rs
@@ -0,0 +1,3 @@
+pub type DetectedFace = *mut ::core::ffi::c_void;
+pub type FaceDetector = *mut ::core::ffi::c_void;
+pub type FaceTracker = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Import/mod.rs b/vendor/windows-sys/src/Windows/Media/Import/mod.rs
new file mode 100644
index 000000000..5f89b83d0
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Import/mod.rs
@@ -0,0 +1,204 @@
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportAccessMode(pub i32);
+impl PhotoImportAccessMode {
+ pub const ReadWrite: Self = Self(0i32);
+ pub const ReadOnly: Self = Self(1i32);
+ pub const ReadAndDelete: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoImportAccessMode {}
+impl ::core::clone::Clone for PhotoImportAccessMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportConnectionTransport(pub i32);
+impl PhotoImportConnectionTransport {
+ pub const Unknown: Self = Self(0i32);
+ pub const Usb: Self = Self(1i32);
+ pub const IP: Self = Self(2i32);
+ pub const Bluetooth: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PhotoImportConnectionTransport {}
+impl ::core::clone::Clone for PhotoImportConnectionTransport {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportContentType(pub i32);
+impl PhotoImportContentType {
+ pub const Unknown: Self = Self(0i32);
+ pub const Image: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoImportContentType {}
+impl ::core::clone::Clone for PhotoImportContentType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportContentTypeFilter(pub i32);
+impl PhotoImportContentTypeFilter {
+ pub const OnlyImages: Self = Self(0i32);
+ pub const OnlyVideos: Self = Self(1i32);
+ pub const ImagesAndVideos: Self = Self(2i32);
+ pub const ImagesAndVideosFromCameraRoll: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PhotoImportContentTypeFilter {}
+impl ::core::clone::Clone for PhotoImportContentTypeFilter {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoImportDeleteImportedItemsFromSourceResult = *mut ::core::ffi::c_void;
+pub type PhotoImportFindItemsResult = *mut ::core::ffi::c_void;
+pub type PhotoImportImportItemsResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportImportMode(pub i32);
+impl PhotoImportImportMode {
+ pub const ImportEverything: Self = Self(0i32);
+ pub const IgnoreSidecars: Self = Self(1i32);
+ pub const IgnoreSiblings: Self = Self(2i32);
+ pub const IgnoreSidecarsAndSiblings: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PhotoImportImportMode {}
+impl ::core::clone::Clone for PhotoImportImportMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoImportItem = *mut ::core::ffi::c_void;
+pub type PhotoImportItemImportedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportItemSelectionMode(pub i32);
+impl PhotoImportItemSelectionMode {
+ pub const SelectAll: Self = Self(0i32);
+ pub const SelectNone: Self = Self(1i32);
+ pub const SelectNew: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoImportItemSelectionMode {}
+impl ::core::clone::Clone for PhotoImportItemSelectionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoImportOperation = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportPowerSource(pub i32);
+impl PhotoImportPowerSource {
+ pub const Unknown: Self = Self(0i32);
+ pub const Battery: Self = Self(1i32);
+ pub const External: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoImportPowerSource {}
+impl ::core::clone::Clone for PhotoImportPowerSource {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[repr(C)]
+#[doc = "*Required features: `\"Media_Import\"`*"]
+pub struct PhotoImportProgress {
+ pub ItemsImported: u32,
+ pub TotalItemsToImport: u32,
+ pub BytesImported: u64,
+ pub TotalBytesToImport: u64,
+ pub ImportProgress: f64,
+}
+impl ::core::marker::Copy for PhotoImportProgress {}
+impl ::core::clone::Clone for PhotoImportProgress {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoImportSelectionChangedEventArgs = *mut ::core::ffi::c_void;
+pub type PhotoImportSession = *mut ::core::ffi::c_void;
+pub type PhotoImportSidecar = *mut ::core::ffi::c_void;
+pub type PhotoImportSource = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportSourceType(pub i32);
+impl PhotoImportSourceType {
+ pub const Generic: Self = Self(0i32);
+ pub const Camera: Self = Self(1i32);
+ pub const MediaPlayer: Self = Self(2i32);
+ pub const Phone: Self = Self(3i32);
+ pub const Video: Self = Self(4i32);
+ pub const PersonalInfoManager: Self = Self(5i32);
+ pub const AudioRecorder: Self = Self(6i32);
+}
+impl ::core::marker::Copy for PhotoImportSourceType {}
+impl ::core::clone::Clone for PhotoImportSourceType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportStage(pub i32);
+impl PhotoImportStage {
+ pub const NotStarted: Self = Self(0i32);
+ pub const FindingItems: Self = Self(1i32);
+ pub const ImportingItems: Self = Self(2i32);
+ pub const DeletingImportedItemsFromSource: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PhotoImportStage {}
+impl ::core::clone::Clone for PhotoImportStage {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoImportStorageMedium = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportStorageMediumType(pub i32);
+impl PhotoImportStorageMediumType {
+ pub const Undefined: Self = Self(0i32);
+ pub const Fixed: Self = Self(1i32);
+ pub const Removable: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoImportStorageMediumType {}
+impl ::core::clone::Clone for PhotoImportStorageMediumType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportSubfolderCreationMode(pub i32);
+impl PhotoImportSubfolderCreationMode {
+ pub const DoNotCreateSubfolders: Self = Self(0i32);
+ pub const CreateSubfoldersFromFileDate: Self = Self(1i32);
+ pub const CreateSubfoldersFromExifDate: Self = Self(2i32);
+ pub const KeepOriginalFolderStructure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PhotoImportSubfolderCreationMode {}
+impl ::core::clone::Clone for PhotoImportSubfolderCreationMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Import\"`*"]
+#[repr(transparent)]
+pub struct PhotoImportSubfolderDateFormat(pub i32);
+impl PhotoImportSubfolderDateFormat {
+ pub const Year: Self = Self(0i32);
+ pub const YearMonth: Self = Self(1i32);
+ pub const YearMonthDay: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PhotoImportSubfolderDateFormat {}
+impl ::core::clone::Clone for PhotoImportSubfolderDateFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PhotoImportVideoSegment = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/MediaProperties/mod.rs b/vendor/windows-sys/src/Windows/Media/MediaProperties/mod.rs
new file mode 100644
index 000000000..44dd62d3e
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/MediaProperties/mod.rs
@@ -0,0 +1,129 @@
+pub type AudioEncodingProperties = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct AudioEncodingQuality(pub i32);
+impl AudioEncodingQuality {
+ pub const Auto: Self = Self(0i32);
+ pub const High: Self = Self(1i32);
+ pub const Medium: Self = Self(2i32);
+ pub const Low: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AudioEncodingQuality {}
+impl ::core::clone::Clone for AudioEncodingQuality {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type ContainerEncodingProperties = *mut ::core::ffi::c_void;
+pub type IMediaEncodingProperties = *mut ::core::ffi::c_void;
+pub type ImageEncodingProperties = *mut ::core::ffi::c_void;
+pub type MediaEncodingProfile = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct MediaMirroringOptions(pub u32);
+impl MediaMirroringOptions {
+ pub const None: Self = Self(0u32);
+ pub const Horizontal: Self = Self(1u32);
+ pub const Vertical: Self = Self(2u32);
+}
+impl ::core::marker::Copy for MediaMirroringOptions {}
+impl ::core::clone::Clone for MediaMirroringOptions {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct MediaPixelFormat(pub i32);
+impl MediaPixelFormat {
+ pub const Nv12: Self = Self(0i32);
+ pub const Bgra8: Self = Self(1i32);
+ pub const P010: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MediaPixelFormat {}
+impl ::core::clone::Clone for MediaPixelFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPropertySet = *mut ::core::ffi::c_void;
+pub type MediaRatio = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct MediaRotation(pub i32);
+impl MediaRotation {
+ pub const None: Self = Self(0i32);
+ pub const Clockwise90Degrees: Self = Self(1i32);
+ pub const Clockwise180Degrees: Self = Self(2i32);
+ pub const Clockwise270Degrees: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaRotation {}
+impl ::core::clone::Clone for MediaRotation {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct MediaThumbnailFormat(pub i32);
+impl MediaThumbnailFormat {
+ pub const Bmp: Self = Self(0i32);
+ pub const Bgra8: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaThumbnailFormat {}
+impl ::core::clone::Clone for MediaThumbnailFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct SphericalVideoFrameFormat(pub i32);
+impl SphericalVideoFrameFormat {
+ pub const None: Self = Self(0i32);
+ pub const Unsupported: Self = Self(1i32);
+ pub const Equirectangular: Self = Self(2i32);
+}
+impl ::core::marker::Copy for SphericalVideoFrameFormat {}
+impl ::core::clone::Clone for SphericalVideoFrameFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct StereoscopicVideoPackingMode(pub i32);
+impl StereoscopicVideoPackingMode {
+ pub const None: Self = Self(0i32);
+ pub const SideBySide: Self = Self(1i32);
+ pub const TopBottom: Self = Self(2i32);
+}
+impl ::core::marker::Copy for StereoscopicVideoPackingMode {}
+impl ::core::clone::Clone for StereoscopicVideoPackingMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedMetadataEncodingProperties = *mut ::core::ffi::c_void;
+pub type VideoEncodingProperties = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_MediaProperties\"`*"]
+#[repr(transparent)]
+pub struct VideoEncodingQuality(pub i32);
+impl VideoEncodingQuality {
+ pub const Auto: Self = Self(0i32);
+ pub const HD1080p: Self = Self(1i32);
+ pub const HD720p: Self = Self(2i32);
+ pub const Wvga: Self = Self(3i32);
+ pub const Ntsc: Self = Self(4i32);
+ pub const Pal: Self = Self(5i32);
+ pub const Vga: Self = Self(6i32);
+ pub const Qvga: Self = Self(7i32);
+ pub const Uhd2160p: Self = Self(8i32);
+ pub const Uhd4320p: Self = Self(9i32);
+}
+impl ::core::marker::Copy for VideoEncodingQuality {}
+impl ::core::clone::Clone for VideoEncodingQuality {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Miracast/mod.rs b/vendor/windows-sys/src/Windows/Media/Miracast/mod.rs
new file mode 100644
index 000000000..b49f59f36
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Miracast/mod.rs
@@ -0,0 +1,146 @@
+pub type MiracastReceiver = *mut ::core::ffi::c_void;
+pub type MiracastReceiverApplySettingsResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverApplySettingsStatus(pub i32);
+impl MiracastReceiverApplySettingsStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const MiracastNotSupported: Self = Self(2i32);
+ pub const AccessDenied: Self = Self(3i32);
+ pub const FriendlyNameTooLong: Self = Self(4i32);
+ pub const ModelNameTooLong: Self = Self(5i32);
+ pub const ModelNumberTooLong: Self = Self(6i32);
+ pub const InvalidSettings: Self = Self(7i32);
+}
+impl ::core::marker::Copy for MiracastReceiverApplySettingsStatus {}
+impl ::core::clone::Clone for MiracastReceiverApplySettingsStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverAuthorizationMethod(pub i32);
+impl MiracastReceiverAuthorizationMethod {
+ pub const None: Self = Self(0i32);
+ pub const ConfirmConnection: Self = Self(1i32);
+ pub const PinDisplayIfRequested: Self = Self(2i32);
+ pub const PinDisplayRequired: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MiracastReceiverAuthorizationMethod {}
+impl ::core::clone::Clone for MiracastReceiverAuthorizationMethod {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MiracastReceiverConnection = *mut ::core::ffi::c_void;
+pub type MiracastReceiverConnectionCreatedEventArgs = *mut ::core::ffi::c_void;
+pub type MiracastReceiverCursorImageChannel = *mut ::core::ffi::c_void;
+pub type MiracastReceiverCursorImageChannelSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverDisconnectReason(pub i32);
+impl MiracastReceiverDisconnectReason {
+ pub const Finished: Self = Self(0i32);
+ pub const AppSpecificError: Self = Self(1i32);
+ pub const ConnectionNotAccepted: Self = Self(2i32);
+ pub const DisconnectedByUser: Self = Self(3i32);
+ pub const FailedToStartStreaming: Self = Self(4i32);
+ pub const MediaDecodingError: Self = Self(5i32);
+ pub const MediaStreamingError: Self = Self(6i32);
+ pub const MediaDecryptionError: Self = Self(7i32);
+}
+impl ::core::marker::Copy for MiracastReceiverDisconnectReason {}
+impl ::core::clone::Clone for MiracastReceiverDisconnectReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MiracastReceiverDisconnectedEventArgs = *mut ::core::ffi::c_void;
+pub type MiracastReceiverGameControllerDevice = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverGameControllerDeviceUsageMode(pub i32);
+impl MiracastReceiverGameControllerDeviceUsageMode {
+ pub const AsGameController: Self = Self(0i32);
+ pub const AsMouseAndKeyboard: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MiracastReceiverGameControllerDeviceUsageMode {}
+impl ::core::clone::Clone for MiracastReceiverGameControllerDeviceUsageMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MiracastReceiverInputDevices = *mut ::core::ffi::c_void;
+pub type MiracastReceiverKeyboardDevice = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverListeningStatus(pub i32);
+impl MiracastReceiverListeningStatus {
+ pub const NotListening: Self = Self(0i32);
+ pub const Listening: Self = Self(1i32);
+ pub const ConnectionPending: Self = Self(2i32);
+ pub const Connected: Self = Self(3i32);
+ pub const DisabledByPolicy: Self = Self(4i32);
+ pub const TemporarilyDisabled: Self = Self(5i32);
+}
+impl ::core::marker::Copy for MiracastReceiverListeningStatus {}
+impl ::core::clone::Clone for MiracastReceiverListeningStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MiracastReceiverMediaSourceCreatedEventArgs = *mut ::core::ffi::c_void;
+pub type MiracastReceiverSession = *mut ::core::ffi::c_void;
+pub type MiracastReceiverSessionStartResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverSessionStartStatus(pub i32);
+impl MiracastReceiverSessionStartStatus {
+ pub const Success: Self = Self(0i32);
+ pub const UnknownFailure: Self = Self(1i32);
+ pub const MiracastNotSupported: Self = Self(2i32);
+ pub const AccessDenied: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MiracastReceiverSessionStartStatus {}
+impl ::core::clone::Clone for MiracastReceiverSessionStartStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MiracastReceiverSettings = *mut ::core::ffi::c_void;
+pub type MiracastReceiverStatus = *mut ::core::ffi::c_void;
+pub type MiracastReceiverStreamControl = *mut ::core::ffi::c_void;
+pub type MiracastReceiverVideoStreamSettings = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastReceiverWiFiStatus(pub i32);
+impl MiracastReceiverWiFiStatus {
+ pub const MiracastSupportUndetermined: Self = Self(0i32);
+ pub const MiracastNotSupported: Self = Self(1i32);
+ pub const MiracastSupportNotOptimized: Self = Self(2i32);
+ pub const MiracastSupported: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MiracastReceiverWiFiStatus {}
+impl ::core::clone::Clone for MiracastReceiverWiFiStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MiracastTransmitter = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Miracast\"`*"]
+#[repr(transparent)]
+pub struct MiracastTransmitterAuthorizationStatus(pub i32);
+impl MiracastTransmitterAuthorizationStatus {
+ pub const Undecided: Self = Self(0i32);
+ pub const Allowed: Self = Self(1i32);
+ pub const AlwaysPrompt: Self = Self(2i32);
+ pub const Blocked: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MiracastTransmitterAuthorizationStatus {}
+impl ::core::clone::Clone for MiracastTransmitterAuthorizationStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Ocr/mod.rs b/vendor/windows-sys/src/Windows/Media/Ocr/mod.rs
new file mode 100644
index 000000000..05afcd1eb
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Ocr/mod.rs
@@ -0,0 +1,4 @@
+pub type OcrEngine = *mut ::core::ffi::c_void;
+pub type OcrLine = *mut ::core::ffi::c_void;
+pub type OcrResult = *mut ::core::ffi::c_void;
+pub type OcrWord = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/PlayTo/mod.rs b/vendor/windows-sys/src/Windows/Media/PlayTo/mod.rs
new file mode 100644
index 000000000..c01048682
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/PlayTo/mod.rs
@@ -0,0 +1,54 @@
+pub type CurrentTimeChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type MuteChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type PlayToConnection = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_PlayTo\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct PlayToConnectionError(pub i32);
+#[cfg(feature = "deprecated")]
+impl PlayToConnectionError {
+ pub const None: Self = Self(0i32);
+ pub const DeviceNotResponding: Self = Self(1i32);
+ pub const DeviceError: Self = Self(2i32);
+ pub const DeviceLocked: Self = Self(3i32);
+ pub const ProtectedPlaybackFailed: Self = Self(4i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for PlayToConnectionError {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for PlayToConnectionError {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PlayToConnectionErrorEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_PlayTo\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct PlayToConnectionState(pub i32);
+#[cfg(feature = "deprecated")]
+impl PlayToConnectionState {
+ pub const Disconnected: Self = Self(0i32);
+ pub const Connected: Self = Self(1i32);
+ pub const Rendering: Self = Self(2i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for PlayToConnectionState {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for PlayToConnectionState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PlayToConnectionStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type PlayToConnectionTransferredEventArgs = *mut ::core::ffi::c_void;
+pub type PlayToManager = *mut ::core::ffi::c_void;
+pub type PlayToReceiver = *mut ::core::ffi::c_void;
+pub type PlayToSource = *mut ::core::ffi::c_void;
+pub type PlayToSourceDeferral = *mut ::core::ffi::c_void;
+pub type PlayToSourceRequest = *mut ::core::ffi::c_void;
+pub type PlayToSourceRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type PlayToSourceSelectedEventArgs = *mut ::core::ffi::c_void;
+pub type PlaybackRateChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type SourceChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type VolumeChangeRequestedEventArgs = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Playback/mod.rs b/vendor/windows-sys/src/Windows/Media/Playback/mod.rs
new file mode 100644
index 000000000..24ddbba3b
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Playback/mod.rs
@@ -0,0 +1,279 @@
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct AutoLoadedDisplayPropertyKind(pub i32);
+impl AutoLoadedDisplayPropertyKind {
+ pub const None: Self = Self(0i32);
+ pub const MusicOrVideo: Self = Self(1i32);
+ pub const Music: Self = Self(2i32);
+ pub const Video: Self = Self(3i32);
+}
+impl ::core::marker::Copy for AutoLoadedDisplayPropertyKind {}
+impl ::core::clone::Clone for AutoLoadedDisplayPropertyKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type CurrentMediaPlaybackItemChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct FailedMediaStreamKind(pub i32);
+impl FailedMediaStreamKind {
+ pub const Unknown: Self = Self(0i32);
+ pub const Audio: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+}
+impl ::core::marker::Copy for FailedMediaStreamKind {}
+impl ::core::clone::Clone for FailedMediaStreamKind {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type IMediaEnginePlaybackSource = *mut ::core::ffi::c_void;
+pub type IMediaPlaybackSource = *mut ::core::ffi::c_void;
+pub type MediaBreak = *mut ::core::ffi::c_void;
+pub type MediaBreakEndedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaBreakInsertionMethod(pub i32);
+impl MediaBreakInsertionMethod {
+ pub const Interrupt: Self = Self(0i32);
+ pub const Replace: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaBreakInsertionMethod {}
+impl ::core::clone::Clone for MediaBreakInsertionMethod {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaBreakManager = *mut ::core::ffi::c_void;
+pub type MediaBreakSchedule = *mut ::core::ffi::c_void;
+pub type MediaBreakSeekedOverEventArgs = *mut ::core::ffi::c_void;
+pub type MediaBreakSkippedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaBreakStartedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaCommandEnablingRule(pub i32);
+impl MediaCommandEnablingRule {
+ pub const Auto: Self = Self(0i32);
+ pub const Always: Self = Self(1i32);
+ pub const Never: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MediaCommandEnablingRule {}
+impl ::core::clone::Clone for MediaCommandEnablingRule {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaItemDisplayProperties = *mut ::core::ffi::c_void;
+pub type MediaPlaybackAudioTrackList = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManager = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerCommandBehavior = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerFastForwardReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerNextReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerPauseReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerPlayReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerPositionReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerPreviousReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerRateReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerRewindReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackCommandManagerShuffleReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackItem = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackItemChangedReason(pub i32);
+impl MediaPlaybackItemChangedReason {
+ pub const InitialItem: Self = Self(0i32);
+ pub const EndOfStream: Self = Self(1i32);
+ pub const Error: Self = Self(2i32);
+ pub const AppRequested: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaPlaybackItemChangedReason {}
+impl ::core::clone::Clone for MediaPlaybackItemChangedReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlaybackItemError = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackItemErrorCode(pub i32);
+impl MediaPlaybackItemErrorCode {
+ pub const None: Self = Self(0i32);
+ pub const Aborted: Self = Self(1i32);
+ pub const NetworkError: Self = Self(2i32);
+ pub const DecodeError: Self = Self(3i32);
+ pub const SourceNotSupportedError: Self = Self(4i32);
+ pub const EncryptionError: Self = Self(5i32);
+}
+impl ::core::marker::Copy for MediaPlaybackItemErrorCode {}
+impl ::core::clone::Clone for MediaPlaybackItemErrorCode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlaybackItemFailedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackItemOpenedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackList = *mut ::core::ffi::c_void;
+pub type MediaPlaybackSession = *mut ::core::ffi::c_void;
+pub type MediaPlaybackSessionBufferingStartedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlaybackSessionOutputDegradationPolicyState = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackSessionVideoConstrictionReason(pub i32);
+impl MediaPlaybackSessionVideoConstrictionReason {
+ pub const None: Self = Self(0i32);
+ pub const VirtualMachine: Self = Self(1i32);
+ pub const UnsupportedDisplayAdapter: Self = Self(2i32);
+ pub const UnsignedDriver: Self = Self(3i32);
+ pub const FrameServerEnabled: Self = Self(4i32);
+ pub const OutputProtectionFailed: Self = Self(5i32);
+ pub const Unknown: Self = Self(6i32);
+}
+impl ::core::marker::Copy for MediaPlaybackSessionVideoConstrictionReason {}
+impl ::core::clone::Clone for MediaPlaybackSessionVideoConstrictionReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlaybackSphericalVideoProjection = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackState(pub i32);
+impl MediaPlaybackState {
+ pub const None: Self = Self(0i32);
+ pub const Opening: Self = Self(1i32);
+ pub const Buffering: Self = Self(2i32);
+ pub const Playing: Self = Self(3i32);
+ pub const Paused: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaPlaybackState {}
+impl ::core::clone::Clone for MediaPlaybackState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlaybackTimedMetadataTrackList = *mut ::core::ffi::c_void;
+pub type MediaPlaybackVideoTrackList = *mut ::core::ffi::c_void;
+pub type MediaPlayer = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlayerAudioCategory(pub i32);
+impl MediaPlayerAudioCategory {
+ pub const Other: Self = Self(0i32);
+ pub const Communications: Self = Self(3i32);
+ pub const Alerts: Self = Self(4i32);
+ pub const SoundEffects: Self = Self(5i32);
+ pub const GameEffects: Self = Self(6i32);
+ pub const GameMedia: Self = Self(7i32);
+ pub const GameChat: Self = Self(8i32);
+ pub const Speech: Self = Self(9i32);
+ pub const Movie: Self = Self(10i32);
+ pub const Media: Self = Self(11i32);
+}
+impl ::core::marker::Copy for MediaPlayerAudioCategory {}
+impl ::core::clone::Clone for MediaPlayerAudioCategory {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlayerAudioDeviceType(pub i32);
+impl MediaPlayerAudioDeviceType {
+ pub const Console: Self = Self(0i32);
+ pub const Multimedia: Self = Self(1i32);
+ pub const Communications: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MediaPlayerAudioDeviceType {}
+impl ::core::clone::Clone for MediaPlayerAudioDeviceType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlayerDataReceivedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct MediaPlayerError(pub i32);
+impl MediaPlayerError {
+ pub const Unknown: Self = Self(0i32);
+ pub const Aborted: Self = Self(1i32);
+ pub const NetworkError: Self = Self(2i32);
+ pub const DecodingError: Self = Self(3i32);
+ pub const SourceNotSupported: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaPlayerError {}
+impl ::core::clone::Clone for MediaPlayerError {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlayerFailedEventArgs = *mut ::core::ffi::c_void;
+pub type MediaPlayerRateChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct MediaPlayerState(pub i32);
+#[cfg(feature = "deprecated")]
+impl MediaPlayerState {
+ pub const Closed: Self = Self(0i32);
+ pub const Opening: Self = Self(1i32);
+ pub const Buffering: Self = Self(2i32);
+ pub const Playing: Self = Self(3i32);
+ pub const Paused: Self = Self(4i32);
+ pub const Stopped: Self = Self(5i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for MediaPlayerState {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for MediaPlayerState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaPlayerSurface = *mut ::core::ffi::c_void;
+pub type PlaybackMediaMarker = *mut ::core::ffi::c_void;
+pub type PlaybackMediaMarkerReachedEventArgs = *mut ::core::ffi::c_void;
+pub type PlaybackMediaMarkerSequence = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct SphericalVideoProjectionMode(pub i32);
+impl SphericalVideoProjectionMode {
+ pub const Spherical: Self = Self(0i32);
+ pub const Flat: Self = Self(1i32);
+}
+impl ::core::marker::Copy for SphericalVideoProjectionMode {}
+impl ::core::clone::Clone for SphericalVideoProjectionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct StereoscopicVideoRenderMode(pub i32);
+impl StereoscopicVideoRenderMode {
+ pub const Mono: Self = Self(0i32);
+ pub const Stereo: Self = Self(1i32);
+}
+impl ::core::marker::Copy for StereoscopicVideoRenderMode {}
+impl ::core::clone::Clone for StereoscopicVideoRenderMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type TimedMetadataPresentationModeChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playback\"`*"]
+#[repr(transparent)]
+pub struct TimedMetadataTrackPresentationMode(pub i32);
+impl TimedMetadataTrackPresentationMode {
+ pub const Disabled: Self = Self(0i32);
+ pub const Hidden: Self = Self(1i32);
+ pub const ApplicationPresented: Self = Self(2i32);
+ pub const PlatformPresented: Self = Self(3i32);
+}
+impl ::core::marker::Copy for TimedMetadataTrackPresentationMode {}
+impl ::core::clone::Clone for TimedMetadataTrackPresentationMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Playlists/mod.rs b/vendor/windows-sys/src/Windows/Media/Playlists/mod.rs
new file mode 100644
index 000000000..39e6f3aed
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Playlists/mod.rs
@@ -0,0 +1,15 @@
+pub type Playlist = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Playlists\"`*"]
+#[repr(transparent)]
+pub struct PlaylistFormat(pub i32);
+impl PlaylistFormat {
+ pub const WindowsMedia: Self = Self(0i32);
+ pub const Zune: Self = Self(1i32);
+ pub const M3u: Self = Self(2i32);
+}
+impl ::core::marker::Copy for PlaylistFormat {}
+impl ::core::clone::Clone for PlaylistFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Protection/PlayReady/mod.rs b/vendor/windows-sys/src/Windows/Media/Protection/PlayReady/mod.rs
new file mode 100644
index 000000000..158259a0f
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Protection/PlayReady/mod.rs
@@ -0,0 +1,271 @@
+pub type INDClosedCaptionDataReceivedEventArgs = *mut ::core::ffi::c_void;
+pub type INDCustomData = *mut ::core::ffi::c_void;
+pub type INDDownloadEngine = *mut ::core::ffi::c_void;
+pub type INDDownloadEngineNotifier = *mut ::core::ffi::c_void;
+pub type INDLicenseFetchCompletedEventArgs = *mut ::core::ffi::c_void;
+pub type INDLicenseFetchDescriptor = *mut ::core::ffi::c_void;
+pub type INDLicenseFetchResult = *mut ::core::ffi::c_void;
+pub type INDMessenger = *mut ::core::ffi::c_void;
+pub type INDProximityDetectionCompletedEventArgs = *mut ::core::ffi::c_void;
+pub type INDRegistrationCompletedEventArgs = *mut ::core::ffi::c_void;
+pub type INDSendResult = *mut ::core::ffi::c_void;
+pub type INDStartResult = *mut ::core::ffi::c_void;
+pub type INDStorageFileHelper = *mut ::core::ffi::c_void;
+pub type INDStreamParser = *mut ::core::ffi::c_void;
+pub type INDStreamParserNotifier = *mut ::core::ffi::c_void;
+pub type INDTransmitterProperties = *mut ::core::ffi::c_void;
+pub type IPlayReadyDomain = *mut ::core::ffi::c_void;
+pub type IPlayReadyLicense = *mut ::core::ffi::c_void;
+pub type IPlayReadyLicenseAcquisitionServiceRequest = *mut ::core::ffi::c_void;
+pub type IPlayReadyLicenseSession = *mut ::core::ffi::c_void;
+pub type IPlayReadyLicenseSession2 = *mut ::core::ffi::c_void;
+pub type IPlayReadySecureStopServiceRequest = *mut ::core::ffi::c_void;
+pub type IPlayReadyServiceRequest = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDCertificateFeature(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDCertificateFeature {
+ pub const Transmitter: Self = Self(1i32);
+ pub const Receiver: Self = Self(2i32);
+ pub const SharedCertificate: Self = Self(3i32);
+ pub const SecureClock: Self = Self(4i32);
+ pub const AntiRollBackClock: Self = Self(5i32);
+ pub const CRLS: Self = Self(9i32);
+ pub const PlayReady3Features: Self = Self(13i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDCertificateFeature {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDCertificateFeature {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDCertificatePlatformID(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDCertificatePlatformID {
+ pub const Windows: Self = Self(0i32);
+ pub const OSX: Self = Self(1i32);
+ pub const WindowsOnARM: Self = Self(2i32);
+ pub const WindowsMobile7: Self = Self(5i32);
+ pub const iOSOnARM: Self = Self(6i32);
+ pub const XBoxOnPPC: Self = Self(7i32);
+ pub const WindowsPhone8OnARM: Self = Self(8i32);
+ pub const WindowsPhone8OnX86: Self = Self(9i32);
+ pub const XboxOne: Self = Self(10i32);
+ pub const AndroidOnARM: Self = Self(11i32);
+ pub const WindowsPhone81OnARM: Self = Self(12i32);
+ pub const WindowsPhone81OnX86: Self = Self(13i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDCertificatePlatformID {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDCertificatePlatformID {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDCertificateType(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDCertificateType {
+ pub const Unknown: Self = Self(0i32);
+ pub const PC: Self = Self(1i32);
+ pub const Device: Self = Self(2i32);
+ pub const Domain: Self = Self(3i32);
+ pub const Issuer: Self = Self(4i32);
+ pub const CrlSigner: Self = Self(5i32);
+ pub const Service: Self = Self(6i32);
+ pub const Silverlight: Self = Self(7i32);
+ pub const Application: Self = Self(8i32);
+ pub const Metering: Self = Self(9i32);
+ pub const KeyFileSigner: Self = Self(10i32);
+ pub const Server: Self = Self(11i32);
+ pub const LicenseSigner: Self = Self(12i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDCertificateType {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDCertificateType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type NDClient = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDClosedCaptionFormat(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDClosedCaptionFormat {
+ pub const ATSC: Self = Self(0i32);
+ pub const SCTE20: Self = Self(1i32);
+ pub const Unknown: Self = Self(2i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDClosedCaptionFormat {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDClosedCaptionFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDContentIDType(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDContentIDType {
+ pub const KeyID: Self = Self(1i32);
+ pub const PlayReadyObject: Self = Self(2i32);
+ pub const Custom: Self = Self(3i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDContentIDType {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDContentIDType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type NDCustomData = *mut ::core::ffi::c_void;
+pub type NDDownloadEngineNotifier = *mut ::core::ffi::c_void;
+pub type NDLicenseFetchDescriptor = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDMediaStreamType(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDMediaStreamType {
+ pub const Audio: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDMediaStreamType {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDMediaStreamType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDProximityDetectionType(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDProximityDetectionType {
+ pub const UDP: Self = Self(1i32);
+ pub const TCP: Self = Self(2i32);
+ pub const TransportAgnostic: Self = Self(4i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDProximityDetectionType {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDProximityDetectionType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`, `\"deprecated\"`*"]
+#[cfg(feature = "deprecated")]
+#[repr(transparent)]
+pub struct NDStartAsyncOptions(pub i32);
+#[cfg(feature = "deprecated")]
+impl NDStartAsyncOptions {
+ pub const MutualAuthentication: Self = Self(1i32);
+ pub const WaitForLicenseDescriptor: Self = Self(2i32);
+}
+#[cfg(feature = "deprecated")]
+impl ::core::marker::Copy for NDStartAsyncOptions {}
+#[cfg(feature = "deprecated")]
+impl ::core::clone::Clone for NDStartAsyncOptions {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type NDStorageFileHelper = *mut ::core::ffi::c_void;
+pub type NDStreamParserNotifier = *mut ::core::ffi::c_void;
+pub type NDTCPMessenger = *mut ::core::ffi::c_void;
+pub type PlayReadyContentHeader = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`*"]
+#[repr(transparent)]
+pub struct PlayReadyDecryptorSetup(pub i32);
+impl PlayReadyDecryptorSetup {
+ pub const Uninitialized: Self = Self(0i32);
+ pub const OnDemand: Self = Self(1i32);
+}
+impl ::core::marker::Copy for PlayReadyDecryptorSetup {}
+impl ::core::clone::Clone for PlayReadyDecryptorSetup {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PlayReadyDomain = *mut ::core::ffi::c_void;
+pub type PlayReadyDomainIterable = *mut ::core::ffi::c_void;
+pub type PlayReadyDomainIterator = *mut ::core::ffi::c_void;
+pub type PlayReadyDomainJoinServiceRequest = *mut ::core::ffi::c_void;
+pub type PlayReadyDomainLeaveServiceRequest = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`*"]
+#[repr(transparent)]
+pub struct PlayReadyEncryptionAlgorithm(pub i32);
+impl PlayReadyEncryptionAlgorithm {
+ pub const Unprotected: Self = Self(0i32);
+ pub const Aes128Ctr: Self = Self(1i32);
+ pub const Cocktail: Self = Self(4i32);
+ pub const Aes128Cbc: Self = Self(5i32);
+ pub const Unspecified: Self = Self(65535i32);
+ pub const Uninitialized: Self = Self(2147483647i32);
+}
+impl ::core::marker::Copy for PlayReadyEncryptionAlgorithm {}
+impl ::core::clone::Clone for PlayReadyEncryptionAlgorithm {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`*"]
+#[repr(transparent)]
+pub struct PlayReadyHardwareDRMFeatures(pub i32);
+impl PlayReadyHardwareDRMFeatures {
+ pub const HardwareDRM: Self = Self(1i32);
+ pub const HEVC: Self = Self(2i32);
+ pub const Aes128Cbc: Self = Self(3i32);
+}
+impl ::core::marker::Copy for PlayReadyHardwareDRMFeatures {}
+impl ::core::clone::Clone for PlayReadyHardwareDRMFeatures {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection_PlayReady\"`*"]
+#[repr(transparent)]
+pub struct PlayReadyITADataFormat(pub i32);
+impl PlayReadyITADataFormat {
+ pub const SerializedProperties: Self = Self(0i32);
+ pub const SerializedProperties_WithContentProtectionWrapper: Self = Self(1i32);
+}
+impl ::core::marker::Copy for PlayReadyITADataFormat {}
+impl ::core::clone::Clone for PlayReadyITADataFormat {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PlayReadyITADataGenerator = *mut ::core::ffi::c_void;
+pub type PlayReadyIndividualizationServiceRequest = *mut ::core::ffi::c_void;
+pub type PlayReadyLicense = *mut ::core::ffi::c_void;
+pub type PlayReadyLicenseAcquisitionServiceRequest = *mut ::core::ffi::c_void;
+pub type PlayReadyLicenseIterable = *mut ::core::ffi::c_void;
+pub type PlayReadyLicenseIterator = *mut ::core::ffi::c_void;
+pub type PlayReadyLicenseSession = *mut ::core::ffi::c_void;
+pub type PlayReadyMeteringReportServiceRequest = *mut ::core::ffi::c_void;
+pub type PlayReadyRevocationServiceRequest = *mut ::core::ffi::c_void;
+pub type PlayReadySecureStopIterable = *mut ::core::ffi::c_void;
+pub type PlayReadySecureStopIterator = *mut ::core::ffi::c_void;
+pub type PlayReadySecureStopServiceRequest = *mut ::core::ffi::c_void;
+pub type PlayReadySoapMessage = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Protection/mod.rs b/vendor/windows-sys/src/Windows/Media/Protection/mod.rs
new file mode 100644
index 000000000..fada32a9b
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Protection/mod.rs
@@ -0,0 +1,117 @@
+#[cfg(feature = "Media_Protection_PlayReady")]
+pub mod PlayReady;
+pub type ComponentLoadFailedEventArgs = *mut ::core::ffi::c_void;
+pub type ComponentLoadFailedEventHandler = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection\"`*"]
+#[repr(transparent)]
+pub struct GraphicsTrustStatus(pub i32);
+impl GraphicsTrustStatus {
+ pub const TrustNotRequired: Self = Self(0i32);
+ pub const TrustEstablished: Self = Self(1i32);
+ pub const EnvironmentNotSupported: Self = Self(2i32);
+ pub const DriverNotSupported: Self = Self(3i32);
+ pub const DriverSigningFailure: Self = Self(4i32);
+ pub const UnknownFailure: Self = Self(5i32);
+}
+impl ::core::marker::Copy for GraphicsTrustStatus {}
+impl ::core::clone::Clone for GraphicsTrustStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_Protection\"`*"]
+#[repr(transparent)]
+pub struct HdcpProtection(pub i32);
+impl HdcpProtection {
+ pub const Off: Self = Self(0i32);
+ pub const On: Self = Self(1i32);
+ pub const OnWithTypeEnforcement: Self = Self(2i32);
+}
+impl ::core::marker::Copy for HdcpProtection {}
+impl ::core::clone::Clone for HdcpProtection {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type HdcpSession = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection\"`*"]
+#[repr(transparent)]
+pub struct HdcpSetProtectionResult(pub i32);
+impl HdcpSetProtectionResult {
+ pub const Success: Self = Self(0i32);
+ pub const TimedOut: Self = Self(1i32);
+ pub const NotSupported: Self = Self(2i32);
+ pub const UnknownFailure: Self = Self(3i32);
+}
+impl ::core::marker::Copy for HdcpSetProtectionResult {}
+impl ::core::clone::Clone for HdcpSetProtectionResult {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type IMediaProtectionServiceRequest = *mut ::core::ffi::c_void;
+pub type MediaProtectionManager = *mut ::core::ffi::c_void;
+pub type MediaProtectionPMPServer = *mut ::core::ffi::c_void;
+pub type MediaProtectionServiceCompletion = *mut ::core::ffi::c_void;
+pub type ProtectionCapabilities = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection\"`*"]
+#[repr(transparent)]
+pub struct ProtectionCapabilityResult(pub i32);
+impl ProtectionCapabilityResult {
+ pub const NotSupported: Self = Self(0i32);
+ pub const Maybe: Self = Self(1i32);
+ pub const Probably: Self = Self(2i32);
+}
+impl ::core::marker::Copy for ProtectionCapabilityResult {}
+impl ::core::clone::Clone for ProtectionCapabilityResult {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type RebootNeededEventHandler = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection\"`*"]
+#[repr(transparent)]
+pub struct RenewalStatus(pub i32);
+impl RenewalStatus {
+ pub const NotStarted: Self = Self(0i32);
+ pub const UpdatesInProgress: Self = Self(1i32);
+ pub const UserCancelled: Self = Self(2i32);
+ pub const AppComponentsMayNeedUpdating: Self = Self(3i32);
+ pub const NoComponentsFound: Self = Self(4i32);
+}
+impl ::core::marker::Copy for RenewalStatus {}
+impl ::core::clone::Clone for RenewalStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type RevocationAndRenewalInformation = *mut ::core::ffi::c_void;
+pub type RevocationAndRenewalItem = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Protection\"`*"]
+#[repr(transparent)]
+pub struct RevocationAndRenewalReasons(pub u32);
+impl RevocationAndRenewalReasons {
+ pub const UserModeComponentLoad: Self = Self(1u32);
+ pub const KernelModeComponentLoad: Self = Self(2u32);
+ pub const AppComponent: Self = Self(4u32);
+ pub const GlobalRevocationListLoadFailed: Self = Self(16u32);
+ pub const InvalidGlobalRevocationListSignature: Self = Self(32u32);
+ pub const GlobalRevocationListAbsent: Self = Self(4096u32);
+ pub const ComponentRevoked: Self = Self(8192u32);
+ pub const InvalidComponentCertificateExtendedKeyUse: Self = Self(16384u32);
+ pub const ComponentCertificateRevoked: Self = Self(32768u32);
+ pub const InvalidComponentCertificateRoot: Self = Self(65536u32);
+ pub const ComponentHighSecurityCertificateRevoked: Self = Self(131072u32);
+ pub const ComponentLowSecurityCertificateRevoked: Self = Self(262144u32);
+ pub const BootDriverVerificationFailed: Self = Self(1048576u32);
+ pub const ComponentSignedWithTestCertificate: Self = Self(16777216u32);
+ pub const EncryptionFailure: Self = Self(268435456u32);
+}
+impl ::core::marker::Copy for RevocationAndRenewalReasons {}
+impl ::core::clone::Clone for RevocationAndRenewalReasons {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type ServiceRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type ServiceRequestedEventHandler = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Render/mod.rs b/vendor/windows-sys/src/Windows/Media/Render/mod.rs
new file mode 100644
index 000000000..fe1fb75e8
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Render/mod.rs
@@ -0,0 +1,23 @@
+#[doc = "*Required features: `\"Media_Render\"`*"]
+#[repr(transparent)]
+pub struct AudioRenderCategory(pub i32);
+impl AudioRenderCategory {
+ pub const Other: Self = Self(0i32);
+ pub const ForegroundOnlyMedia: Self = Self(1i32);
+ pub const BackgroundCapableMedia: Self = Self(2i32);
+ pub const Communications: Self = Self(3i32);
+ pub const Alerts: Self = Self(4i32);
+ pub const SoundEffects: Self = Self(5i32);
+ pub const GameEffects: Self = Self(6i32);
+ pub const GameMedia: Self = Self(7i32);
+ pub const GameChat: Self = Self(8i32);
+ pub const Speech: Self = Self(9i32);
+ pub const Movie: Self = Self(10i32);
+ pub const Media: Self = Self(11i32);
+}
+impl ::core::marker::Copy for AudioRenderCategory {}
+impl ::core::clone::Clone for AudioRenderCategory {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/SpeechRecognition/mod.rs b/vendor/windows-sys/src/Windows/Media/SpeechRecognition/mod.rs
new file mode 100644
index 000000000..492fb90c1
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/SpeechRecognition/mod.rs
@@ -0,0 +1,148 @@
+pub type ISpeechRecognitionConstraint = *mut ::core::ffi::c_void;
+pub type SpeechContinuousRecognitionCompletedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechContinuousRecognitionMode(pub i32);
+impl SpeechContinuousRecognitionMode {
+ pub const Default: Self = Self(0i32);
+ pub const PauseOnRecognition: Self = Self(1i32);
+}
+impl ::core::marker::Copy for SpeechContinuousRecognitionMode {}
+impl ::core::clone::Clone for SpeechContinuousRecognitionMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpeechContinuousRecognitionResultGeneratedEventArgs = *mut ::core::ffi::c_void;
+pub type SpeechContinuousRecognitionSession = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognitionAudioProblem(pub i32);
+impl SpeechRecognitionAudioProblem {
+ pub const None: Self = Self(0i32);
+ pub const TooNoisy: Self = Self(1i32);
+ pub const NoSignal: Self = Self(2i32);
+ pub const TooLoud: Self = Self(3i32);
+ pub const TooQuiet: Self = Self(4i32);
+ pub const TooFast: Self = Self(5i32);
+ pub const TooSlow: Self = Self(6i32);
+}
+impl ::core::marker::Copy for SpeechRecognitionAudioProblem {}
+impl ::core::clone::Clone for SpeechRecognitionAudioProblem {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpeechRecognitionCompilationResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognitionConfidence(pub i32);
+impl SpeechRecognitionConfidence {
+ pub const High: Self = Self(0i32);
+ pub const Medium: Self = Self(1i32);
+ pub const Low: Self = Self(2i32);
+ pub const Rejected: Self = Self(3i32);
+}
+impl ::core::marker::Copy for SpeechRecognitionConfidence {}
+impl ::core::clone::Clone for SpeechRecognitionConfidence {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognitionConstraintProbability(pub i32);
+impl SpeechRecognitionConstraintProbability {
+ pub const Default: Self = Self(0i32);
+ pub const Min: Self = Self(1i32);
+ pub const Max: Self = Self(2i32);
+}
+impl ::core::marker::Copy for SpeechRecognitionConstraintProbability {}
+impl ::core::clone::Clone for SpeechRecognitionConstraintProbability {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognitionConstraintType(pub i32);
+impl SpeechRecognitionConstraintType {
+ pub const Topic: Self = Self(0i32);
+ pub const List: Self = Self(1i32);
+ pub const Grammar: Self = Self(2i32);
+ pub const VoiceCommandDefinition: Self = Self(3i32);
+}
+impl ::core::marker::Copy for SpeechRecognitionConstraintType {}
+impl ::core::clone::Clone for SpeechRecognitionConstraintType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpeechRecognitionGrammarFileConstraint = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionHypothesis = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionHypothesisGeneratedEventArgs = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionListConstraint = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionQualityDegradingEventArgs = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognitionResultStatus(pub i32);
+impl SpeechRecognitionResultStatus {
+ pub const Success: Self = Self(0i32);
+ pub const TopicLanguageNotSupported: Self = Self(1i32);
+ pub const GrammarLanguageMismatch: Self = Self(2i32);
+ pub const GrammarCompilationFailure: Self = Self(3i32);
+ pub const AudioQualityFailure: Self = Self(4i32);
+ pub const UserCanceled: Self = Self(5i32);
+ pub const Unknown: Self = Self(6i32);
+ pub const TimeoutExceeded: Self = Self(7i32);
+ pub const PauseLimitExceeded: Self = Self(8i32);
+ pub const NetworkFailure: Self = Self(9i32);
+ pub const MicrophoneUnavailable: Self = Self(10i32);
+}
+impl ::core::marker::Copy for SpeechRecognitionResultStatus {}
+impl ::core::clone::Clone for SpeechRecognitionResultStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognitionScenario(pub i32);
+impl SpeechRecognitionScenario {
+ pub const WebSearch: Self = Self(0i32);
+ pub const Dictation: Self = Self(1i32);
+ pub const FormFilling: Self = Self(2i32);
+}
+impl ::core::marker::Copy for SpeechRecognitionScenario {}
+impl ::core::clone::Clone for SpeechRecognitionScenario {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpeechRecognitionSemanticInterpretation = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionTopicConstraint = *mut ::core::ffi::c_void;
+pub type SpeechRecognitionVoiceCommandDefinitionConstraint = *mut ::core::ffi::c_void;
+pub type SpeechRecognizer = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_SpeechRecognition\"`*"]
+#[repr(transparent)]
+pub struct SpeechRecognizerState(pub i32);
+impl SpeechRecognizerState {
+ pub const Idle: Self = Self(0i32);
+ pub const Capturing: Self = Self(1i32);
+ pub const Processing: Self = Self(2i32);
+ pub const SoundStarted: Self = Self(3i32);
+ pub const SoundEnded: Self = Self(4i32);
+ pub const SpeechDetected: Self = Self(5i32);
+ pub const Paused: Self = Self(6i32);
+}
+impl ::core::marker::Copy for SpeechRecognizerState {}
+impl ::core::clone::Clone for SpeechRecognizerState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpeechRecognizerStateChangedEventArgs = *mut ::core::ffi::c_void;
+pub type SpeechRecognizerTimeouts = *mut ::core::ffi::c_void;
+pub type SpeechRecognizerUIOptions = *mut ::core::ffi::c_void;
+pub type VoiceCommandSet = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/SpeechSynthesis/mod.rs b/vendor/windows-sys/src/Windows/Media/SpeechSynthesis/mod.rs
new file mode 100644
index 000000000..7cb9c0ff4
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/SpeechSynthesis/mod.rs
@@ -0,0 +1,43 @@
+#[doc = "*Required features: `\"Media_SpeechSynthesis\"`*"]
+#[repr(transparent)]
+pub struct SpeechAppendedSilence(pub i32);
+impl SpeechAppendedSilence {
+ pub const Default: Self = Self(0i32);
+ pub const Min: Self = Self(1i32);
+}
+impl ::core::marker::Copy for SpeechAppendedSilence {}
+impl ::core::clone::Clone for SpeechAppendedSilence {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media_SpeechSynthesis\"`*"]
+#[repr(transparent)]
+pub struct SpeechPunctuationSilence(pub i32);
+impl SpeechPunctuationSilence {
+ pub const Default: Self = Self(0i32);
+ pub const Min: Self = Self(1i32);
+}
+impl ::core::marker::Copy for SpeechPunctuationSilence {}
+impl ::core::clone::Clone for SpeechPunctuationSilence {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SpeechSynthesisStream = *mut ::core::ffi::c_void;
+pub type SpeechSynthesizer = *mut ::core::ffi::c_void;
+pub type SpeechSynthesizerOptions = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_SpeechSynthesis\"`*"]
+#[repr(transparent)]
+pub struct VoiceGender(pub i32);
+impl VoiceGender {
+ pub const Male: Self = Self(0i32);
+ pub const Female: Self = Self(1i32);
+}
+impl ::core::marker::Copy for VoiceGender {}
+impl ::core::clone::Clone for VoiceGender {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type VoiceInformation = *mut ::core::ffi::c_void;
diff --git a/vendor/windows-sys/src/Windows/Media/Streaming/Adaptive/mod.rs b/vendor/windows-sys/src/Windows/Media/Streaming/Adaptive/mod.rs
new file mode 100644
index 000000000..0ac575ede
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Streaming/Adaptive/mod.rs
@@ -0,0 +1,87 @@
+pub type AdaptiveMediaSource = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceAdvancedSettings = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceCorrelatedTimes = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceCreationResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Streaming_Adaptive\"`*"]
+#[repr(transparent)]
+pub struct AdaptiveMediaSourceCreationStatus(pub i32);
+impl AdaptiveMediaSourceCreationStatus {
+ pub const Success: Self = Self(0i32);
+ pub const ManifestDownloadFailure: Self = Self(1i32);
+ pub const ManifestParseFailure: Self = Self(2i32);
+ pub const UnsupportedManifestContentType: Self = Self(3i32);
+ pub const UnsupportedManifestVersion: Self = Self(4i32);
+ pub const UnsupportedManifestProfile: Self = Self(5i32);
+ pub const UnknownFailure: Self = Self(6i32);
+}
+impl ::core::marker::Copy for AdaptiveMediaSourceCreationStatus {}
+impl ::core::clone::Clone for AdaptiveMediaSourceCreationStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AdaptiveMediaSourceDiagnosticAvailableEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Streaming_Adaptive\"`*"]
+#[repr(transparent)]
+pub struct AdaptiveMediaSourceDiagnosticType(pub i32);
+impl AdaptiveMediaSourceDiagnosticType {
+ pub const ManifestUnchangedUponReload: Self = Self(0i32);
+ pub const ManifestMismatchUponReload: Self = Self(1i32);
+ pub const ManifestSignaledEndOfLiveEventUponReload: Self = Self(2i32);
+ pub const MediaSegmentSkipped: Self = Self(3i32);
+ pub const ResourceNotFound: Self = Self(4i32);
+ pub const ResourceTimedOut: Self = Self(5i32);
+ pub const ResourceParsingError: Self = Self(6i32);
+ pub const BitrateDisabled: Self = Self(7i32);
+ pub const FatalMediaSourceError: Self = Self(8i32);
+}
+impl ::core::marker::Copy for AdaptiveMediaSourceDiagnosticType {}
+impl ::core::clone::Clone for AdaptiveMediaSourceDiagnosticType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AdaptiveMediaSourceDiagnostics = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceDownloadBitrateChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Streaming_Adaptive\"`*"]
+#[repr(transparent)]
+pub struct AdaptiveMediaSourceDownloadBitrateChangedReason(pub i32);
+impl AdaptiveMediaSourceDownloadBitrateChangedReason {
+ pub const SufficientInboundBitsPerSecond: Self = Self(0i32);
+ pub const InsufficientInboundBitsPerSecond: Self = Self(1i32);
+ pub const LowBufferLevel: Self = Self(2i32);
+ pub const PositionChanged: Self = Self(3i32);
+ pub const TrackSelectionChanged: Self = Self(4i32);
+ pub const DesiredBitratesChanged: Self = Self(5i32);
+ pub const ErrorInPreviousBitrate: Self = Self(6i32);
+}
+impl ::core::marker::Copy for AdaptiveMediaSourceDownloadBitrateChangedReason {}
+impl ::core::clone::Clone for AdaptiveMediaSourceDownloadBitrateChangedReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AdaptiveMediaSourceDownloadCompletedEventArgs = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceDownloadFailedEventArgs = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceDownloadRequestedDeferral = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceDownloadRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceDownloadResult = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourceDownloadStatistics = *mut ::core::ffi::c_void;
+pub type AdaptiveMediaSourcePlaybackBitrateChangedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Streaming_Adaptive\"`*"]
+#[repr(transparent)]
+pub struct AdaptiveMediaSourceResourceType(pub i32);
+impl AdaptiveMediaSourceResourceType {
+ pub const Manifest: Self = Self(0i32);
+ pub const InitializationSegment: Self = Self(1i32);
+ pub const MediaSegment: Self = Self(2i32);
+ pub const Key: Self = Self(3i32);
+ pub const InitializationVector: Self = Self(4i32);
+ pub const MediaSegmentIndex: Self = Self(5i32);
+}
+impl ::core::marker::Copy for AdaptiveMediaSourceResourceType {}
+impl ::core::clone::Clone for AdaptiveMediaSourceResourceType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/Streaming/mod.rs b/vendor/windows-sys/src/Windows/Media/Streaming/mod.rs
new file mode 100644
index 000000000..9aa84fc8c
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Streaming/mod.rs
@@ -0,0 +1,2 @@
+#[cfg(feature = "Media_Streaming_Adaptive")]
+pub mod Adaptive;
diff --git a/vendor/windows-sys/src/Windows/Media/Transcoding/mod.rs b/vendor/windows-sys/src/Windows/Media/Transcoding/mod.rs
new file mode 100644
index 000000000..9c1e99155
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/Transcoding/mod.rs
@@ -0,0 +1,30 @@
+pub type MediaTranscoder = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Transcoding\"`*"]
+#[repr(transparent)]
+pub struct MediaVideoProcessingAlgorithm(pub i32);
+impl MediaVideoProcessingAlgorithm {
+ pub const Default: Self = Self(0i32);
+ pub const MrfCrf444: Self = Self(1i32);
+}
+impl ::core::marker::Copy for MediaVideoProcessingAlgorithm {}
+impl ::core::clone::Clone for MediaVideoProcessingAlgorithm {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type PrepareTranscodeResult = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media_Transcoding\"`*"]
+#[repr(transparent)]
+pub struct TranscodeFailureReason(pub i32);
+impl TranscodeFailureReason {
+ pub const None: Self = Self(0i32);
+ pub const Unknown: Self = Self(1i32);
+ pub const InvalidProfile: Self = Self(2i32);
+ pub const CodecNotFound: Self = Self(3i32);
+}
+impl ::core::marker::Copy for TranscodeFailureReason {}
+impl ::core::clone::Clone for TranscodeFailureReason {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
diff --git a/vendor/windows-sys/src/Windows/Media/mod.rs b/vendor/windows-sys/src/Windows/Media/mod.rs
new file mode 100644
index 000000000..675efaff5
--- /dev/null
+++ b/vendor/windows-sys/src/Windows/Media/mod.rs
@@ -0,0 +1,226 @@
+#[cfg(feature = "Media_AppBroadcasting")]
+pub mod AppBroadcasting;
+#[cfg(feature = "Media_AppRecording")]
+pub mod AppRecording;
+#[cfg(feature = "Media_Audio")]
+pub mod Audio;
+#[cfg(feature = "Media_Capture")]
+pub mod Capture;
+#[cfg(feature = "Media_Casting")]
+pub mod Casting;
+#[cfg(feature = "Media_ClosedCaptioning")]
+pub mod ClosedCaptioning;
+#[cfg(feature = "Media_ContentRestrictions")]
+pub mod ContentRestrictions;
+#[cfg(feature = "Media_Control")]
+pub mod Control;
+#[cfg(feature = "Media_Core")]
+pub mod Core;
+#[cfg(feature = "Media_Devices")]
+pub mod Devices;
+#[cfg(feature = "Media_DialProtocol")]
+pub mod DialProtocol;
+#[cfg(feature = "Media_Editing")]
+pub mod Editing;
+#[cfg(feature = "Media_Effects")]
+pub mod Effects;
+#[cfg(feature = "Media_FaceAnalysis")]
+pub mod FaceAnalysis;
+#[cfg(feature = "Media_Import")]
+pub mod Import;
+#[cfg(feature = "Media_MediaProperties")]
+pub mod MediaProperties;
+#[cfg(feature = "Media_Miracast")]
+pub mod Miracast;
+#[cfg(feature = "Media_Ocr")]
+pub mod Ocr;
+#[cfg(feature = "Media_PlayTo")]
+pub mod PlayTo;
+#[cfg(feature = "Media_Playback")]
+pub mod Playback;
+#[cfg(feature = "Media_Playlists")]
+pub mod Playlists;
+#[cfg(feature = "Media_Protection")]
+pub mod Protection;
+#[cfg(feature = "Media_Render")]
+pub mod Render;
+#[cfg(feature = "Media_SpeechRecognition")]
+pub mod SpeechRecognition;
+#[cfg(feature = "Media_SpeechSynthesis")]
+pub mod SpeechSynthesis;
+#[cfg(feature = "Media_Streaming")]
+pub mod Streaming;
+#[cfg(feature = "Media_Transcoding")]
+pub mod Transcoding;
+pub type AudioBuffer = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct AudioBufferAccessMode(pub i32);
+impl AudioBufferAccessMode {
+ pub const Read: Self = Self(0i32);
+ pub const ReadWrite: Self = Self(1i32);
+ pub const Write: Self = Self(2i32);
+}
+impl ::core::marker::Copy for AudioBufferAccessMode {}
+impl ::core::clone::Clone for AudioBufferAccessMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AudioFrame = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct AudioProcessing(pub i32);
+impl AudioProcessing {
+ pub const Default: Self = Self(0i32);
+ pub const Raw: Self = Self(1i32);
+}
+impl ::core::marker::Copy for AudioProcessing {}
+impl ::core::clone::Clone for AudioProcessing {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type AutoRepeatModeChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type IMediaExtension = *mut ::core::ffi::c_void;
+pub type IMediaFrame = *mut ::core::ffi::c_void;
+pub type IMediaMarker = *mut ::core::ffi::c_void;
+pub type IMediaMarkers = *mut ::core::ffi::c_void;
+pub type ImageDisplayProperties = *mut ::core::ffi::c_void;
+pub type MediaExtensionManager = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackAutoRepeatMode(pub i32);
+impl MediaPlaybackAutoRepeatMode {
+ pub const None: Self = Self(0i32);
+ pub const Track: Self = Self(1i32);
+ pub const List: Self = Self(2i32);
+}
+impl ::core::marker::Copy for MediaPlaybackAutoRepeatMode {}
+impl ::core::clone::Clone for MediaPlaybackAutoRepeatMode {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackStatus(pub i32);
+impl MediaPlaybackStatus {
+ pub const Closed: Self = Self(0i32);
+ pub const Changing: Self = Self(1i32);
+ pub const Stopped: Self = Self(2i32);
+ pub const Playing: Self = Self(3i32);
+ pub const Paused: Self = Self(4i32);
+}
+impl ::core::marker::Copy for MediaPlaybackStatus {}
+impl ::core::clone::Clone for MediaPlaybackStatus {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct MediaPlaybackType(pub i32);
+impl MediaPlaybackType {
+ pub const Unknown: Self = Self(0i32);
+ pub const Music: Self = Self(1i32);
+ pub const Video: Self = Self(2i32);
+ pub const Image: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaPlaybackType {}
+impl ::core::clone::Clone for MediaPlaybackType {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaProcessingTriggerDetails = *mut ::core::ffi::c_void;
+#[repr(C)]
+#[doc = "*Required features: `\"Media\"`, `\"Foundation\"`*"]
+#[cfg(feature = "Foundation")]
+pub struct MediaTimeRange {
+ pub Start: super::Foundation::TimeSpan,
+ pub End: super::Foundation::TimeSpan,
+}
+#[cfg(feature = "Foundation")]
+impl ::core::marker::Copy for MediaTimeRange {}
+#[cfg(feature = "Foundation")]
+impl ::core::clone::Clone for MediaTimeRange {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MediaTimelineController = *mut ::core::ffi::c_void;
+pub type MediaTimelineControllerFailedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct MediaTimelineControllerState(pub i32);
+impl MediaTimelineControllerState {
+ pub const Paused: Self = Self(0i32);
+ pub const Running: Self = Self(1i32);
+ pub const Stalled: Self = Self(2i32);
+ pub const Error: Self = Self(3i32);
+}
+impl ::core::marker::Copy for MediaTimelineControllerState {}
+impl ::core::clone::Clone for MediaTimelineControllerState {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type MusicDisplayProperties = *mut ::core::ffi::c_void;
+pub type PlaybackPositionChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type PlaybackRateChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+pub type ShuffleEnabledChangeRequestedEventArgs = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct SoundLevel(pub i32);
+impl SoundLevel {
+ pub const Muted: Self = Self(0i32);
+ pub const Low: Self = Self(1i32);
+ pub const Full: Self = Self(2i32);
+}
+impl ::core::marker::Copy for SoundLevel {}
+impl ::core::clone::Clone for SoundLevel {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SystemMediaTransportControls = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct SystemMediaTransportControlsButton(pub i32);
+impl SystemMediaTransportControlsButton {
+ pub const Play: Self = Self(0i32);
+ pub const Pause: Self = Self(1i32);
+ pub const Stop: Self = Self(2i32);
+ pub const Record: Self = Self(3i32);
+ pub const FastForward: Self = Self(4i32);
+ pub const Rewind: Self = Self(5i32);
+ pub const Next: Self = Self(6i32);
+ pub const Previous: Self = Self(7i32);
+ pub const ChannelUp: Self = Self(8i32);
+ pub const ChannelDown: Self = Self(9i32);
+}
+impl ::core::marker::Copy for SystemMediaTransportControlsButton {}
+impl ::core::clone::Clone for SystemMediaTransportControlsButton {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SystemMediaTransportControlsButtonPressedEventArgs = *mut ::core::ffi::c_void;
+pub type SystemMediaTransportControlsDisplayUpdater = *mut ::core::ffi::c_void;
+#[doc = "*Required features: `\"Media\"`*"]
+#[repr(transparent)]
+pub struct SystemMediaTransportControlsProperty(pub i32);
+impl SystemMediaTransportControlsProperty {
+ pub const SoundLevel: Self = Self(0i32);
+}
+impl ::core::marker::Copy for SystemMediaTransportControlsProperty {}
+impl ::core::clone::Clone for SystemMediaTransportControlsProperty {
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+pub type SystemMediaTransportControlsPropertyChangedEventArgs = *mut ::core::ffi::c_void;
+pub type SystemMediaTransportControlsTimelineProperties = *mut ::core::ffi::c_void;
+pub type VideoDisplayProperties = *mut ::core::ffi::c_void;
+pub type VideoFrame = *mut ::core::ffi::c_void;