« とりあえずシングルバッファで作り、登録 | メイン | フィルタの修正 »

September 02, 2004

インターフェイスの変更(?)

レンダーからイベントを送るため、IMediaEventSinkをセットするメソッドを追加したいと思い、IDLファイルにメソッドを追記し、IMediaEventSink型を使うために、import "axextend.idl";を追加する。
と、やっていてふと気付く、フィルタはイベントを送るんだから、IMediaEventSinkははじめから持っているんじゃないかと。
調べると・・・あった。
CBaseFilter.m_pSinkだ。
IMediaEventSinkを設定する関数は無駄だったんですね。
で、作っていた物を書き換えて動作確認する。
問題なく動いた。
IMediaEventSink関連の処理は全くの無駄だった。(涙
無駄な処理を削除していくのもまた悲しい。
それはともかく、MediaTypeを取得する物もインターフェイスへ追加しようと思ったが、フィルターではなく、ピンの方のIPin::ConnectionMediaTypeで取得できることがわかったので、やめる。
まあ、これ関連の処理も全くの無駄だったんだけど、これはこれで処理は短くなっていたので良しとしよう。書き換えないといけないけど。
で、結局インターフェイスはそのままでいいことになった。

投稿者 Takenori : September 2, 2004 09:32 PM

Trackback Pings

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

コメント

Total : Today : Yesterday :