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
)(
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
,
154 OUT LPMIXERLINEW MixerLine
);
157 MMixerGetLineControls(
158 IN PMIXER_CONTEXT MixerContext
,
159 IN HANDLE MixerHandle
,
161 OUT LPMIXERLINECONTROLSW MixerLineControls
);
164 MMixerSetControlDetails(
165 IN PMIXER_CONTEXT MixerContext
,
166 IN HANDLE MixerHandle
,
168 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
171 MMixerGetControlDetails(
172 IN PMIXER_CONTEXT MixerContext
,
173 IN HANDLE MixerHandle
,
175 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
178 MMixerWaveOutCapabilities(
179 IN PMIXER_CONTEXT MixerContext
,
180 IN ULONG DeviceIndex
,
181 OUT LPWAVEOUTCAPSW Caps
);
184 MMixerWaveInCapabilities(
185 IN PMIXER_CONTEXT MixerContext
,
186 IN ULONG DeviceIndex
,
187 OUT LPWAVEINCAPSW Caps
);
191 IN PMIXER_CONTEXT MixerContext
,
192 IN ULONG DeviceIndex
,
194 IN LPWAVEFORMATEX WaveFormat
,
195 IN PIN_CREATE_CALLBACK CreateCallback
,
197 OUT PHANDLE PinHandle
);
201 IN PMIXER_CONTEXT MixerContext
,
206 MMixerGetWaveDevicePath(
207 IN PMIXER_CONTEXT MixerContext
,
210 OUT LPWSTR
* DevicePath
);
213 MMixerMidiOutCapabilities(
214 IN PMIXER_CONTEXT MixerContext
,
215 IN ULONG DeviceIndex
,
216 OUT LPMIDIOUTCAPSW Caps
);
219 MMixerMidiInCapabilities(
220 IN PMIXER_CONTEXT MixerContext
,
221 IN ULONG DeviceIndex
,
222 OUT LPMIDIINCAPSW Caps
);
225 MMixerGetMidiDevicePath(
226 IN PMIXER_CONTEXT MixerContext
,
229 OUT LPWSTR
* DevicePath
);
233 IN PMIXER_CONTEXT MixerContext
,
239 IN PMIXER_CONTEXT MixerContext
,
240 IN ULONG DeviceIndex
,
242 IN PIN_CREATE_CALLBACK CreateCallback
,
244 OUT PHANDLE PinHandle
);