В настоящее время я работаю с DirectShow.NET, неофициальный «порт» .NET для Microsoft DirectShow (C ++).
И то и другое IAMAnalogVideoDecoder а также IAMTVTuner объявить метод get_AvailableVideoFormats
, Вот как метод определен в официальных документах:
HRESULT get_AvailableTVFormats(
[out] long *lAnalogVideoStandard
);
Мне не ясно, является ли этот параметр указателем на один AnalogVideoStandard
или перечисление. К сожалению, я слишком неопытен в C ++, чтобы полностью понимать документы. Из-за имени метода я бы ожидал, что это будет перечисление, но так ли это?
Я спрашиваю об этом потому, что в библиотеке .NET этот параметр не является перечислением, а представляет собой одно значение. Я нахожу это очень странным, так как я ожидаю получить здесь несколько «доступных видеоформатов».
Кстати, AnalogVideoStandard
это перечисление.
Мне не ясно, является ли этот параметр указателем на один AnalogVideoStandard или перечислением.
Это ни1:
Указатель на переменную, которая получает побитовое ИЛИ с нулем или более флагов из перечисления AnalogVideoStandard.
Это указатель на значение, которое представляет ноль или более AnalogVideoStandard
s.
Этот ответ Остальное должен объяснить. Вы должны быть в состоянии подать заявку этот ответ в ваш код .NET.
1 Технически это может быть Значение перечисления в C #, потому что enum
типы могут иметь FlagsAttribute
применяется к ним, но нет эквивалента в C ++, вы просто |
ценности вместе без особой помпы.
Других решений пока нет …