Partager via


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

Obtient la liste des flux actuellement sélectionnés.

Syntaxe

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

Paramètres

[out] pwStreamNumbers

Adresse d’un tableau de WORD. Ce tableau reçoit les numéros de flux des flux sélectionnés. Ce paramètre peut être NULL.

[in, out] pwNumStreams

En entrée, pointe vers une variable qui contient le nombre d’éléments dans le tableau pwStreamNumbers . Définissez la variable sur zéro si pwStreamNumbers a la valeur NULL.

À la sortie, reçoit le nombre d’éléments qui ont été copiés dans pwStreamNumbers. Chaque élément est l’identificateur d’un flux sélectionné.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_INVALIDARG
Argument non valide.
MF_E_BUFFERTOOSMALL
Le tableau pwStreamNumbers est inférieur au nombre de flux sélectionnés. Consultez la section Notes.

Remarques

Pour obtenir le nombre de flux sélectionnés, définissez pwStreamNumbers surNULL. La méthode retourne MF_E_BUFFERTOSMALL , mais définit également la valeur de *pwNumStreams égale au nombre de flux sélectionnés. Allouez ensuite un tableau de cette taille et appelez à nouveau la méthode, en passant le tableau dans le paramètre pwStreamNumbers .

Le code suivant illustre ces étapes :

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;
}

Vous pouvez également allouer un tableau égal au nombre total de flux et le transmettre à pwStreamNumbers.

Avant d’appeler cette méthode, initialisez *pwNumStreams le nombre d’éléments dans pwStreamNumbers. Si pwStreamNumbers a la valeur NULL, définissez sur *pwNumStreams zéro.

Par défaut, aucun flux n’est sélectionné par le séparateur. Sélectionnez des flux en appelant la méthode IMFASFSplitter ::SelectStreams .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wmcontainer.h
Bibliothèque Mfuuid.lib

Voir aussi

Séparateur ASF

IMFASFSplitter