Метод IMFASFSplitter::GetSelectedStreams (wmcontainer.h)
Возвращает список выбранных в данный момент потоков.
Синтаксис
HRESULT GetSelectedStreams(
[out] WORD *pwStreamNumbers,
[in, out] WORD *pwNumStreams
);
Параметры
[out] pwStreamNumbers
Адрес массива WORD. Этот массив получает номера выбранных потоков. Этот параметр может принимать значение NULL.
[in, out] pwNumStreams
При входе указывает на переменную, содержащую количество элементов в массиве pwStreamNumbers . Установите для переменной значение 0, если pwStreamNumbers имеет значение NULL.
В выходных данных получает количество элементов, скопированных в pwStreamNumbers. Каждый элемент является идентификатором выбранного потока.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Недопустимый аргумент. |
|
Массив pwStreamNumbers меньше количества выбранных потоков. См. заметки. |
Комментарии
Чтобы получить количество выбранных потоков, задайте для pwStreamNumbersзначение NULL. Метод возвращает MF_E_BUFFERTOSMALL но также задает значение *pwNumStreams
, равное количеству выбранных потоков. Затем выделите массив этого размера и вызовите метод еще раз, передав массив в параметре pwStreamNumbers .
Следующий код показывает эти действия.
HRESULT DisplaySelectedStreams(IMFASFSplitter *pSplitter)
{
WORD count = 0;
HRESULT hr = pSplitter->GetSelectedStreams(NULL, &count);
if (hr == MF_E_BUFFERTOOSMALL)
{
WORD *pStreamIds = new (std::nothrow) WORD[count];
if (pStreamIds)
{
hr = pSplitter->GetSelectedStreams(pStreamIds, &count);
if (SUCCEEDED(hr))
{
for (WORD i = 0; i < count; i++)
{
printf("Selected stream ID: %d\n", pStreamIds[i]);
}
}
delete [] pStreamIds;
}
else
{
hr = E_OUTOFMEMORY;
}
}
return hr;
}
Кроме того, можно выделить массив, равный общему количеству потоков, и передать его в pwStreamNumbers.
Перед вызовом этого метода инициализируйте *pwNumStreams
количество элементов в pwStreamNumbers. Если pwStreamNumbers имеет значение NULL, задайте нулевое значение *pwNumStreams
.
По умолчанию разделитель не выбирает потоки. Выберите потоки, вызвав метод IMFASFSplitter::SelectStreams .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | wmcontainer.h |
Библиотека | Mfuuid.lib |