Sdílet prostřednictvím


Dědičnost rozhraní IUnknown a rozhraní

Dědičnost v modelu COM neznamená opakované použití kódu. Vzhledem k tomu, že k rozhraním nejsou přidruženy žádné implementace, dědičnost rozhraní neznamená dědičnost kódu. Znamená to pouze, že kontrakt přidružený k rozhraní je zděděný v čistě virtuální základní třídě jazyka C++ a změněn – buď přidáním nových metod, nebo další opravňujícím povolené použití metod. V modelu COM neexistuje žádná selektivní dědičnost. Pokud jedno rozhraní dědí z jiného, zahrnuje všechny metody, které druhé rozhraní definuje.

Dědičnost se používá střídmě v předdefinovaných rozhraních MODELU COM. Všechna předdefinovaná rozhraní (a všechna vlastní rozhraní, která definujete), dědí jejich definice z důležitého rozhraní IUnknown, která obsahuje tři důležité metody: QueryInterface, AddRefa Release. Všechny objekty COM musí implementovat IUnknown rozhraní, protože poskytuje prostředky pomocí QueryInterface, volně mezi různými rozhraními, které objekt podporuje, a prostředky ke správě jeho životnosti pomocí AddRef a Release.

Při vytváření objektu, který podporuje agregační, byste museli implementovat jednu sadu IUnknown funkcí pro všechna rozhraní i samostatné IUnknown rozhraní. V každém případě implementátor objektů implementuje IUnknown metody. Další informace najdete v části Použití a implementace IUnknown.

I když existuje několik rozhraní, která dědí definice z druhého rozhraní kromě IUnknown, většina jednoduše dědí IUnknown metody rozhraní. Díky tomu je většina rozhraní relativně kompaktní a snadno zapouzdřená.

objekty a rozhraní modelu COM