Bagikan melalui


METODE IMFASFSplitter::GetSelectedStreams (wmcontainer.h)

Mendapatkan daftar aliran yang saat ini dipilih.

Sintaks

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

Parameter

[out] pwStreamNumbers

Alamat array WORD. Array ini menerima nomor aliran dari aliran yang dipilih. Parameter ini bisa NULL.

[in, out] pwNumStreams

Pada input, arahkan ke variabel yang berisi jumlah elemen dalam array pwStreamNumbers . Atur variabel ke nol jika pwStreamNumbers adalah NULL.

Pada output, menerima jumlah elemen yang disalin ke dalam pwStreamNumbers. Setiap elemen adalah pengidentifikasi aliran yang dipilih.

Mengembalikan nilai

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_INVALIDARG
Argumen tidak valid.
MF_E_BUFFERTOOSMALL
Array pwStreamNumbers lebih kecil dari jumlah aliran yang dipilih. Lihat Keterangan.

Keterangan

Untuk mendapatkan jumlah aliran yang dipilih, atur pwStreamNumbers ke NULL. Metode ini akan mengembalikan MF_E_BUFFERTOSMALL tetapi juga akan mengatur nilai *pwNumStreams yang sama dengan jumlah aliran yang dipilih. Kemudian alokasikan array dari ukuran itu dan panggil metode lagi, melewati array dalam parameter pwStreamNumbers .

Kode berikut menunjukkan langkah-langkah ini:

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

Atau, Anda dapat mengalokasikan array yang sama dengan jumlah total aliran dan meneruskan ke pwStreamNumbers.

Sebelum memanggil metode ini, inisialisasi *pwNumStreams ke jumlah elemen dalam pwStreamNumbers. Jika pwStreamNumbersadalah NULL, atur *pwNumStreams ke nol.

Secara default, tidak ada aliran yang dipilih oleh pemisah. Pilih aliran dengan memanggil metode IMFASFSplitter::SelectStreams .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header wmcontainer.h
Pustaka Mfuuid.lib

Lihat juga

Pemisah ASF

IMFASFSplitter