Thanks for your answer, Larry.
[What APIs did you use for this in XP They should continue to work on Vista.]
As I said in earlier post, I used "DirectSoundCapture" to capture that audio stream on the "source-line" selected in Windows record control utility. As you know, DirectSoundCapture buffer can capture the audio stream through the selected mixer line. For example, If "Mic-in" is selected, DirectSoundCapture buffer will capture the audio comes through Mic.-in line. And if "Line-in" is selected, it will capture the audio stream through Lini-in line. Yes, I know this should continue to work on Vista.
However, as the title of this thread saying, I could not find the way to record the audio stream on 'Wave' or 'Stereo Mix' line on Vista Actually, "Line-in" and "Mic-in" are real external "ENDPOINT devices" but 'Wave' or 'Stereo Mix' line are NOT.
Actually, on XP or earlier versino of Windows, I could select 'Wave' or 'Stereo Mix' line through ::mixerXXXX() APIs. For example, I used ::mixerGetLineInfo(...) API to get MIXERLINE structure. And if the "dwComponentType" member of MIXERLINE structure is MIXERLINE_COMPONENTTYPE_DST_WAVEIN, then I used ::mixerGetLineControls(...) API to get MIXERCONTROL structure. And if the "dwControlType" member of MIXERCONTROL structure is MIXERCONTROL_CONTROLTYPE_MUX, I could select the wanted record source line (i.e., 'Wave' or 'Stereo Mix') by using ::mixerGetControlDetails(...) or ::mixerSetControlDetails(...) APIs.
However, the above way using ::mixerXXX APIs makes empty record source line list on Vista. So, as I said, I wrote new code using "Device Topology API" and I could get IAudioInputSelector interface from Mux subunit part. However, this interface also did not give me a solution. IAudioInputSelector interface did not show 'Wave' or 'Stereo Mix' line but it shows only the endpoint devices.
Ok, to make a long story to short, the problem is... although DirectSoundCapture buffer can capture the audio stream through the selected record source line, there's no way to select 'Wave' or 'Stereo Mix' record source line which are not real external "endpoint devices" on Vista.
[WASAPI has a special Loopback mode that allows a client to capture the post-mix audio stream, that may help as well.]
Ok, I'll try writing new code using WASAPI as you said. However, before doing that, could you please confirm that I could capture the audio stream (PCM data) with this API, although there's no 'Wave' or 'Stereo Mix' line in the parts of Device Topologies (When I first re-wrote the code using 'Device Topology API' for selecting 'Wave' or 'Stereo Mix' record source line on Vista for myself, I though there's no need to change DirectSoundCapture code but I need change only the record line selection code for Vista. However, I failed as I explained. So, if I should use WASAPI instead using 'DirectSoundCapture'+'Device Topologies API', I'd like to get confirmation from you that WASAPI will really sort out my problem or not.)