Share via


IMFASFSplitter::GetSelectedStreams-Methode (wmcontainer.h)

Ruft eine Liste der aktuell ausgewählten Streams ab.

Syntax

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

Parameter

[out] pwStreamNumbers

Die Adresse eines Arrays von WORDs. Dieses Array empfängt die Datenstromnummern der ausgewählten Streams. Dieser Parameter kann NULL sein.

[in, out] pwNumStreams

Zeigt bei der Eingabe auf eine Variable, die die Anzahl der Elemente im pwStreamNumbers-Array enthält. Legen Sie die Variable auf null fest, wenn pwStreamNumbersNULL ist.

Empfängt bei der Ausgabe die Anzahl der Elemente, die in pwStreamNumbers kopiert wurden. Jedes Element ist der Bezeichner eines ausgewählten Datenstroms.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_INVALIDARG
Ungültiges Argument.
MF_E_BUFFERTOOSMALL
Das pwStreamNumbers-Array ist kleiner als die Anzahl der ausgewählten Streams. Siehe Hinweise.

Hinweise

Legen Sie pwStreamNumbers auf NULL fest, um die Anzahl der ausgewählten Streams abzurufen. Die -Methode gibt MF_E_BUFFERTOSMALL zurück, legt aber auch den Wert von *pwNumStreams gleich der Anzahl der ausgewählten Datenströme fest. Ordnen Sie dann ein Array dieser Größe zu, und rufen Sie die -Methode erneut auf, und übergeben Sie das Array im pwStreamNumbers-Parameter .

Diese Schritte sind im folgenden Code dargestellt:

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

Alternativ können Sie ein Array zuordnen, das der Gesamtzahl der Streams entspricht, und dieses an pwStreamNumbers übergeben.

Initialisieren *pwNumStreams Sie vor dem Aufrufen dieser Methode die Anzahl der Elemente in pwStreamNumbers. Wenn pwStreamNumbersNULL ist, legen Sie auf Null fest *pwNumStreams .

Standardmäßig werden keine Streams vom Splitter ausgewählt. Wählen Sie Streams aus, indem Sie die IMFASFSplitter::SelectStreams-Methode aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wmcontainer.h
Bibliothek Mfuuid.lib

Weitere Informationen

ASF-Splitter

IMFASFSplitter