ReactOS  0.4.13-dev-1148-g9b75b67
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 30 of file mmdevapi.h.

30  {
31  Priority_Unavailable = 0, /* driver won't work */
32  Priority_Low, /* driver may work, but unlikely */
33  Priority_Neutral, /* driver makes no judgment */
34  Priority_Preferred /* driver thinks it's correct */
35 };

Function Documentation

◆ AudioClient_Create()

HRESULT AudioClient_Create ( MMDevice parent,
IAudioClient **  ppv 
)

◆ AudioEndpointVolume_Create()

HRESULT AudioEndpointVolume_Create ( MMDevice parent,
IAudioEndpointVolumeEx **  ppv 
)

Definition at line 307 of file audiovolume.c.

308 {
309  AEVImpl *This;
310 
311  *ppv = NULL;
313  if (!This)
314  return E_OUTOFMEMORY;
315  This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl;
316  This->ref = 1;
317 
318  *ppv = &This->IAudioEndpointVolumeEx_iface;
319  return S_OK;
320 }
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define S_OK
Definition: intsafe.h:59
#define HEAP_ZERO_MEMORY
Definition: compat.h:123
static const IAudioEndpointVolumeExVtbl AEVImpl_Vtbl
Definition: audiovolume.c:282

Referenced by MMDevice_Activate().

◆ MMDevEnum_Create()

HRESULT MMDevEnum_Create ( REFIID  riid,
void **  ppv 
)

Definition at line 884 of file devenum.c.

885 {
887 
888  if (!This)
889  {
890  This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
891  *ppv = NULL;
892  if (!This)
893  return E_OUTOFMEMORY;
894  This->ref = 1;
895  This->IMMDeviceEnumerator_iface.lpVtbl = &MMDevEnumVtbl;
897 
901  }
902  return IMMDeviceEnumerator_QueryInterface(&This->IMMDeviceEnumerator_iface, riid, ppv);
903 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static HRESULT load_devices_from_reg(void)
Definition: devenum.c:403
smooth NULL
Definition: ftsmooth.c:416
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static const IMMDeviceEnumeratorVtbl MMDevEnumVtbl
Definition: devenum.c:89
static HRESULT load_driver_devices(EDataFlow flow)
Definition: devenum.c:494
static MMDevEnumImpl * MMDevEnumerator
Definition: devenum.c:85

◆ MMDevEnum_Free()

void MMDevEnum_Free ( void  )

Definition at line 905 of file devenum.c.

906 {
907  while (MMDevice_count)
914 }
static void MMDevice_Destroy(MMDevice *This)
Definition: devenum.c:521
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
smooth NULL
Definition: ftsmooth.c:416
static MMDevice ** MMDevice_head
Definition: devenum.c:86
#define GetProcessHeap()
Definition: compat.h:395
static HKEY key_capture
Definition: devenum.c:69
static HKEY key_render
Definition: devenum.c:68
static MMDevEnumImpl * MMDevEnumerator
Definition: devenum.c:85
static DWORD MMDevice_count
Definition: devenum.c:88
#define HeapFree(x, y, z)
Definition: compat.h:394

Referenced by DllMain(), and MMDevEnum_Release().

Variable Documentation

◆ DECLSPEC_HIDDEN

const WCHAR drv_keyW [] DECLSPEC_HIDDEN

Definition at line 81 of file mmdevapi.h.