IUnknown ve Arabirim Devralma
COM'da devralma, kodun yeniden kullanılması anlamına gelmez. Hiçbir uygulama arabirimlerle ilişkilendirilmediğinden, arabirim devralma kod devralma anlamına gelmez. Bu, yalnızca bir arabirimle ilişkili sözleşmenin C++ saf sanal temel sınıf biçiminde devralındığı ve değiştirildiği anlamına gelir; yeni yöntemler eklenerek veya izin verilen yöntemlerin kullanımı daha uygun şekilde yapılır. COM'da seçmeli devralma yoktur. Bir arabirim başka bir arabirimden devralırsa, diğer arabirimin tanımladığı tüm yöntemleri içerir.
Devralma, önceden tanımlanmış COM arabirimlerinde tedbirli bir şekilde kullanılır. Önceden tanımlanmış tüm arabirimler (ve tanımladığınız özel arabirimler) tanımlarını, üç önemli yöntem içeren IUnknownönemli arabiriminden devralır: QueryInterface, AddRefve Release. Tüm COM nesneleri, QueryInterfacekullanarak AddRef ve Releasekullanarak bir nesnenin desteklediği farklı arabirimler arasında serbestçe hareket etmek için IUnknown arabirimini uygulamalıdır.
toplamadestekleyen bir nesne oluştururken, tüm arabirimler için tek başına IUnknown arabiriminin yanı sıra bir dizi IUnknown işlevi uygulamanız gerekir. Her durumda, herhangi bir nesne uygulayıcısı IUnknown yöntemlerini uygular. Daha fazla bilgi için IUnknown Kullanma ve Uygulama bölümüne bakın.
IUnknownek olarak tanımlarını ikinci bir arabirimden devralan birkaç arabirim olsa da, çoğunluğu yalnızca IUnknown arabirim yöntemlerini devralır. Bu, çoğu arabirimi nispeten kompakt ve kapsüllemesini kolaylaştırır.
İlgili konular