-#ifndef MIXER_H__
-#define MIXER_H__
+#pragma once
typedef enum
{
IN HANDLE hKey);
typedef VOID (*PMIXER_EVENT)(
- IN PVOID MixerEvent);
+ IN PVOID MixerEventContext,
+ IN HANDLE hMixer,
+ IN ULONG NotificationType,
+ IN ULONG Value);
typedef VOID (*PMIXER_COPY)(
IN PVOID Dst,
typedef VOID (*PMIXER_FREE_EVENT_DATA)(
IN PVOID EventData);
+typedef MIXER_STATUS (*PIN_CREATE_CALLBACK)(
+ IN PVOID Context,
+ IN ULONG DeviceId,
+ IN ULONG PinId,
+ IN HANDLE hFilter,
+ IN PKSPIN_CONNECT PinConnect,
+ IN ACCESS_MASK DesiredAccess,
+ OUT PHANDLE PinHandle);
+
typedef struct
{
ULONG SizeOfStruct;
MMixerGetWaveOutCount(
IN PMIXER_CONTEXT MixerContext);
+ULONG
+MMixerGetMidiInCount(
+ IN PMIXER_CONTEXT MixerContext);
+
+ULONG
+MMixerGetMidiOutCount(
+ IN PMIXER_CONTEXT MixerContext);
+
+
MIXER_STATUS
MMixerGetCapabilities(
MMixerOpen(
IN PMIXER_CONTEXT MixerContext,
IN ULONG MixerId,
- IN PVOID MixerEvent,
+ IN PVOID MixerEventContext,
IN PMIXER_EVENT MixerEventRoutine,
OUT PHANDLE MixerHandle);
IN ULONG DeviceIndex,
IN ULONG bWaveIn,
IN LPWAVEFORMATEX WaveFormat,
+ IN PIN_CREATE_CALLBACK CreateCallback,
+ IN PVOID Context,
OUT PHANDLE PinHandle);
MIXER_STATUS
IN HANDLE PinHandle,
IN KSSTATE State);
-#endif
+MIXER_STATUS
+MMixerGetWaveDevicePath(
+ IN PMIXER_CONTEXT MixerContext,
+ IN ULONG bWaveIn,
+ IN ULONG DeviceId,
+ OUT LPWSTR * DevicePath);
+
+MIXER_STATUS
+MMixerMidiOutCapabilities(
+ IN PMIXER_CONTEXT MixerContext,
+ IN ULONG DeviceIndex,
+ OUT LPMIDIOUTCAPSW Caps);
+
+MIXER_STATUS
+MMixerMidiInCapabilities(
+ IN PMIXER_CONTEXT MixerContext,
+ IN ULONG DeviceIndex,
+ OUT LPMIDIINCAPSW Caps);
+
+MIXER_STATUS
+MMixerGetMidiDevicePath(
+ IN PMIXER_CONTEXT MixerContext,
+ IN ULONG bMidiIn,
+ IN ULONG DeviceId,
+ OUT LPWSTR * DevicePath);
+
+MIXER_STATUS
+MMixerSetMidiStatus(
+ IN PMIXER_CONTEXT MixerContext,
+ IN HANDLE PinHandle,
+ IN KSSTATE State);
+
+MIXER_STATUS
+MMixerOpenMidi(
+ IN PMIXER_CONTEXT MixerContext,
+ IN ULONG DeviceIndex,
+ IN ULONG bMidiIn,
+ IN PIN_CREATE_CALLBACK CreateCallback,
+ IN PVOID Context,
+ OUT PHANDLE PinHandle);