However, if I wrap the data in code which presents it through an IStream,
and call IWMReader::OpenStream(), it fails in an obscure way. I receive a
callback with a successful WMT_OPENED status, but then before any samples
are decoded I get a WMT_ERROR status with the HRESULT 0x80070006 ("The
handle is invalid"). What handle? The data value for the callback is zero,
which would certainly be an invalid handle, but that doesn't help much.
This happens both with my own IStream object and with the ReadFromStream app
in the SDK samples directory (after fixing the bugs in that!), so I don't
think it's a bug in my code.
It didn't happen with WM7/8 :-(((
It also doesn't happen if the WMA file has a finalised header. In some cases
I can frig the header as it's created, but in the general case I want to be
able to handle live audio, where I won't be able to work out the correct
values in advance.
I've tried implementing the poorly-documented IWMIStreamProps interface, but
that hasn't made any difference. I wonder about the QueryInterface call for
the undocumented {94BC0598...} interface, but a Google search has found
nothing except a couple of other people also wondering about it.
--
Steve Rencontre
(From: address is junk but Reply-To: is valid)