// 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_float;
use shared::basetsd::{UINT32, UINT64};
use shared::guiddef::{LPCGUID, REFIID};
use shared::minwindef::{BYTE, DWORD, LPVOID};
use shared::mmreg::WAVEFORMATEX;
use shared::winerror::{FACILITY_AUDCLNT, SEVERITY_ERROR, SEVERITY_SUCCESS};
use shared::wtypesbase::SCODE;
use um::audiosessiontypes::AUDCLNT_SHAREMODE;
use um::strmif::REFERENCE_TIME;
use um::unknwnbase::{IUnknown, IUnknownVtbl};
use um::winnt::{HANDLE, HRESULT};
//1627
pub const AUDCLNT_E_NOT_INITIALIZED: HRESULT = AUDCLNT_ERR!(
0 x001);
pub const AUDCLNT_E_ALREADY_INITIALIZED: HRESULT = AUDCLNT_ERR!(
0 x002);
pub const AUDCLNT_E_WRONG_ENDPOINT_TYPE: HRESULT = AUDCLNT_ERR!(
0 x003);
pub const AUDCLNT_E_DEVICE_INVALIDATED: HRESULT = AUDCLNT_ERR!(
0 x004);
pub const AUDCLNT_E_NOT_STOPPED: HRESULT = AUDCLNT_ERR!(
0 x005);
pub const AUDCLNT_E_BUFFER_TOO_LARGE: HRESULT = AUDCLNT_ERR!(
0 x006);
pub const AUDCLNT_E_OUT_OF_ORDER: HRESULT = AUDCLNT_ERR!(
0 x007);
pub const AUDCLNT_E_UNSUPPORTED_FORMAT: HRESULT = AUDCLNT_ERR!(
0 x008);
pub const AUDCLNT_E_INVALID_SIZE: HRESULT = AUDCLNT_ERR!(
0 x009);
pub const AUDCLNT_E_DEVICE_IN_USE: HRESULT = AUDCLNT_ERR!(
0 x00a);
pub const AUDCLNT_E_BUFFER_OPERATION_PENDING: HRESULT = AUDCLNT_ERR!(
0 x00b);
pub const AUDCLNT_E_THREAD_NOT_REGISTERED: HRESULT = AUDCLNT_ERR!(
0 x00c);
pub const AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED: HRESULT = AUDCLNT_ERR!(
0 x00e);
pub const AUDCLNT_E_ENDPOINT_CREATE_FAILED: HRESULT = AUDCLNT_ERR!(
0 x00f);
pub const AUDCLNT_E_SERVICE_NOT_RUNNING: HRESULT = AUDCLNT_ERR!(
0 x010);
pub const AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED: HRESULT = AUDCLNT_ERR!(
0 x011);
pub const AUDCLNT_E_EXCLUSIVE_MODE_ONLY: HRESULT = AUDCLNT_ERR!(
0 x012);
pub const AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL: HRESULT = AUDCLNT_ERR!(
0 x013);
pub const AUDCLNT_E_EVENTHANDLE_NOT_SET: HRESULT = AUDCLNT_ERR!(
0 x014);
pub const AUDCLNT_E_INCORRECT_BUFFER_SIZE: HRESULT = AUDCLNT_ERR!(
0 x015);
pub const AUDCLNT_E_BUFFER_SIZE_ERROR: HRESULT = AUDCLNT_ERR!(
0 x016);
pub const AUDCLNT_E_CPUUSAGE_EXCEEDED: HRESULT = AUDCLNT_ERR!(
0 x017);
pub const AUDCLNT_E_BUFFER_ERROR: HRESULT = AUDCLNT_ERR!(
0 x018);
pub const AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED: HRESULT = AUDCLNT_ERR!(
0 x019);
pub const AUDCLNT_E_INVALID_DEVICE_PERIOD: HRESULT = AUDCLNT_ERR!(
0 x020);
pub const AUDCLNT_E_INVALID_STREAM_FLAG: HRESULT = AUDCLNT_ERR!(
0 x021);
pub const AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE: HRESULT = AUDCLNT_ERR!(
0 x022);
pub const AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES: HRESULT = AUDCLNT_ERR!(
0 x023);
pub const AUDCLNT_E_OFFLOAD_MODE_ONLY: HRESULT = AUDCLNT_ERR!(
0 x024);
pub const AUDCLNT_E_NONOFFLOAD_MODE_ONLY: HRESULT = AUDCLNT_ERR!(
0 x025);
pub const AUDCLNT_E_RESOURCES_INVALIDATED: HRESULT = AUDCLNT_ERR!(
0 x026);
pub const AUDCLNT_E_RAW_MODE_UNSUPPORTED: HRESULT = AUDCLNT_ERR!(
0 x027);
pub const AUDCLNT_S_BUFFER_EMPTY: SCODE = AUDCLNT_SUCCESS!(
0 x001);
pub const AUDCLNT_S_THREAD_ALREADY_REGISTERED: SCODE = AUDCLNT_SUCCESS!(
0 x002);
pub const AUDCLNT_S_POSITION_STALLED: SCODE = AUDCLNT_SUCCESS!(
0 x003);
ENUM !{
enum AUDCLNT_BUFFERFLAGS {
AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY =
0 x1,
AUDCLNT_BUFFERFLAGS_SILENT =
0 x2,
AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR =
0 x4,
}}
DEFINE_GUID!{IID_IAudioClient,
0 x1CB9AD4C,
0 xDBFA,
0 x4c32,
0 xB1,
0 x78,
0 xC2,
0 xF5,
0 x68,
0 xA7,
0 x03,
0 xB2}
DEFINE_GUID!{IID_IAudioRenderClient,
0 xF294ACFC,
0 x3146,
0 x4483,
0 xA7,
0 xBF,
0 xAD,
0 xDC,
0 xA7,
0 xC2,
0 x60,
0 xE2}
DEFINE_GUID!{IID_IAudioCaptureClient,
0 xc8adbd64,
0 xe71e,
0 x48a0,
0 xa4,
0 xde,
0 x18,
0 x5c,
0 x39,
0 x5c,
0 xd3,
0 x17}
DEFINE_GUID!{IID_IAudioClock,
0 xcd63314f,
0 x3fba,
0 x4a1b,
0 x81,
0 x2c,
0 xef,
0 x96,
0 x35,
0 x87,
0 x28,
0 xe7}
DEFINE_GUID!{IID_IAudioStreamVolume,
0 x93014887,
0 x242d,
0 x4068,
0 x8a,
0 x15,
0 xcf,
0 x5e,
0 x93,
0 xb9,
0 x0f,
0 xe3}
RIDL!{
#[ uuid(
0 x1cb9ad4c,
0 xdbfa,
0 x4c32,
0 xb1,
0 x78,
0 xc2,
0 xf5,
0 x68,
0 xa7,
0 x03,
0 xb2)]
interface IAudioClient(IAudioClientVtbl): IUnknown(IUnknownVtbl) {
fn Initialize(
ShareMode: AUDCLNT_SHAREMODE,
StreamFlags: DWORD,
hnsBufferDuration: REFERENCE_TIME,
hnsPeriodicity: REFERENCE_TIME,
pFormat: *
const WAVEFORMATEX,
AudioSessionGuid: LPCGUID,
) -> HRESULT,
fn GetBufferSize(
pNumBufferFrames: *
mut UINT32,
) -> HRESULT,
fn GetStreamLatency(
phnsLatency: *
mut REFERENCE_TIME,
) -> HRESULT,
fn GetCurrentPadding(
pNumPaddingFrames: *
mut UINT32,
) -> HRESULT,
fn IsFormatSupported(
ShareMode: AUDCLNT_SHAREMODE,
pFormat: *
const WAVEFORMATEX,
ppClosestMatch: *
mut *
mut WAVEFORMATEX,
) -> HRESULT,
fn GetMixFormat(
ppDeviceFormat: *
mut *
mut WAVEFORMATEX,
) -> HRESULT,
fn GetDevicePeriod(
phnsDefaultDevicePeriod: *
mut REFERENCE_TIME,
phnsMinimumDevicePeriod: *
mut REFERENCE_TIME,
) -> HRESULT,
fn Start() -> HRESULT,
fn Stop() -> HRESULT,
fn Reset() -> HRESULT,
fn SetEventHandle(
eventHandle: HANDLE,
) -> HRESULT,
fn GetService(
riid: REFIID,
ppv: *
mut LPVOID,
) -> HRESULT,
}}
RIDL!{
#[ uuid(
0 xf294acfc,
0 x3146,
0 x4483,
0 xa7,
0 xbf,
0 xad,
0 xdc,
0 xa7,
0 xc2,
0 x60,
0 xe2)]
interface IAudioRenderClient(IAudioRenderClientVtbl): IUnknown(IUnknownVtbl) {
fn GetBuffer(
NumFramesRequested: UINT32,
ppData: *
mut *
mut BYTE,
) -> HRESULT,
fn ReleaseBuffer(
NumFramesWritten: UINT32,
dwFlags: DWORD,
) -> HRESULT,
}}
RIDL!{
#[ uuid(
0 xc8adbd64,
0 xe71e,
0 x48a0,
0 xa4,
0 xde,
0 x18,
0 x5c,
0 x39,
0 x5c,
0 xd3,
0 x17)]
interface IAudioCaptureClient(IAudioCaptureClientVtbl): IUnknown(IUnknownVtbl) {
fn GetBuffer(
ppData: *
mut *
mut BYTE,
pNumFramesToRead: *
mut UINT32,
pdwFlags: *
mut DWORD,
pu64DevicePosition: *
mut UINT64,
pu64QPCPosition: *
mut UINT64,
) -> HRESULT,
fn ReleaseBuffer(
NumFramesRead: UINT32,
) -> HRESULT,
fn GetNextPacketSize(
pNumFramesInNextPacket: *
mut UINT32,
) -> HRESULT,
}}
RIDL!{
#[ uuid(
0 xcd63314f,
0 x3fba,
0 x4a1b,
0 x81,
0 x2c,
0 xef,
0 x96,
0 x35,
0 x87,
0 x28,
0 xe7)]
interface IAudioClock(IAudioClockVtbl): IUnknown(IUnknownVtbl) {
fn GetFrequency(
pu64Frequency: *
mut UINT64,
) -> HRESULT,
fn GetPosition(
pu64Position: *
mut UINT64,
pu64QPCPosition: *
mut UINT64,
) -> HRESULT,
fn GetCharacteristics(
pdwCharacteristics: *
mut DWORD,
) -> HRESULT,
}}
RIDL!{
#[ uuid(
0 x93014887,
0 x242d,
0 x4068,
0 x8a,
0 x15,
0 xcf,
0 x5e,
0 x93,
0 xb9,
0 x0f,
0 xe3)]
interface IAudioStreamVolume(IAudioStreamVolumeVtbl): IUnknown(IUnknownVtbl) {
fn GetChannelCount(
pdwCount: *
mut UINT32,
) -> HRESULT,
fn SetChannelVolume(
dwIndex: UINT32,
fLevel: c_float,
) -> HRESULT,
fn GetChannelVolume(
dwIndex: UINT32,
pfLevel: *
mut c_float,
) -> HRESULT,
fn SetAllVolumes(
dwCount: UINT32,
pfVolumes: *
const c_float,
) -> HRESULT,
fn GetAllVolumes(
dwCount: UINT32,
pfVolumes: *
mut c_float,
) -> HRESULT,
}}
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