Aracılığıyla paylaş


Etkinleştirme Nesneleri

etkinleştirme nesnesi, sınıf fabrikasına benzer başka bir nesne oluşturmak için kullanılan yardımcı nesnedir. Etkinleştirme nesneleri, IMFActivate arabirimini kullanıma sunar.

Hedef nesneyi oluşturmadan BIR IMFActivate işaretçisini tutabildiğiniz için, etkinleştirme nesnesi hedef nesnenin oluşturulmasını ertelemenize olanak tanır. Etkinleştirme nesneleri de seri hale getirilebilir ve bu nedenle hedef nesneyi başka bir işlemde oluşturmak için kullanılır. Örneğin, etkinleştirme nesneleri işlem hattı bileşenlerini uygulama işleminden korumalı medya yolu (PMP) işlemine sıralamak için kullanılır. Etkinleştirme nesneleri, IMFActivate işaretçilerinin listesini döndüren bazı numaralandırma işlevleri tarafından da kullanılır. Uygulama hedef nesneyi oluşturmadan önce, etkinleştirme nesnesinde öznitelikleri inceleyerek nesne hakkında bilgi alabilir.

Bir etkinleştirme nesnesinden hedef nesne oluşturmak için IMFActivate::ActivateObject yöntemini çağırın. Çağıranın, oluşturulan nesne kullanılarak tamamlandığında IMFActivate::ShutdownObject çağırması gerekir. Genellikle uygulama etkinleştirme nesnesini oluşturur ve Media Session, ActivateObject çağırır. Bu durumda, uygulamanın değil Medya Oturumu'ShutdownObjectçağrısı yapmalıdır. Diğer durumlarda, uygulama Medya Oturumu'ndan bir IMFActivate işaretçisi alır ve uygulama ActivateObject ve ShutdownObject çağırır. (Örneğin, bkz. Korumalı Medya Dosyalarını Yürütme.)

Etkinleştirme nesnelerinin öznitelikleri olabilir ve IMFActivate arabirimi IMFAttributes arabirimini devralır. Bazı etkinleştirme nesneleri, oluşturulan nesneyi yapılandırmak için öznitelikleri kullanır. Her nesne tarafından desteklenen belirli öznitelikler, bu etkinleştirme nesnesinin oluşturma işlevine yönelik başvuruda belgelenmiştir. İşlevden aldığınız IMFActivate işaretçisini kullanarak öznitelikleri ayarlayın.

Korumalı kayıttan yürütme için, etkinleştirme nesneleri PMP işlemine sıralanır. Hazırlamayı desteklemek için, etkinleştirme nesnesinin IPersistStream arabirimini kullanıma sunması gerekir. Ayrıca, PMP korumalı bir işlemde çalışıyorsa hem etkinleştirme nesnesi hem de oluşturulan nesne güvenilir bileşenler olmalıdır. PMP korumasız bir işleme yüklendiğinde bu bir gereksinim değildir.

PMP işlemi içinde özel bir işlem hattı nesnesi (medya havuzu gibi) kullanmak için işlem hattı nesneniz için bir etkinleştirme nesnesi uygulamanız gerekir:

  • Etkinleştirme nesnesinin IMFActivate ve IPersistStreamkullanıma sunması gerekir.
  • Etkinleştirme nesnesinin IPersist::GetClassID yöntemi, etkinleştirme nesnesinin CLSID değerini döndürmelidir.
  • İsteğe bağlı olarak, etkinleştirme nesnenizi yapılandırmak için ihtiyacınız olan tüm verileri sıralamak için IPersistStream::Save ve IPersistStream::Load yöntemlerini uygulayabilirsiniz.

Medya Oturumu PMP işleminin içindeki topolojiyi yüklediğinde, etkinleştirme nesnenizin yeni bir örneğini oluşturmak için CoCreateInstance çağırır. Ardından, işlem hattı nesnesini oluşturmak için IMFActivate::ActivateObject çağırır.

Media Foundation Platform API'leri

IMFActivate