enums — Является ли этот параметр C ++ [out] указателем на перечисление или только одним значением?

В настоящее время я работаю с DirectShow.NET, неофициальный «порт» .NET для Microsoft DirectShow (C ++).

И то и другое IAMAnalogVideoDecoder а также IAMTVTuner объявить метод get_AvailableVideoFormats, Вот как метод определен в официальных документах:

HRESULT get_AvailableTVFormats(
[out]  long *lAnalogVideoStandard
);

Мне не ясно, является ли этот параметр указателем на один AnalogVideoStandardили перечисление. К сожалению, я слишком неопытен в C ++, чтобы полностью понимать документы. Из-за имени метода я бы ожидал, что это будет перечисление, но так ли это?

Я спрашиваю об этом потому, что в библиотеке .NET этот параметр не является перечислением, а представляет собой одно значение. Я нахожу это очень странным, так как я ожидаю получить здесь несколько «доступных видеоформатов».


Кстати, AnalogVideoStandard это перечисление.

0

Решение

Мне не ясно, является ли этот параметр указателем на один AnalogVideoStandard или перечислением.

Это ни1:

Указатель на переменную, которая получает побитовое ИЛИ с нулем или более флагов из перечисления AnalogVideoStandard.

Это указатель на значение, которое представляет ноль или более AnalogVideoStandards.

Этот ответ Остальное должен объяснить. Вы должны быть в состоянии подать заявку этот ответ в ваш код .NET.

1 Технически это может быть Значение перечисления в C #, потому что enum типы могут иметь FlagsAttribute применяется к ним, но нет эквивалента в C ++, вы просто | ценности вместе без особой помпы.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]