« MSDNをインストール | メイン | 連続再生について »

August 14, 2004

ソースフィルタの変更

asyncio.h/.cppとasyncrdr.h/.cppをそのままコピーしてきて、吉里吉里のCIStreamReaderとCIStreamProxyを別ファイルに分離して、それをインクルード。
VC.NET 2003でビルドするとasyncio.cppでビルドエラーが。
単に型チェックが厳しくなっただけのようだ。
asyncio.cppの422行目のCreateThreadへ渡す関数ポインタを(LPTHREAD_START_ROUTINE)にキャストしたらビルドが通る。たぶん、これで大丈夫だろう(あまりこういうことはしない方がいいけど)。

ビルドが通ることを確認したので、ソースフィルタを変更する。
と言っても、AddFilterでCIStreamReaderをグラフに追加し、その出力ピンとレンダーをつなぐだけ。
IStreamはとりあえずSHCreateStreamOnFileでお手軽に生成。
でも、SHCreateStreamOnFileに渡すファイル名はなぜかマルチバイト文字セット。
仕方なく、WideCharToMultiByteで変換する。
なんで、ワイド文字列(Unicode)じゃないのだろうか?
シェル系はワイド文字列が多かったはずだが・・・あれ?逆だったかな?
まあ、いいか。どっちでも。面倒だけど。
で、前回と同じように再生されることを確認。
なんか、かなりあっさりと出来た。

次はいよいよメモリからの再生。
でも、そんなに難しくはなさそう。
IStreamを継承したクラスを作って、ぽんっと渡せば済みそうだし。

投稿者 Takenori : August 14, 2004 07:25 PM

Trackback Pings

このエントリーのトラックバックURL:
http://blog.kaede-software.com/mt-tb.cgi/89

コメント

Total : Today : Yesterday :