Compartilhar via


Visão geral do log de erros

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in 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 Audio/Video Capture in 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.]

[Não há suporte para essa API e pode ser alterada ou indisponível no futuro.]

Para dar aos aplicativos a máxima flexibilidade no tratamento de erros, o DirectShow Editing Services usa um mecanismo de retorno de chamada. Seu aplicativo implementa um método para registrar um erro em log. Em tempo de execução, se ocorrer um erro, o DES chamará o método fornecido. O método usa parâmetros que descrevem o erro. O que o método faz com essas informações cabe a você. (Ele deve retornar o mais rápido possível, no entanto, ou pode interferir na execução do programa.)

O método de retorno de chamada de log de erros está contido em uma interface COM, IAMErrorLog. Seu aplicativo deve implementar essa interface. Como todas as interfaces COM, IAMErrorLog herda a interface IUnknown , portanto, seu aplicativo também deve implementá-lo.

Você tem várias opções para implementar essas interfaces COM. Você pode usar a ATL (Biblioteca de Modelos Ativos), que fornece implementações de estoque dos métodos IUnknown . O DirectShow também fornece uma classe base C++, CUnknown, que facilita a implementação de uma interface COM. Para obter informações sobre como usar CUnknown, consulte How to Implement IUnknown.

O código de exemplo neste artigo define uma classe C++ autossuficiente, que implementa IUnknown e IAMErrorLog. O resultado não é um objeto COM verdadeiro, pois não dá suporte a CoCreateInstance. No entanto, essa abordagem é adequada para a finalidade do exemplo.

Erros de registro em log