// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms
//! this ALWAYS GENERATED file contains the definitions for the interfaces
use ctypes::c_void;
use shared::guiddef::{GUID, REFIID};
use shared::minwindef::{DWORD, LPARAM, LPVOID, UINT};
// use shared::winerror::{ERROR_NOT_FOUND, ERROR_UNSUPPORTED_TYPE, HRESULT_FROM_WIN32};
use shared::wtypes::PROPERTYKEY;
use um::propidl::PROPVARIANT;
use um::propsys::IPropertyStore;
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::winnt::{HRESULT, LPCWSTR, LPWSTR};
// pub const E_NOTFOUND: HRESULT = HRESULT_FROM_WIN32(ERROR_NOT_FOUND);
// pub const E_UNSUPPORTED_TYPE: HRESULT = HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE);
pub const DEVICE_STATE_ACTIVE: DWORD =
0 x00000001;
pub const DEVICE_STATE_DISABLED: DWORD =
0 x00000002;
pub const DEVICE_STATE_NOTPRESENT: DWORD =
0 x00000004;
pub const DEVICE_STATE_UNPLUGGED: DWORD =
0 x00000008;
pub const DEVICE_STATEMASK_ALL: DWORD =
0 x0000000F;
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_FormFactor,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
0 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_ControlPanelPageProvider,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
1 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_Association,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
2 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_PhysicalSpeakers,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
3 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_GUID,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
4 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_Disable_SysFx,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
5 }
pub const ENDPOINT_SYSFX_ENABLED: DWORD =
0 x00000000;
pub const ENDPOINT_SYSFX_DISABLED: DWORD =
0 x00000001;
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_FullRangeSpeakers,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
6 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_Supports_EventDriven_Mode,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
7 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_JackSubType,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
8 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpoint_Default_VolumeInDb,
0 x1da5d803,
0 xd492,
0 x4edd,
0 x8c,
0 x23,
0 xe0,
0 xc0,
0 xff,
0 xee,
0 x7f,
0 x0e,
9 }
DEFINE_PROPERTYKEY!{PKEY_AudioEngine_DeviceFormat,
0 xf19f064d,
0 x82c,
0 x4e27,
0 xbc,
0 x73,
0 x68,
0 x82,
0 xa1,
0 xbb,
0 x8e,
0 x4c,
0 }
DEFINE_PROPERTYKEY!{PKEY_AudioEngine_OEMFormat,
0 xe4870e26,
0 x3cc5,
0 x4cd2,
0 xba,
0 x46,
0 xca,
0 xa,
0 x9a,
0 x70,
0 xed,
0 x4,
3 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpointLogo_IconEffects,
0 xf1ab780d,
0 x2010,
0 x4ed3,
0 xa3,
0 xa6,
0 x8b,
0 x87,
0 xf0,
0 xf0,
0 xc4,
0 x76,
0 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpointLogo_IconPath,
0 xf1ab780d,
0 x2010,
0 x4ed3,
0 xa3,
0 xa6,
0 x8b,
0 x87,
0 xf0,
0 xf0,
0 xc4,
0 x76,
1 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpointSettings_MenuText,
0 x14242002,
0 x0320,
0 x4de4,
0 x95,
0 x55,
0 xa7,
0 xd8,
0 x2b,
0 x73,
0 xc2,
0 x86,
0 }
DEFINE_PROPERTYKEY!{PKEY_AudioEndpointSettings_LaunchContract,
0 x14242002,
0 x0320,
0 x4de4,
0 x95,
0 x55,
0 xa7,
0 xd8,
0 x2b,
0 x73,
0 xc2,
0 x86,
1 }
STRUCT !{
struct DIRECTX_AUDIO_ACTIVATION_PARAMS {
cbDirectXAudioActivationParams: DWORD,
guidAudioSession: GUID,
dwAudioStreamFlags: DWORD,
}}
pub type PDIRECTX_AUDIO_ACTIVATION_PARAMS = *
mut DIRECTX_AUDIO_ACTIVATION_PARAMS;
ENUM !{
enum EDataFlow {
eRender,
eCapture,
eAll,
EDataFlow_enum_count,
}}
ENUM !{
enum ERole {
eConsole,
eMultimedia,
eCommunications,
ERole_enum_count,
}}
ENUM !{
enum EndpointFormFactor {
RemoteNetworkDevice,
Speakers,
LineLevel,
Headphones,
Microphone,
Headset,
Handset,
UnknownDigitalPassthrough,
SPDIF,
DigitalAudioDisplayDevice,
UnknownFormFactor,
EndpointFormFactor_enum_count,
}}
pub const HDMI: EndpointFormFactor = DigitalAudioDisplayDevice;
DEFINE_GUID!{DEVINTERFACE_AUDIO_RENDER,
0 xe6327cad,
0 xdcec,
0 x4949,
0 xae,
0 x8a,
0 x99,
0 x1e,
0 x97,
0 x6a,
0 x79,
0 xd2}
DEFINE_GUID!{DEVINTERFACE_AUDIO_CAPTURE,
0 x2eef81be,
0 x33fa,
0 x4800,
0 x96,
0 x70,
0 x1c,
0 xd4,
0 x74,
0 x97,
0 x2c,
0 x3f}
DEFINE_GUID!{DEVINTERFACE_MIDI_OUTPUT,
0 x6dc23320,
0 xab33,
0 x4ce4,
0 x80,
0 xd4,
0 xbb,
0 xb3,
0 xeb,
0 xbf,
0 x28,
0 x14}
DEFINE_GUID!{DEVINTERFACE_MIDI_INPUT,
0 x504be32c,
0 xccf6,
0 x4d2c,
0 xb7,
0 x3f,
0 x6f,
0 x8b,
0 x37,
0 x47,
0 xe2,
0 x2b}
RIDL!{
#[ uuid(
0 x7991eec9,
0 x7e89,
0 x4d85,
0 x83,
0 x90,
0 x6c,
0 x70,
0 x3c,
0 xec,
0 x60,
0 xc0)]
interface IMMNotificationClient(IMMNotificationClientVtbl): IUnknown(IUnknownVtbl)
{
fn OnDeviceStateChanged(
pwstrDeviceId: LPCWSTR,
dwNewState: DWORD,
) -> HRESULT,
fn OnDeviceAdded(
pwstrDeviceId: LPCWSTR,
) -> HRESULT,
fn OnDeviceRemoved(
pwstrDeviceId: LPCWSTR,
) -> HRESULT,
fn OnDefaultDeviceChanged(
flow: EDataFlow,
role: ERole,
pwstrDefaultDeviceId: LPCWSTR,
) -> HRESULT,
fn OnPropertyValueChanged(
pwstrDeviceId: LPCWSTR,
key: PROPERTYKEY,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xd666063f, 0 x1587, 0 x4e43, 0 x81, 0 xf1, 0 xb9, 0 x48, 0 xe8, 0 x07, 0 x36, 0 x3f)]
interface IMMDevice(IMMDeviceVtbl): IUnknown(IUnknownVtbl) {
fn Activate(
iid: REFIID,
dwClsCtx: DWORD,
pActivationParams: *mut PROPVARIANT,
ppInterface: *mut LPVOID,
) -> HRESULT,
fn OpenPropertyStore(
stgmAccess: DWORD,
ppProperties: *mut *mut IPropertyStore,
) -> HRESULT,
fn GetId(
ppstrId: *mut LPWSTR,
) -> HRESULT,
fn GetState(
pdwState: *mut DWORD,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x0bd7a1be, 0 x7a1a, 0 x44db, 0 x83, 0 x97, 0 xcc, 0 x53, 0 x92, 0 x38, 0 x7b, 0 x5e)]
interface IMMDeviceCollection(IMMDeviceCollectionVtbl): IUnknown(IUnknownVtbl) {
fn GetCount(
pcDevices: *const UINT,
) -> HRESULT,
fn Item(
nDevice: UINT,
ppDevice: *mut *mut IMMDevice,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x1be09788, 0 x6894, 0 x4089, 0 x85, 0 x86, 0 x9a, 0 x2a, 0 x6c, 0 x26, 0 x5a, 0 xc5)]
interface IMMEndpoint(IMMEndpointVtbl): IUnknown(IUnknownVtbl) {
fn GetDataFlow(
pDataFlow: *mut EDataFlow,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xa95664d2, 0 x9614, 0 x4f35, 0 xa7, 0 x46, 0 xde, 0 x8d, 0 xb6, 0 x36, 0 x17, 0 xe6)]
interface IMMDeviceEnumerator(IMMDeviceEnumeratorVtbl): IUnknown(IUnknownVtbl) {
fn EnumAudioEndpoints(
dataFlow: EDataFlow,
dwStateMask: DWORD,
ppDevices: *mut *mut IMMDeviceCollection,
) -> HRESULT,
fn GetDefaultAudioEndpoint(
dataFlow: EDataFlow,
role: ERole,
ppEndpoint: *mut *mut IMMDevice,
) -> HRESULT,
fn GetDevice(
pwstrId: LPCWSTR,
ppDevices: *mut *mut IMMDevice,
) -> HRESULT,
fn RegisterEndpointNotificationCallback(
pClient: *mut IMMNotificationClient,
) -> HRESULT,
fn UnregisterEndpointNotificationCallback(
pClient: *mut IMMNotificationClient,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x3b0d0ea4, 0 xd0a9, 0 x4b0e, 0 x93, 0 x5b, 0 x09, 0 x51, 0 x67, 0 x46, 0 xfa, 0 xc0)]
interface IMMDeviceActivator(IMMDeviceActivatorVtbl): IUnknown(IUnknownVtbl) {
fn Activate(
iid: REFIID,
pDevice: *mut IMMDevice,
pActivationParams: *mut PROPVARIANT,
ppInterface: *mut *mut c_void,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x41d949ab, 0 x9862, 0 x444a, 0 x80, 0 xf6, 0 xc2, 0 x61, 0 x33, 0 x4d, 0 xa5, 0 xeb)]
interface IActivateAudioInterfaceCompletionHandler(IActivateAudioInterfaceCompletionHandlerVtbl):
IUnknown(IUnknownVtbl) {
fn ActivateCompleted(
activateOperation: *mut IActivateAudioInterfaceAsyncOperation,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x72a22d78, 0 xcde4, 0 x431d, 0 xb8, 0 xcc, 0 x84, 0 x3a, 0 x71, 0 x19, 0 x9b, 0 x6d)]
interface IActivateAudioInterfaceAsyncOperation(IActivateAudioInterfaceAsyncOperationVtbl):
IUnknown(IUnknownVtbl) {
fn GetActivateResult(
activateResult: *mut HRESULT,
activatedInterface: *mut *mut IUnknown,
) -> HRESULT,
}}
extern "system" {
pub fn ActivateAudioInterfaceAsync(
deviceInterfacePath: LPCWSTR,
riid: REFIID,
activationParams: *mut PROPVARIANT,
completionHandler: *mut IActivateAudioInterfaceCompletionHandler,
activationOperation: *mut *mut IActivateAudioInterfaceAsyncOperation,
) -> HRESULT;
}
STRUCT !{struct AudioExtensionParams {
AddPageParam: LPARAM,
pEndpoint: *mut IMMDevice,
pPnpInterface: *mut IMMDevice,
pPnpDevnode: *mut IMMDevice,
}}
DEFINE_GUID!{CLSID_MMDeviceEnumerator,
0 xBCDE0395, 0 xE52F, 0 x467C, 0 x8E, 0 x3D, 0 xC4, 0 x57, 0 x92, 0 x91, 0 x69, 0 x2E}
RIDL!{#[ uuid(0 xBCDE0395, 0 xE52F, 0 x467C, 0 x8E, 0 x3D, 0 xC4, 0 x57, 0 x92, 0 x91, 0 x69, 0 x2E)]
class MMDeviceEnumerator;}
Messung V0.5 in Prozent C=97 H=100 G=98
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland