6 MM_STATUS_NOTINITIALIZED
,
7 MM_STATUS_NOT_IMPLEMENTED
,
8 MM_STATUS_NO_MORE_DEVICES
,
9 MM_STATUS_MORE_ENTRIES
,
10 MM_STATUS_INVALID_PARAMETER
,
11 MM_STATUS_UNSUCCESSFUL
,
18 typedef PVOID (*PMIXER_ALLOC
)(
19 IN ULONG NumberOfBytes
);
21 typedef VOID (*PMIXER_FREE
)(
24 typedef MIXER_STATUS (*PMIXER_ENUM
)(
27 OUT LPWSTR
* DeviceName
,
28 OUT PHANDLE OutHandle
,
29 OUT PHANDLE OutDevInterfaceKey
);
31 typedef MIXER_STATUS(*PMIXER_DEVICE_CONTROL
)(
33 IN ULONG dwIoControlCode
,
35 IN ULONG nInBufferSize
,
36 OUT PVOID lpOutBuffer
,
38 PULONG lpBytesReturned
);
40 typedef MIXER_STATUS(*PMIXER_OPEN
)(
44 typedef MIXER_STATUS(*PMIXER_CLOSE
)(
47 typedef MIXER_STATUS(*PMIXER_CLOSEKEY
)(
50 typedef VOID (*PMIXER_EVENT
)(
53 typedef VOID (*PMIXER_COPY
)(
58 typedef MIXER_STATUS(*PMIXER_QUERY_KEY_VALUE
)(
61 OUT PVOID
* ResultBuffer
,
62 OUT PULONG ResultLength
,
65 typedef MIXER_STATUS(*PMIXER_OPEN_KEY
)(
68 IN ULONG DesiredAccess
,
71 typedef PVOID (*PMIXER_ALLOC_EVENT_DATA
)(
74 typedef VOID (*PMIXER_FREE_EVENT_DATA
)(
77 typedef MIXER_STATUS (*PIN_CREATE_CALLBACK
)(
82 IN PKSPIN_CONNECT PinConnect
,
83 IN ACCESS_MASK DesiredAccess
,
84 OUT PHANDLE PinHandle
);
92 PMIXER_DEVICE_CONTROL Control
;
97 PMIXER_OPEN_KEY OpenKey
;
98 PMIXER_QUERY_KEY_VALUE QueryKeyValue
;
99 PMIXER_CLOSEKEY CloseKey
;
100 PMIXER_ALLOC_EVENT_DATA AllocEventData
;
101 PMIXER_FREE_EVENT_DATA FreeEventData
;
102 }MIXER_CONTEXT
, *PMIXER_CONTEXT
;
106 IN PMIXER_CONTEXT MixerContext
,
107 IN PMIXER_ENUM EnumFunction
,
108 IN PVOID EnumContext
);
112 IN PMIXER_CONTEXT MixerContext
);
115 MMixerGetWaveInCount(
116 IN PMIXER_CONTEXT MixerContext
);
119 MMixerGetWaveOutCount(
120 IN PMIXER_CONTEXT MixerContext
);
124 MMixerGetCapabilities(
125 IN PMIXER_CONTEXT MixerContext
,
127 OUT LPMIXERCAPSW MixerCaps
);
131 IN PMIXER_CONTEXT MixerContext
,
134 IN PMIXER_EVENT MixerEventRoutine
,
135 OUT PHANDLE MixerHandle
);
139 IN PMIXER_CONTEXT MixerContext
,
140 IN HANDLE MixerHandle
,
142 OUT LPMIXERLINEW MixerLine
);
145 MMixerGetLineControls(
146 IN PMIXER_CONTEXT MixerContext
,
147 IN HANDLE MixerHandle
,
149 OUT LPMIXERLINECONTROLSW MixerLineControls
);
152 MMixerSetControlDetails(
153 IN PMIXER_CONTEXT MixerContext
,
154 IN HANDLE MixerHandle
,
156 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
159 MMixerGetControlDetails(
160 IN PMIXER_CONTEXT MixerContext
,
161 IN HANDLE MixerHandle
,
163 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
166 MMixerWaveOutCapabilities(
167 IN PMIXER_CONTEXT MixerContext
,
168 IN ULONG DeviceIndex
,
169 OUT LPWAVEOUTCAPSW Caps
);
172 MMixerWaveInCapabilities(
173 IN PMIXER_CONTEXT MixerContext
,
174 IN ULONG DeviceIndex
,
175 OUT LPWAVEINCAPSW Caps
);
179 IN PMIXER_CONTEXT MixerContext
,
180 IN ULONG DeviceIndex
,
182 IN LPWAVEFORMATEX WaveFormat
,
183 IN PIN_CREATE_CALLBACK CreateCallback
,
185 OUT PHANDLE PinHandle
);
189 IN PMIXER_CONTEXT MixerContext
,
194 MMixerGetWaveDevicePath(
195 IN PMIXER_CONTEXT MixerContext
,
198 OUT LPWSTR
* DevicePath
);