I use headers by Clootie (directshow9.pas, size - 1,328,751b). When I add video stream, it is all OK. But when add audio stream, it returns E_INVALIDARG, but I do everything exact like in MSDN examples!!!!
The code:

Code:
var
 AMStream: IAMMultiMediaStream;
 DummyVideoStream, DummyAudioStream: IMediaStream;
 DSResult: HRESULT;
 FDirectDraw: IDirectDraw;
begin
 ...
  Initialize Direct Draw
 ...
 CoCreateInstance(CLSID_AMMultiMediaStream, nil,
   CLSCTX_INPROC_SERVER, IID_IAMMultiMediaStream, AMStream);
 AMStream.Initialize(STREAMTYPE_READ, AMMSF_NOGRAPHTHREAD, nil);
 AMStream.AddMediaStream(FDirectDraw, @MSPID_PrimaryVideo, 0,
   DummyVideoStream); // All OK here (video)
 AMStream.AddMediaStream(nil, @MSPID_PrimaryAudio, AMMSF_ADDDEFAULTRENDERER,
   DummyAudioStream); // [b]!!This call returns E_INVALIDARG!![/b]
I can only suppose, that it is problem with headers: for example I use wrong header version (I have DirectX 9.0 drivers)

P.S. I have SB Live! sound card, also I tested this program on other machine with Vibra 128 sound card.