ReactOS  0.4.14-dev-317-g96040ec
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 };

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 }
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:280

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 }
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:400
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:86
static HRESULT load_driver_devices(EDataFlow flow)
Definition: devenum.c:491
static MMDevEnumImpl * MMDevEnumerator
Definition: devenum.c:82

◆ MMDevEnum_Free()

void MMDevEnum_Free ( void  )

Definition at line 902 of file devenum.c.

903 {
904  while (MMDevice_count)
911 }
static void MMDevice_Destroy(MMDevice *This)
Definition: devenum.c:518
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
smooth NULL
Definition: ftsmooth.c:416
static MMDevice ** MMDevice_head
Definition: devenum.c:83
#define GetProcessHeap()
Definition: compat.h:395
static HKEY key_capture
Definition: devenum.c:66
static HKEY key_render
Definition: devenum.c:65
static MMDevEnumImpl * MMDevEnumerator
Definition: devenum.c:82
static DWORD MMDevice_count
Definition: devenum.c:85
#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 77 of file mmdevapi.h.