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 |