Compartilhar via


Herança de IUnknown e interface

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

A herança é usada com moderação nas interfaces COM predefinidas. Todas as interfaces predefinidas (e quaisquer interfaces personalizadas definidas) 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 a interface IUnknown porque ela fornece os meios, usando QueryInterface, para se mover livremente entre as diferentes interfaces compatíveis com um objeto, bem como os meios para gerenciar seu tempo de vida usando AddRef e Release.

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

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

de objetos e interfaces COM