Bagikan melalui


IMFMediaSession::Metode SetTopology (mfidl.h)

Mengatur topologi pada Sesi Media.

Sintaks

HRESULT SetTopology(
  [in] DWORD       dwSetTopologyFlags,
  [in] IMFTopology *pTopology
);

Parameter

[in] dwSetTopologyFlags

Bitwise OR dari nol atau lebih bendera dari enumerasi MFSESSION_SETTOPOLOGY_FLAGS .

[in] pTopology

Arahkan ke antarmuka IMFTopology objek topologi .

Menampilkan nilai

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

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
MF_E_INVALIDREQUEST
Operasi tidak dapat dilakukan dalam status Sesi Media saat ini.
MF_E_SHUTDOWN
Sesi Media telah dimatikan.
MF_E_TOPO_INVALID_TIME_ATTRIBUTES
Topologi memiliki nilai yang tidak valid untuk satu atau beberapa atribut berikut:
NS_E_DRM_DEBUGGING_NOT_ALLOWED
Isi terproteksi tidak dapat diputar saat penelusuran kesalahan.

Keterangan

Jika pTopology adalah topologi lengkap, atur bendera MFSESSION_SETTOPOLOGY_NORESOLUTION di parameter dwSetTopologyFlags . Jika tidak, topologi diasumsikan sebagai topologi parsial. Sesi Media menggunakan pemuat topologi untuk menyelesaikan topologi parsial menjadi topologi penuh.

Jika Sesi Media saat ini dijeda atau dihentikan, metode SetTopology tidak berlaku hingga panggilan berikutnya ke IMFMediaSession::Start.

Jika Sesi Media sedang berjalan, atau pada panggilan berikutnya ke Mulai, metode SetTopology melakukan hal berikut:

  • Jika bendera MFSESSION_SETTOPOLOGY_IMMEDIATE diatur dalam dwSetTopologyFlags, Sesi Media segera mengakhiri presentasi saat ini, menghapus semua topologi yang tertunda, dan menggunakan pTopology untuk memulai presentasi baru.
  • Jika tidak, Sesi Media mengantre pTopologi dan memulai presentasi baru ketika presentasi saat ini telah selesai. Jika tidak ada presentasi saat ini, presentasi baru akan segera dimulai.
  • Mulai Windows 7, Anda juga dapat menentukan bendera MFSESSION_SETTOPOLOGY_CLEAR_CURRENT untuk menghapus topologi saat ini tetapi meninggalkan topologi lain yang tertunda pada antrean.
Metode ini asinkron. Jika metode mengembalikan S_OK, Sesi Media mengirimkan peristiwa MESessionTopologySet saat operasi selesai. Jika Sesi Media saat ini dijeda untuk dihentikan, Sesi Media tidak mengirim peristiwa MESessionTopologySet hingga panggilan berikutnya ke IMFMediaSession::Start

Persyaratan

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

Lihat juga

IMFMediaSession