Partilhar via


IUnknown e herança de interface

Herança em COM não significa reutilização de código. Como nenhuma implementação está associada a interfaces, herança de interface não significa herança de código. Isso significa apenas que o contrato associado a uma interface é herdado de forma C++ puro-virtual de classe base e modificado — seja adicionando novos métodos ou qualificando ainda mais o uso permitido de métodos. Não há herança seletiva na COM. Se uma interface herda de outra, ela inclui todos os métodos que a outra interface define.

A herança é usada com moderação nas interfaces COM predefinidas. Todas as interfaces predefinidas (e quaisquer interfaces personalizadas que você definir) herdam suas definições da interface importante IUnknown, que contém três métodos vitais: QueryInterface, AddRefe Release. Todos os objetos COM devem implementar o IUnknown interface porque ele fornece os meios, usando QueryInterface, para se mover livremente entre as diferentes interfaces que um objeto suporta, bem como os meios para gerenciar seu tempo de vida usando AddRef e Release.

Ao criar um objeto que suporte de agregação, você precisaria implementar um conjunto de funções IUnknown para todas as interfaces, bem como uma interface IUnknown autônoma. Em qualquer caso, qualquer implementador de objeto implementará IUnknown métodos. Consulte a seção Usando e implementando o IUnknown para obter mais informações.

Embora existam algumas interfaces que herdam suas definições de uma segunda interface, além de IUnknown, a maioria simplesmente herda os IUnknown métodos de interface. Isso torna a maioria das interfaces relativamente compactas e fáceis de encapsular.

Objetos e Interfaces COM