Windows の "directshow" ヘッダーには、C++ クラス定義と、それらに相当する "C" 構造体の両方があることを認識しています。
私の質問は、C++ メソッド (この場合は C--ffmpeg から) を呼び出してクラスが返された場合、渡されたオブジェクトがさまざまなインターフェイスの「is a」テストに合格したかどうかをどのように判断できますか? さまざまなインターフェイスメソッドにキャストするにはどうすればよいですか? それが理にかなっていれば。(すべてストレート C から)。
問題の例は、ffmpeg の dshow レイヤーが与えられた場合です: https://github.com/FFmpeg/FFmpeg/tree/master/libavdevice私は IPin にアクセスできます。今、それらを IAMBufferNegotiation にキャストしたい (それらがそのインターフェイスを実装している場合)この例では: http://sid6581.wordpress.com/2006/10/09/minimizing-audio-capture-latency-in-directshow/
ありがとう!