CBasePin Class
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 |
---|---|
Tenta fazer uma conexão a outro pino usando um tipo de mídia especificado. |
|
Constrói um CBasePin WScript.Shell. |
|
Retorna a taxa de segmento definida pelo CBasePin::NewSegment função membro. |
|
Retorna o hora de início de segmento definido pelo CBasePin::NewSegment função membro. |
|
Retorna o tempo parar de segmento definido pelo CBasePin::NewSegment função membro. |
|
Exibe informações pino sobre a depuração monitor. |
|
Exibe informações tipo de mídia sobre a depuração monitor. |
|
Retorna o pino conectado a este pino. |
|
Adiciona 1 para o atual versão tipo de mídia. |
|
Determina se o pino está conectado. |
|
Determina se o filtro possui este pino está no estado de State_Stopped. |
|
Retorna o m_pName Nome do pino. |
Funções de associados overrideable
Função membro | Descrição |
---|---|
Alterna o pino para o modo ativo (execução). |
|
Concordar na tipo de mídia a serem usados pelo pino. |
|
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. |
|
Adiciona personalizado codificar quando a conexão é que está sendo feita. Isso é chamado na iniciar do processo de conexão. |
|
Verifica se o pino pode suporte um tipo de mídia específico. |
|
Conclui a conexão. |
|
Retorna o tipo de mídia usado pelo pino. |
|
Retorna a versão dos pinos que foram criados dinamicamente. |
|
Alterna o pino para o inativo (Interrompido) modo. |
|
Define o m_mt membro dados para o tipo de mídia estabelecido. |
|
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 |
---|---|
Inicia uma conexão a outro pino. |
|
Retorna um ponteiro para o pino de conexão. |
|
Retorna a tipo de mídia de conexão deste pino. |
|
Divide uma conexão. |
|
Informa a entrada pino que há dados adicionais são esperados até que um novo executar comando é emitido. (Por padrão, retorna S_FALSE.) |
|
Retorna um enumerador para tipos de mídia preferencial deste pino. |
|
Especifica que amostras seguinte este chamar são agrupados como um segmento com uma determinada hora de início, tempo parar e taxa. |
|
Determina se este pino aceita a tipo de mídia. |
|
Recupera a direção pino do pino. |
|
Recupera um identificador para o pino. |
|
Retorna uma matriz dos pinos que este pino se conecta ao internamente. |
|
Recupera informações sobre o pino (nome, proprietário filtro ou direção). |
|
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. |
|
Notifica o pino que o filtro foi alterado estado de em pausa para execução. |
Métodos IQualityControl implementada
Método | Descrição |
---|---|
Notifica o destinatário que uma alteração qualidade é solicitada. |
|
Define o IQualityControl objeto que receberão mensagens qualidade. |
Métodos INonDelegatingUnknown implementada
Método | Descrição |
---|---|
Incrementa contagem de referência do filtro de proprietário. |
|
Recupera CBasePin Interfaces. Para transmitir sem os ponteiros para interfaces adicionadas pelo derivado classe pino, substituir essa função membro. |
|
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 |