Método IMFASFSplitter::GetSelectedStreams (wmcontainer.h)
Obtém uma lista de fluxos selecionados no momento.
Sintaxe
HRESULT GetSelectedStreams(
[out] WORD *pwStreamNumbers,
[in, out] WORD *pwNumStreams
);
Parâmetros
[out] pwStreamNumbers
O endereço de uma matriz de WORDs. Essa matriz recebe os números de fluxo dos fluxos selecionados. Este parâmetro pode ser NULL.
[in, out] pwNumStreams
Na entrada, aponta para uma variável que contém o número de elementos na matriz pwStreamNumbers . Defina a variável como zero se pwStreamNumbers for NULL.
Na saída, recebe o número de elementos que foram copiados em pwStreamNumbers. Cada elemento é o identificador de um fluxo selecionado.
Retornar valor
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
Argumento inválido. |
|
A matriz pwStreamNumbers é menor que o número de fluxos selecionados. Consulte Observações. |
Comentários
Para obter o número de fluxos selecionados, defina pwStreamNumbers como NULL. O método retornará MF_E_BUFFERTOSMALL , mas também definirá o valor igual *pwNumStreams
ao número de fluxos selecionados. Em seguida, aloque uma matriz desse tamanho e chame o método novamente, passando a matriz no parâmetro pwStreamNumbers .
O código a seguir mostra essas etapas:
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;
}
Como alternativa, você pode alocar uma matriz igual ao número total de fluxos e passá-la para pwStreamNumbers.
Antes de chamar esse método, inicialize *pwNumStreams
para o número de elementos em pwStreamNumbers. Se pwStreamNumbers for NULL, defina como *pwNumStreams
zero.
Por padrão, nenhum fluxo é selecionado pelo divisor. Selecione fluxos chamando o método IMFASFSplitter::SelectStreams .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wmcontainer.h |
Biblioteca | Mfuuid.lib |