0

現在、Microsoft の DirectShow (C++) の非公式の .NET "ポート" であるDirectShow.NETを使用しています。

IAMAnalogVideoDecoderIAMTVTunerの両方がメソッドを宣言しget_AvailableVideoFormatsます。これは、メソッドが公式ドキュメントで定義されている方法です。

HRESULT get_AvailableTVFormats(
  [out]  long *lAnalogVideoStandard
);

このパラメーターが単一の へのポインターなのAnalogVideoStandardか、列挙型なのかは明確ではありません。残念ながら、私は C++ の経験が浅すぎてドキュメントを完全に理解できません。メソッド名から列挙型だと思いますが、そうでしょうか?

私がこれを尋ねている理由は、.NET ライブラリでは、このパラメーターが列挙型ではなく、単一の値であるためです。ここで複数の「利用可能なビデオ形式」を取得することを期待しているので、これは非常に奇妙です。


ちなみにAnalogVideoStandard列挙型です。

4

1 に答える 1

2

このパラメーターが単一の AnalogVideoStandard へのポインターなのか、列挙型なのかは明確ではありません。

どちらでもない1 :

AnalogVideoStandard 列挙体から 0 個以上のフラグのビットごとの OR を受け取る変数へのポインター。

AnalogVideoStandardこれは、0 個以上の sを表す値へのポインターです。

この答えは残りを説明するはずです。この回答を .NET コードに適用できるはずです。

1技術的にはenum型に を適用できるため、C# では列挙値である可能性がFlagsAttributeありますが、C++ には同等のものはあり|ません。特別なファンファーレなしで値を合わせただけです。

于 2013-01-30T10:22:05.910 に答える