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
);
127 MMixerGetCapabilities(
128 IN PMIXER_CONTEXT MixerContext
,
130 OUT LPMIXERCAPSW MixerCaps
);
134 IN PMIXER_CONTEXT MixerContext
,
136 IN PVOID MixerEventContext
,
137 IN PMIXER_EVENT MixerEventRoutine
,
138 OUT PHANDLE MixerHandle
);
142 IN PMIXER_CONTEXT MixerContext
,
143 IN HANDLE MixerHandle
,
145 OUT LPMIXERLINEW MixerLine
);
148 MMixerGetLineControls(
149 IN PMIXER_CONTEXT MixerContext
,
150 IN HANDLE MixerHandle
,
152 OUT LPMIXERLINECONTROLSW MixerLineControls
);
155 MMixerSetControlDetails(
156 IN PMIXER_CONTEXT MixerContext
,
157 IN HANDLE MixerHandle
,
159 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
162 MMixerGetControlDetails(
163 IN PMIXER_CONTEXT MixerContext
,
164 IN HANDLE MixerHandle
,
166 OUT LPMIXERCONTROLDETAILS MixerControlDetails
);
169 MMixerWaveOutCapabilities(
170 IN PMIXER_CONTEXT MixerContext
,
171 IN ULONG DeviceIndex
,
172 OUT LPWAVEOUTCAPSW Caps
);
175 MMixerWaveInCapabilities(
176 IN PMIXER_CONTEXT MixerContext
,
177 IN ULONG DeviceIndex
,
178 OUT LPWAVEINCAPSW Caps
);
182 IN PMIXER_CONTEXT MixerContext
,
183 IN ULONG DeviceIndex
,
185 IN LPWAVEFORMATEX WaveFormat
,
186 IN PIN_CREATE_CALLBACK CreateCallback
,
188 OUT PHANDLE PinHandle
);
192 IN PMIXER_CONTEXT MixerContext
,
197 MMixerGetWaveDevicePath(
198 IN PMIXER_CONTEXT MixerContext
,
201 OUT LPWSTR
* DevicePath
);