Compartilhar via


CBasePin Class

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Este é um abstrato classe base do qual todos os pinos são derivado.

CBasePin Oferece suporte a IPin interface. Se o pino não fornecer ou usar o IMemInputPin interface, derivar de isso; caso contrário, derivado de CBaseInputPin classe ou o CBaseOutputPin classe.

Processo de conexão é crucial para o sucesso da criando gráficos filtro. O filtro gráfico localiza dois filtros (e subseqüentemente Dois pinos) para conectar.

Ele chama o IPin::Connect método no pino de saída (e ela pode chamar Conectar-se Sobre a entrada pino no mesmo tempo). Pino de saída, em seguida, chama a função membro virtual pino CBasePin::CheckConnect.

As classes derivadas devem substituir essa função membro para usar Falha de QueryInterface Para retornar qualquer interfaces exigido.

O implementação de classe base do CheckConnect Consultas de IMemInputPin interface para estabelecer o protocolo transporte usar como padrão.

Após chamado CheckConnect, chamadas pino de saída CBasePin::AgreeMediaType; this is a worker member function not intended for overriding in derived classes. Isso obtém a entrada do pino enumerador e chamadas CBasePin::TryMediaTypes com ele.

TryMediaTypes é outro de trabalho pino de base função de membro que não se destina a derivação. Ele verificará cada tipo de mídia fornecidos por um enumerador para determinar se uma conexão pode ser feita com esse tipo.

Se esse processo falhar, AgreeMediaType Recupera enumerador tipo de mídia e chamadas do pino de saída CBasePin::GetMediaType, que verificará os tipos de mídia concordar em um tipo conexão. Se não houver acordo, um tipo de mídia com a entrada e saída pinos se tornará o tipo usado na conexão.

Se nenhum tipo de mídia pode ser consenso no, a conexão entre os pinos não pode ser feita. As chamadas pino de base CBasePin::SetMediaType Para transmitir o formato. O m_mt de base pino variável é definida durante esse processo.

O IPin interface fornece um método chamado QueryAccept. Esse método permite que um filtro conectado a consulta se o pino irá aceitar um tipo de mídia especificado.

É o método assíncrono para que um filtro pode chamar-a qualquer momento — mesmo quando outro filtro for chamado-lo. Por esse motivo, sua implementação em qualquer substituir do classe base deve não bloqueio o filtro.

O implementação de classe base do IPin::QueryAccept Chama o substituído CBasePin::CheckMediaType função de membro no derivado classe pino.

Todas as funções membro nessa classe que retornam HRESULT e aceitar um ponteiro como um parâmetro retornar E_POINTER quando passado um ponteiro nulo.

Membros de dados protegido

Membro Descrição

m_bRunTimeError

Execute-Erro tempo gerado.

m_Connected

Pino que este pino está conectado.

m_dir

Direção deste pino.

m_dRate

Avalie a partir de CBasePin::NewSegment chamar.

m_mt

Tipo de mídia que está usando este pino.

Isso é estabelecido durante o processo conexão.

m_pFilter

Filtrar que criou o pino.

m_pLock

Objeto usado para bloqueando.

m_pQSink

Alvo de mensagens qualidade.

m_pName

Nome do pino.

m_tStart

Inicia tempo a partir de CBasePin::NewSegment chamar.

m_tStop

Parar tempo a partir de CBasePin::NewSegment chamar.

m_TypeVersion

Versão atual tipo de mídia (consulte CBasePin::GetMediaTypeVersion).

Funções membro

Função membro Descrição

AttemptConnection

Tenta fazer uma conexão a outro pino usando um tipo de mídia especificado.

CBasePin

Constrói um CBasePin WScript.Shell.

TaxaAtual

Retorna a taxa de segmento definida pelo CBasePin::NewSegment função membro.

CurrentStartTime

Retorna o hora de início de segmento definido pelo CBasePin::NewSegment função membro.

CurrentStopTime

