Sdílet prostřednictvím


Aktivační objekty

Aktivační objekt je pomocný objekt, který se používá k vytvoření jiného objektu, podobně jako objekt pro vytváření tříd. Aktivační objekty zpřístupňují rozhraní MMFActivate.

Aktivační objekt umožňuje odložit vytvoření cílového objektu, protože můžete držet MMFActivate ukazatel bez vytvoření cílového objektu. Aktivační objekty lze také serializovat, a tak použít k vytvoření cílového objektu v jiném procesu. Aktivační objekty se například používají k zařazování součástí kanálu z procesu aplikace do procesu chráněné cesty média (PMP). Aktivační objekty jsou také používány určitými funkcemi výčtu, které vracejí seznam MMFActivate ukazatele. Než aplikace vytvoří cílový objekt, může získat informace o objektu prozkoumáním atributů objektu aktivace.

Chcete-li vytvořit cílový objekt z aktivačního objektu, zavolejte MMFActivate::ActivateObject metoda. Volající musí zavolat MMFActivate::ShutdownObject po dokončení pomocí vytvořeného objektu. Aplikace často vytváří aktivační objekt a media session volání ActivateObject. V takovém případě musí relace médií, nikoli aplikace, volat ShutdownObject. V jiných situacích aplikace obdrží MMFActivate ukazatel z relace média a aplikace volá ActivateObject a ShutdownObject. (Například viz Jak přehrát chráněné mediální soubory.)

Aktivační objekty mohou mít atributy a MMFActivate rozhraní dědí MMFAttributes rozhraní. Některé aktivační objekty používají atributy ke konfiguraci vytvořeného objektu. Konkrétní atributy podporované jednotlivými objekty jsou zdokumentované v odkazu na funkci vytvoření aktivačního objektu. Nastavte atributy pomocí MMFActivate ukazatel, který obdržíte z funkce.

Pro chráněné přehrávání jsou aktivační objekty zařazovány do procesu PMP. Pro podporu zařazování musí aktivační objekt zveřejnit IPersistStream rozhraní. Kromě toho musí být aktivační objekt i vytvořený objekt důvěryhodnými komponentami, pokud pmP běží v chráněném procesu. To není požadavek, pokud je pmP načten v nechráněném procesu.

Pokud chcete v procesu PMP použít vlastní objekt kanálu (například jímku média), musíte pro objekt kanálu implementovat aktivační objekt:

  • Aktivační objekt musí vystavit MMFActivate a IPersistStream.
  • Aktivační objekt IPersist::GetClassID metoda musí vrátit ID CLSID aktivačního objektu.
  • Volitelně můžete implementovat IPersistStream::Save a IPersistStream::Load metody zařazování všech dat, která potřebujete ke konfiguraci aktivačního objektu.

Když relace médií načte topologii uvnitř procesu PMP, volá CoCreateInstance vytvořit novou instanci objektu aktivace. Potom volá MMFActivate::ActivateObject k vytvoření objektu kanálu.

rozhraní API platformy Media Foundation

MMFActivate