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 (CALLBACK
*PMIXER_EVENT
)(
51 IN PVOID MixerEventContext
,
53 IN ULONG NotificationType
,
56 typedef VOID (*PMIXER_COPY
)(
61 typedef MIXER_STATUS(*PMIXER_QUERY_KEY_VALUE
)(
64 OUT PVOID
* ResultBuffer
,
65 OUT PULONG ResultLength
,
68 typedef MIXER_STATUS(*PMIXER_OPEN_KEY
)(
71 IN ULONG DesiredAccess
,
74 typedef PVOID (*PMIXER_ALLOC_EVENT_DATA
)(
77 typedef VOID (*PMIXER_FREE_EVENT_DATA
)(
80 typedef MIXER_STATUS (*PIN_CREATE_CALLBACK
)(
85 IN PKSPIN_CONNECT PinConnect
,
86 IN ACCESS_MASK DesiredAccess
,
87 OUT PHANDLE PinHandle
);
95 PMIXER_DEVICE_CONTROL Control
;
100 PMIXER_OPEN_KEY OpenKey
;
101 PMIXER_QUERY_KEY_VALUE QueryKeyValue
;
102 PMIXER_CLOSEKEY CloseKey
;
103 PMIXER_ALLOC_EVENT_DATA AllocEventData
;
104 PMIXER_FREE_EVENT_DATA FreeEventData
;
105 }MIXER_CONTEXT
, *PMIXER_CONTEXT
;
109 IN PMIXER_CONTEXT MixerContext
,
110 IN PMIXER_ENUM EnumFunction
,
111 IN PVOID EnumContext
);
115 IN PMIXER_CONTEXT MixerContext
);
118 MMixerGetWaveInCount(
119 IN PMIXER_CONTEXT MixerContext
);
122 MMixerGetWaveOutCount(
123 IN PMIXER_CONTEXT MixerContext
);
126 MMixerGetMidiInCount(
127 IN PMIXER_CONTEXT MixerContext
);
130 MMixerGetMidiOutCount(
131 IN PMIXER_CONTEXT MixerContext
);
136 MMixerGetCapabilities(
137 IN PMIXER_CONTEXT MixerContext
,
139 OUT LPMIXERCAPSW MixerCaps
);
143 IN PMIXER_CONTEXT MixerContext
,
145 IN PVOID MixerEventContext
,
146 IN PMIXER_EVENT MixerEventRoutine
,
147 OUT PHANDLE MixerHandle
);
151 IN PMIXER_CONTEXT MixerContext
,
153 IN PVOID MixerEventContext
,
154 IN PMIXER_EVENT MixerEventRoutine
);
158 IN PMIXER_CONTEXT MixerContext
,
159 IN HANDLE MixerHandle
,
162 OUT LPMIXERLINEW MixerLine
);
165 MMixerGetLineControls(
166 IN PMIXER_CONTEXT MixerContext
,
167 IN HANDLE MixerHandle
,
170 OUT LPMIXERLINECONTROLSW MixerLineControls
);
173 MMixerSetControlDetails(
174 IN PMIXER_CONTEXT MixerContext
,
175 IN HANDLE MixerHandle
,
178 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
181 MMixerGetControlDetails(
182 IN PMIXER_CONTEXT MixerContext
,
183 IN HANDLE MixerHandle
,
186 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
189 MMixerWaveOutCapabilities(
190 IN PMIXER_CONTEXT MixerContext
,
191 IN ULONG DeviceIndex
,
192 OUT LPWAVEOUTCAPSW Caps
);
195 MMixerWaveInCapabilities(
196 IN PMIXER_CONTEXT MixerContext
,
197 IN ULONG DeviceIndex
,
198 OUT LPWAVEINCAPSW Caps
);
202 IN PMIXER_CONTEXT MixerContext
,
203 IN ULONG DeviceIndex
,
205 IN LPWAVEFORMATEX WaveFormat
,
206 IN PIN_CREATE_CALLBACK CreateCallback
,
208 OUT PHANDLE PinHandle
);
212 IN PMIXER_CONTEXT MixerContext
,
217 MMixerSetWaveResetState(
218 IN PMIXER_CONTEXT MixerContext
,
223 MMixerGetWaveDevicePath(
224 IN PMIXER_CONTEXT MixerContext
,
227 OUT LPWSTR
* DevicePath
);
230 MMixerMidiOutCapabilities(
231 IN PMIXER_CONTEXT MixerContext
,
232 IN ULONG DeviceIndex
,
233 OUT LPMIDIOUTCAPSW Caps
);
236 MMixerMidiInCapabilities(
237 IN PMIXER_CONTEXT MixerContext
,
238 IN ULONG DeviceIndex
,
239 OUT LPMIDIINCAPSW Caps
);
242 MMixerGetMidiDevicePath(
243 IN PMIXER_CONTEXT MixerContext
,
246 OUT LPWSTR
* DevicePath
);
250 IN PMIXER_CONTEXT MixerContext
,
256 IN PMIXER_CONTEXT MixerContext
,
257 IN ULONG DeviceIndex
,
259 IN PIN_CREATE_CALLBACK CreateCallback
,
261 OUT PHANDLE PinHandle
);