Retorna o tempo parar de segmento definido pelo CBasePin::NewSegment função membro.

DisplayPinInfo

Exibe informações pino sobre a depuração monitor.

DisplayTypeInfo

Exibe informações tipo de mídia sobre a depuração monitor.

GetConnected

Retorna o pino conectado a este pino.

IncrementTypeVersion

Adiciona 1 para o atual versão tipo de mídia.

IsConnected

Determina se o pino está conectado.

IsStopped

Determina se o filtro possui este pino está no estado de State_Stopped.

Nome

Retorna o m_pName Nome do pino.

Funções de associados overrideable

Função membro Descrição

Ativa

Alterna o pino para o modo ativo (execução).

AgreeMediaType

Concordar na tipo de mídia a serem usados pelo pino.

BreakConnect

Adiciona personalizado codificar quando encerra a conexão.

Isso também é chamado quando um estágio no processo de conexão falha, para essa função membro também deve limpar estados conexão parcial.

CheckConnect

Adiciona personalizado codificar quando a conexão é que está sendo feita.

Isso é chamado na iniciar do processo de conexão.

CheckMediaType

Verifica se o pino pode suporte um tipo de mídia específico.

CompleteConnect

Conclui a conexão.

GetMediaType

Retorna o tipo de mídia usado pelo pino.

GetMediaTypeVersion

Retorna a versão dos pinos que foram criados dinamicamente.

Inativo

Alterna o pino para o inativo (Interrompido) modo.

SetMediaType

Define o m_mt membro dados para o tipo de mídia estabelecido.

TryMediaTypes

Tenta localizar um tipo de mídia aceitável para uma conexão a partir de lista retornada por um enumerador tipo de mídia.

Métodos IPin implementada

Método Descrição

Conectar-se

Inicia uma conexão a outro pino.

ConnectedTo

Retorna um ponteiro para o pino de conexão.

ConnectionMediaType

Retorna a tipo de mídia de conexão deste pino.

Desconectar

Divide uma conexão.

EndOfStream

Informa a entrada pino que há dados adicionais são esperados até que um novo executar comando é emitido.

(Por padrão, retorna S_FALSE.)

EnumMediaTypes

Retorna um enumerador para tipos de mídia preferencial deste pino.

NewSegment

Especifica que amostras seguinte este chamar são agrupados como um segmento com uma determinada hora de início, tempo parar e taxa.

QueryAccept

Determina se este pino aceita a tipo de mídia.

QueryDirection

Recupera a direção pino do pino.

QueryId

Recupera um identificador para o pino.

QueryInternalConnections

Retorna uma matriz dos pinos que este pino se conecta ao internamente.

QueryPinInfo

Recupera informações sobre o pino (nome, proprietário filtro ou direção).

ReceiveConnection

Chamado por um pino de conexão para fazer uma conexão para este pino.

Geralmente isso não precisa ser substituído, porque chama a implementação usar como padrão CBasePin::CheckConnect, CBasePin::CheckMediaType, e CBasePin::BreakConnect.

Executar

Notifica o pino que o filtro foi alterado estado de em pausa para execução.

Métodos IQualityControl implementada

Método Descrição

Notificar

Notifica o destinatário que uma alteração qualidade é solicitada.

SetSink

Define o IQualityControl objeto que receberão mensagens qualidade.

Métodos INonDelegatingUnknown implementada

Método Descrição

NonDelegatingAddRef

Incrementa contagem de referência do filtro de proprietário.

NonDelegatingQueryInterface

Recupera CBasePin Interfaces.

Para transmitir sem os ponteiros para interfaces adicionadas pelo derivado classe pino, substituir essa função membro.

NonDelegatingRelease

Decrementa contagem de referência do filtro de proprietário.

Requisitos

Windows Embedded CE Windows CE 2.12 and later
Windows Mobile Windows Mobile Version 5.0 and later
Note Microsoft DirectShow applications and DirectShow filters have different include file and Library requirements
For more information, see Setting Up the Build Environment