Função wiasWritePageBufToFile (wiamdef.h)
A função wiasWritePageBufToFile grava o conteúdo de um buffer de página temporário em um arquivo de imagem.
Sintaxe
HRESULT wiasWritePageBufToFile(
[in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);
Parâmetros
[in] pmdtc
Ponteiro para uma estrutura MINIDRV_TRANSFER_CONTEXT.
Valor de retorno
Com êxito, a função retorna S_OK. Se a função falhar, ela retornará um erro COM padrão ou um dos erros de WIA_ERROR_XXX (descritos na documentação do SDK do Microsoft Windows).
Observações
A função grava dados de um buffer de página temporário alocado pelo minidriver no arquivo de imagem aberto pelo serviço WIA. Os minidrivers normalmente chamam essa função depois de adquirir uma página de dados para a qual o minidriver alocou um buffer temporário.
Essa função é semelhante a wiasWriteBufToFile, que pode ser usado para gravar um buffer de dados de imagem em qualquer tipo de arquivo de imagem. Se um minidriver WIA pretende gravar uma página de dados de imagem em um arquivo TIFF de várias páginas, incluindo todas as marcas apropriadas, entradas ifd (diretório de arquivo de imagem) e outros dados não imagens, ele deve chamar essa função, em vez de wiasWriteBufToFile.
A expressão pmdtc-> hFile contém o identificador para o arquivo em transferências TYMED_FILE (e TYMED_MULTIPAGE_FILE). Isso pode ser usado para acessar diretamente o arquivo que está sendo gravado.
Um exemplo de como usá-lo é:
SetFilePointer((HANDLE)(LONG_PTR)pmdtc->hFile,0,NULL,FILE_BEGIN);
if (!WriteFile((HANDLE)(LONG_PTR)pmdtc->hFile,
pMyBuffer,
dwNumBytesToWrite,
&dwNumBytesWritten,
NULL)) {
//
// Some error happened
//
.
.
.
}
No entanto, se você estiver considerando usar apenas o identificador de arquivo em suas transferências TYMED_FILE e TYMED_MULTIPAGE_FILE (para gravar dados diretamente no arquivo usando o identificador de arquivo, em vez de chamar wiasWritePageBufToFile), use wiasWriteBufToFile. Essa função executa o equivalente a:
bRet = WriteFile((HANDLE)ULongToPtr(pmdtc->hFile),
pmdtc->pTransferBuffer,
pmdtc->lItemSize,
&ulWritten,
NULL);
Isso é essencialmente o que você faria se usaria o identificador de arquivo diretamente. A vantagem do primeiro exemplo é que, se a implementação foi alterada em uma versão futura do WIA (por exemplo, se o serviço WIA começou a usar pipes em vez de arquivos, internamente), o driver não precisaria ser atualizado.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Microsoft Windows Me e no Windows XP e versões posteriores dos sistemas operacionais Windows. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | wiamdef.h (inclua Wiamdef.h) |
biblioteca | Wiaservc.lib |
de DLL | Wiaservc.dll |