Compartilhar via


Enumerator Base Classes

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Um enumerador é uma interface que fornece métodos para atravessando uma lista de elementos. Enumeradores são usados na programação COM e o DirectShow modelo segue o modelo COM em enumerar objetos. O seguinte enumerador classes são fornecidas no biblioteca de classes:

Duas outras interfaces enumerador DirectShow, IEnumFilters e IEnumRegFilters, não são representados por classes de base, pois eles são implementados somente por Gerenciador o filtro de gráfico.

A seguinte ilustração mostra as interfaces para os enumeradores.

O CEnumPins classe cria um enumerador quando o IBaseFilter::EnumPins método for chamado. O enumerador retornado por esse método é um ponteiro para o IEnumPins interface, que é implementado pelo CEnumPins classe.

O CEnumPins funções membro, em seguida, podem ser chamado para recuperar os ponteiros para cada um dos pinos no filtro. Este enumerador realiza isso por chamado de CBaseFilter::GetPin função de membro no filtro.

O filtro deve substituir o classe base CBaseFilter::GetPin função de membro a fornecer o enumerador com o próximo pino na lista cada tempo é chamado.

O CEnumMediaTypes classe cria um enumerador quando o IPin::EnumMediaTypes método for chamado. Armazenar uma lista da mídia de pinos tipos que eles suporte. Durante a negociação do tipo de mídia, um pino geralmente chamadas de EnumMediaTypes método no seu pino conectado, recupera o enumerador e usa-o para selecionar um tipo de mídia.

Ambas essas enumerador classes suporte a Próxima, Ignorar, Redefinir, e Clone métodos familiares para programadores COM.

O chamar enumeradores tipo de mídia o CBasePin::GetMediaType função membro, que deve ser substituída pelo derivado classe pino, para retornar o próximo tipo de mídia em uma lista de tipos de mídia aceitos pelo pino.

Enumeradores operar como segmentos e deve ter sincronizado acessar a lista de tipo de mídia pino. Por esse motivo, as classes que implementar enumeradores herdam, por herança múltipla, o CCritSec classe, que fornece crítico seção gerenciamento.

Para obter mais informações sobre o CCritSec classe, consulte Classes Win32.