Compartir a través de


Método IMFASFSplitter::GetSelectedStreams (wmcontainer.h)

Obtiene una lista de secuencias seleccionadas actualmente.

Sintaxis

HRESULT GetSelectedStreams(
  [out]     WORD *pwStreamNumbers,
  [in, out] WORD *pwNumStreams
);

Parámetros

[out] pwStreamNumbers

Dirección de una matriz de WORD. Esta matriz recibe los números de secuencia de las secuencias seleccionadas. Este parámetro puede ser NULL.

[in, out] pwNumStreams

En la entrada, apunta a una variable que contiene el número de elementos de la matriz pwStreamNumbers . Establezca la variable en cero si pwStreamNumbers es NULL.

En la salida, recibe el número de elementos que se copiaron en pwStreamNumbers. Cada elemento es el identificador de una secuencia seleccionada.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_INVALIDARG
Argumento no válido.
MF_E_BUFFERTOOSMALL
La matriz pwStreamNumbers es menor que el número de secuencias seleccionadas. Vea la sección Comentarios.

Comentarios

Para obtener el número de secuencias seleccionadas, establezca pwStreamNumbers en NULL. El método devolverá MF_E_BUFFERTOSMALL, pero también establecerá el valor de *pwNumStreams igual al número de secuencias seleccionadas. A continuación, asigne una matriz de ese tamaño y vuelva a llamar al método, pasando la matriz en el parámetro pwStreamNumbers .

El siguiente código muestra estos pasos:

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, puede asignar una matriz que sea igual al número total de secuencias y pasarla a pwStreamNumbers.

Antes de llamar a este método, inicialice *pwNumStreams el número de elementos de pwStreamNumbers. Si pwStreamNumbers es NULL, establezca en *pwNumStreams cero.

De forma predeterminada, el divisor no selecciona ningún flujo. Seleccione secuencias llamando al método IMFASFSplitter::SelectStreams .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wmcontainer.h
Library Mfuuid.lib

Consulte también

Divisor de ASF

IMFASFSplitter