Compartilhar via


IImageSink::BeginSink

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Este método é usado para estabelecer uma conexão entre a fonte da imagem e o coletor.

Durante a chamar para esse método, a origem e o coletor negociam parâmetros de sua conexão transferência de dados.

Syntax

HRESULT BeginSink(
  ImageInfo* imageInfo,
  OPTIONAL RECT* subarea
);

Parameters

  • imageInfo
    [in, Out] Um ponteiro para uma estrutura ImageInfo (Imaging API) usada para transmitir informações sobre conexão de dados entre a origem e o coletor.

    Quando chamado a função, defina os valores na estrutura para descrever os dados imagem produzidos pela origem.

    Quando o método retorna com êxito, essa estrutura contém valores que descreve os parâmetros negociado imagem resultante para a conexão entre a origem e o coletor.

  • subárea
    [out] Um ponteiro para um RECT estrutura.

    Este parâmetro é usado para decodificação parcial se a fonte da imagem e coletor podem suporte-lo.

    Se a fonte da imagem pode suporte parcial imagem decodificação, ele deve transmitir um não-NULL subárea parâmetro. Em caso afirmativo, o coletor imagem deve preencher in a RECT estrutura para informar a origem qual parte da imagem para decodificar.

    Se o coletor não desejar uma imagem parcial, ele preenche o RECT estrutura para incluir a imagem inteira origem.

Remarks

A seguinte tabela mostra os valores retornados por IImageSink::BeginSink em membros do imageinfo.

imageInfo associados Conteúdo

RawDataFormat

Este membro contém um do seguinte:

  • Se o coletor pode levar processado imagem dados em que formato, ele contém o formato arquivo identificação solicitada de origem.
    Neste maiúsculas e minúsculas, a origem deve, em seguida, chamar o método IImageSink::PushRawData para processado transmitir dados imagem para o coletor.
  • Se o coletor se recusa a tirar o processado imagem dados a partir de origem, ele contém ImageFormatMemoryBMP. Para obter mais informações sobre ImageFormatMemoryBMP, consulte Imaging GUIDs.
    Neste maiúsculas e minúsculas, a origem deve chamar um do seguinte métodos:

PixelFormatID

Este membro contém o formato do pixel preferido, o coletor. Isso pode ou não ser o mesmo formato como o que foi solicitado de origem.

A origem podem fornecer dados pixel no formato solicitado pelo coletor, ou pode fornecer dados pixel em um dos formatos de pixel canônico, que todos os recpetores deve suporte.

Largura, Altura, Xdpi, Ydpi

O conteúdo desses membros normalmente é deixado inalterado pelo coletor. No entanto, considere o seguinte:

  • Se a origem tiver definido o sinalizador SinkFlagsScalable, o coletor pode modificar Largura e Altura Valores para solicitação de origem para escalabilidade imagem de origem para uma nova dimensão.
    Para obter mais informações sobre SinkFlagsScalable, consulte SinkFlags.
    Se o coletor altera valores largura e altura, ele deverá alteração Xdpi e Ydpi Valores de acordo.
  • Se a origem tiver definido o sinalizador SinkFlagsPartiallyScalable, o coletor pode modificar o Largura e Altura Valores para informar a origem de ideal largura e altura para o coletor.
    Em seguida, chama a origem IImageSink::BeginSink novamente com a largura e altura mais próximo a origem pode fornecer.
    Quando IImageSink::BeginSink é chamado de tempo segundo, o SinkFlagsPartiallyScalable sinalizador é Clear.

Se o coletor não desejar seu BeginSink chamado duas vezes, ele deve deixar o Largura e Altura Valores inalterado e também o sinalizador SinkFlagsPartiallyScalable Clear.

TileWidth, TileHeight

Esses membros contêm as dimensões dispor preferidas, o coletor.

Se o sinalizador SinkFlagsFullWidth for definido, TileWidth deve ser o mesmo Largura, e TileHeight é a altura preferencial banda.

Informações tamanho lado a lado são usadas como uma dica para ganhos desempenho em potencial.

A origem não é exigido para usar o tamanho exato dispor solicitado pelo coletor.

Sinalizadores

Este membro contém um ou mais do seguinte sinaliza a partir de SinkFlags enumeração.

  • SinkFlagsScalable. Este sinalizador for deixada inalterado.
  • SinkFlagsPartiallyScalable. Consulte a descrição de Largura e Altura.
  • SinkFlagsHasAlpha. Se este sinalizador estiver definido, a origem, o coletor pode Clear esse sinalizador para indicar que o coletor não pode alfa suporte valores.
    Mesmo em que maiúsculas e minúsculas, a origem pode ainda alfa fornecer para o coletor.
    O coletor pode fazer tudo o que ele escolhe com a alfa informações, que incluem descartando-lo.
  • SinkFlagsTopDown. Definido para refletir preferência do coletor.
  • SinkFlagsFullWidth. Configurado pelo coletor para descrever se o coletor deseja dados em faixas.
    Todas as fontes devem transferência de dados suporte em parte superior suspensa Faixa ordem, Even if que não é sua ordem preferencial.
  • SinkFlagsBottomUp. Este sinalizador for deixada inalterado.
  • SinkFlagsMultipass. Se este sinalizador estiver definido, a origem, o coletor pode Clear esse sinalizador para indicar que ele faz não MultiPASS suporte.
    Nesse maiúsculas e minúsculas, a origem é exigido para MultiPASS identificador por conta própria e fornecem dados imagem para o coletor em um único transmitir.
    Se ele pode indicar o coletor suporte MultiPASS mas também requer ordem Top-Down, a origem deve fornecer dados um inteiro transmitir após o outro. Além disso, para cada transmitir ele deve fornecer banda um após outro, com nenhum lacunas in Between.
  • SinkFlagsComposite. Este sinalizador for deixada inalterado. Se este sinalizador é definido pela origem e o coletor não pode comportamento de composição suporte, o coletor deve retornar uma falha da IImageSink::BeginSink método.

SinkFlagsWantProps. O coletor pode definir esse sinalizador para indicar a origem para que ela está interessada em Obtendo propriedades metadados imagem por uma chamar para IImageSink::PushPropertyItems.

Este método negocia os parâmetros para enviar dados imagem de uma fonte da imagem para um coletor imagem.

Antes de para enviar dados para o coletor, você deve chamar IImageSink::SetPalette.

Valores Return

A seguinte tabela mostra os valores de retorno para este método.

Valor Descrição

S_OK

O método foi bem-sucedido.

E_NOTIMPL

Falha de método.

Requirements

Header imaging.h
Library Imaging.lib
Windows Embedded CE Windows CE 5.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

IImageSink
IImageSink::PushRawData
IImageSink::PushPixelData
IImageSink::GetPixelDataBuffer
IImageSink::ReleasePixelDataBuffer
SinkFlags
IImageSink::PushPropertyItems
IImageSink::SetPalette