Método IWiaDataTransfer::idtGetBandedData (wia_xp.h)

O método IWiaDataTransfer::idtGetBandedData transfere uma faixa de dados de um dispositivo de hardware para um aplicativo. Para obter eficiência, os aplicativos recuperam dados de dispositivos de hardware WIA (Aquisição de Imagens do Windows) em faixas sucessivas.

Sintaxe

HRESULT idtGetBandedData(
  [in] PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  [in] IWiaDataCallback        *pIWiaDataCallback
);

Parâmetros

[in] pWiaDataTransInfo

Tipo: PWIA_DATA_TRANSFER_INFO

Ponteiro para a estrutura WIA_DATA_TRANSFER_INFO .

[in] pIWiaDataCallback

Tipo: IWiaDataCallback*

Ponteiro para a interface IWiaDataCallback . Periodicamente, esse método chamará o método BandedDataCallback para fornecer ao aplicativo a transferência de dados status notificação.

Retornar valor

Tipo: HRESULT

Esse método pode retornar qualquer um dos seguintes valores:

Valor Retornado Significado
E_INVALIDARG Um ou mais parâmetros para esse método contêm dados inválidos.
E_OUTOFMEMORY Esse método não pode alocar memória suficiente para concluir sua operação.
E_UNEXPECTED Ocorreu um erro desconhecido.
S_FALSE O aplicativo cancelou a operação.
S_OK A imagem foi adquirida com êxito.
STG_E_MEDIUMFULL O meio de armazenamento que o aplicativo está usando para adquirir a imagem está cheio.
WIA_S_NO_DEVICE_AVAILABLE Não há dispositivos de hardware WIA anexados ao computador do usuário.
 

Esse método retornará um valor especificado em Códigos de Erro ou um erro COM padrão se falhar por qualquer motivo diferente daqueles especificados na tabela anterior.

Comentários

O método IWiaDataTransfer::idtGetBandedData aloca uma seção de memória para transferir dados sem exigir uma cópia de dados extra por meio da camada de marshalling COM/RPC (Component Object Model/Remote Procedure Call). Esta seção de memória é compartilhada entre o aplicativo e a árvore de itens do dispositivo de hardware.

Opcionalmente, o aplicativo pode passar um ponteiro para um bloco de memória que IWiaDataTransfer::idtGetBandedData usará como sua seção compartilhada. O aplicativo passa esse identificador armazenando o ponteiro no membro ulSection da estrutura WIA_DATA_TRANSFER_INFO antes de chamar IWiaDataTransfer::idtGetBandedData.

Os aplicativos podem melhorar o desempenho usando buffer duplo. Para fazer isso, os aplicativos devem definir o membro bDoubleBuffer da estrutura WIA_DATA_TRANSFER_INFO como TRUE. O método IWiaDataTransfer::idtGetBandedData dividirá o buffer de dados pela metade. Quando metade do buffer estiver cheia, IWiaDataTransfer::idtGetBandedData enviará uma notificação para o aplicativo usando o ponteiro IWiaDataCallback passado por meio do parâmetro pIWiaDataCallback . Enquanto o aplicativo está recuperando os dados da metade completa do buffer, o driver do dispositivo pode preencher a outra metade com dados.

O formato da transferência de dados é determinado pelos valores das propriedades WIA_IPA_FORMAT e WIA_IPA_TYMED do item. O aplicativo define essas propriedades com chamadas para o método IWiaPropertyStorage::WriteMultiple .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wia_xp.h (inclua Wia.h)
Biblioteca Wiaguid.lib
DLL Wiaservc.dll