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
,
152 IN HANDLE MixerHandle
,
155 OUT LPMIXERLINEW MixerLine
);
158 MMixerGetLineControls(
159 IN PMIXER_CONTEXT MixerContext
,
160 IN HANDLE MixerHandle
,
163 OUT LPMIXERLINECONTROLSW MixerLineControls
);
166 MMixerSetControlDetails(
167 IN PMIXER_CONTEXT MixerContext
,
168 IN HANDLE MixerHandle
,
171 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
174 MMixerGetControlDetails(
175 IN PMIXER_CONTEXT MixerContext
,
176 IN HANDLE MixerHandle
,
179 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
182 MMixerWaveOutCapabilities(
183 IN PMIXER_CONTEXT MixerContext
,
184 IN ULONG DeviceIndex
,
185 OUT LPWAVEOUTCAPSW Caps
);
188 MMixerWaveInCapabilities(
189 IN PMIXER_CONTEXT MixerContext
,
190 IN ULONG DeviceIndex
,
191 OUT LPWAVEINCAPSW Caps
);
195 IN PMIXER_CONTEXT MixerContext
,
196 IN ULONG DeviceIndex
,
198 IN LPWAVEFORMATEX WaveFormat
,
199 IN PIN_CREATE_CALLBACK CreateCallback
,
201 OUT PHANDLE PinHandle
);
205 IN PMIXER_CONTEXT MixerContext
,
210 MMixerSetWaveResetState(
211 IN PMIXER_CONTEXT MixerContext
,
216 MMixerGetWaveDevicePath(
217 IN PMIXER_CONTEXT MixerContext
,
220 OUT LPWSTR
* DevicePath
);
223 MMixerMidiOutCapabilities(
224 IN PMIXER_CONTEXT MixerContext
,
225 IN ULONG DeviceIndex
,
226 OUT LPMIDIOUTCAPSW Caps
);
229 MMixerMidiInCapabilities(
230 IN PMIXER_CONTEXT MixerContext
,
231 IN ULONG DeviceIndex
,
232 OUT LPMIDIINCAPSW Caps
);
235 MMixerGetMidiDevicePath(
236 IN PMIXER_CONTEXT MixerContext
,
239 OUT LPWSTR
* DevicePath
);
243 IN PMIXER_CONTEXT MixerContext
,
249 IN PMIXER_CONTEXT MixerContext
,
250 IN ULONG DeviceIndex
,
252 IN PIN_CREATE_CALLBACK CreateCallback
,
254 OUT PHANDLE PinHandle
);