ReactOS 0.4.15-dev-6052-g2626c72
mmdevapi.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _DriverFuncs
 
struct  MMDevice
 

Typedefs

typedef struct _DriverFuncs DriverFuncs
 
typedef struct MMDevice MMDevice
 

Enumerations

enum  _DriverPriority { Priority_Unavailable = 0 , Priority_Low , Priority_Neutral , Priority_Preferred }
 

Functions

HRESULT MMDevEnum_Create (REFIID riid, void **ppv) DECLSPEC_HIDDEN
 
void MMDevEnum_Free (void) DECLSPEC_HIDDEN
 
HRESULT AudioClient_Create (MMDevice *parent, IAudioClient **ppv) DECLSPEC_HIDDEN
 
HRESULT AudioEndpointVolume_Create (MMDevice *parent, IAudioEndpointVolumeEx **ppv) DECLSPEC_HIDDEN
 

Variables

DriverFuncs drvs DECLSPEC_HIDDEN
 

Typedef Documentation

◆ DriverFuncs

◆ MMDevice

Enumeration Type Documentation

◆ _DriverPriority

Enumerator
Priority_Unavailable 
Priority_Low 
Priority_Neutral 
Priority_Preferred 

Definition at line 26 of file mmdevapi.h.

26 {
27 Priority_Unavailable = 0, /* driver won't work */
28 Priority_Low, /* driver may work, but unlikely */
29 Priority_Neutral, /* driver makes no judgment */
30 Priority_Preferred /* driver thinks it's correct */
31};
@ Priority_Neutral
Definition: mmdevapi.h:29
@ Priority_Low
Definition: mmdevapi.h:28
@ Priority_Preferred
Definition: mmdevapi.h:30
@ Priority_Unavailable
Definition: mmdevapi.h:27

Function Documentation

◆ AudioClient_Create()

HRESULT AudioClient_Create ( MMDevice parent,
IAudioClient **  ppv 
)

◆ AudioEndpointVolume_Create()

HRESULT AudioEndpointVolume_Create ( MMDevice parent,
IAudioEndpointVolumeEx **  ppv 
)

Definition at line 305 of file audiovolume.c.

306{
307 AEVImpl *This;
308
309 *ppv = NULL;
311 if (!This)
312 return E_OUTOFMEMORY;
313 This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl;
314 This->ref = 1;
315
316 *ppv = &This->IAudioEndpointVolumeEx_iface;
317 return S_OK;
318}
static const IAudioEndpointVolumeExVtbl AEVImpl_Vtbl
Definition: audiovolume.c:280
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define NULL
Definition: types.h:112
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52

Referenced by MMDevice_Activate().

◆ MMDevEnum_Create()

HRESULT MMDevEnum_Create ( REFIID  riid,
void **  ppv 
)

Definition at line 881 of file devenum.c.

882{
884
885 if (!This)
886 {
887 This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
888 *ppv = NULL;
889 if (!This)
890 return E_OUTOFMEMORY;
891 This->ref = 1;
892 This->IMMDeviceEnumerator_iface.lpVtbl = &MMDevEnumVtbl;
894
898 }
899 return IMMDeviceEnumerator_QueryInterface(&This->IMMDeviceEnumerator_iface, riid, ppv);
900}
static HRESULT load_devices_from_reg(void)
Definition: devenum.c:400
static MMDevEnumImpl * MMDevEnumerator
Definition: devenum.c:82
static HRESULT load_driver_devices(EDataFlow flow)
Definition: devenum.c:491
static const IMMDeviceEnumeratorVtbl MMDevEnumVtbl
Definition: devenum.c:86
REFIID riid
Definition: atlbase.h:39
@ eCapture
Definition: mmdeviceapi.idl:64
@ eRender
Definition: mmdeviceapi.idl:63

◆ MMDevEnum_Free()

void MMDevEnum_Free ( void  )

Definition at line 902 of file devenum.c.

903{
904 while (MMDevice_count)
911}
#define RegCloseKey(hKey)
Definition: registry.h:47
#define HeapFree(x, y, z)
Definition: compat.h:735
static void MMDevice_Destroy(MMDevice *This)
Definition: devenum.c:518
static HKEY key_render
Definition: devenum.c:65
static HKEY key_capture
Definition: devenum.c:66
static DWORD MMDevice_count
Definition: devenum.c:85
static MMDevice ** MMDevice_head
Definition: devenum.c:83

Referenced by DllMain(), and MMDevEnum_Release().

Variable Documentation

◆ DECLSPEC_HIDDEN

const WCHAR drv_keyW [] DECLSPEC_HIDDEN
extern

Definition at line 77 of file mmdevapi.h.