Compartilhar via


Classe CUnknown

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Hierarquia de classe cunknown

A classe CUnknown implementa a interface IUnknown . A maioria dos objetos COM (Component Object Model) no DirectShow deriva de CUnknown.

Se você implementar um objeto COM, talvez queira derive-o de CUnknown. Derivar do CUnknown fornece uma implementação thread-safe e economiza o problema de implementar o IUnknown.

Para obter uma discussão detalhada sobre como usar essa classe base, confira Como implementar o IUnknown. O que se segue é um breve resumo:

  • Inclua a macro DECLARE_IUNKNOWN na seção pública da sua definição de classe. Essa macro declara os três métodos da interface IUnknown .
  • Substitua o método NonDelegatingQueryInterface para dar suporte a interfaces diferentes de IUnknown. Nesse método, chame a função GetInterface para recuperar ponteiros de interface.
  • No construtor de classe, invoque o método do construtor CUnknown .
Variáveis de membro protegidas Descrição
m_cRef Contagem de referências.
Métodos públicos Descrição
Cunknown Método de construtor.
~Cunknown Método destruidor. Virtual.
GetOwner Obtém um ponteiro para o IUnknown controlador.
Métodos INonDelegatingUnknown Descrição
NonDelegatingAddRef Incrementa a contagem de referência.
Nondelegatingqueryinterface Recupera um ponteiro de interface e incrementa a contagem de referência.
NonDelegatingRelease Diminui a contagem de referências.

Requisitos

Requisito Valor
parâmetro
Combase.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

DirectShow Base Classes