función wiasWritePageBufToFile (wiamdef.h)
La función wiasWritePageBufToFile escribe el contenido de un búfer de página temporal en un archivo de imagen.
Sintaxis
HRESULT wiasWritePageBufToFile(
[in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);
Parámetros
[in] pmdtc
Puntero a una estructura MINIDRV_TRANSFER_CONTEXT.
Valor devuelto
Si la función se ejecuta correctamente, devuelve S_OK. Si se produce un error en la función, devuelve un error COM estándar o uno de los errores de WIA_ERROR_XXX (que se describe en la documentación de Microsoft Windows SDK).
Observaciones
La función escribe datos de un búfer de página temporal asignado por minidriver al archivo de imagen abierto por el servicio WIA. Los minidrivers suelen llamar a esta función después de adquirir una página de datos para la que el minidriver asignó un búfer temporal.
Esta función es similar a wiasWriteBufToFile, que se puede usar para escribir un búfer de datos de imagen en cualquier tipo de archivo de imagen. Si un minidriver WIA pretende escribir una página de datos de imagen en un archivo TIFF de varias páginas, incluidas todas las etiquetas adecuadas, las entradas del directorio de archivos de imagen (IFD) y otros datos que no sean de imagen, debe llamar a esta función, en lugar de wiasWriteBufToFile.
La expresión pmdtc->hFile contiene el identificador del archivo en transferencias de TYMED_FILE (y TYMED_MULTIPAGE_FILE). Esto se puede usar para acceder directamente al archivo en el que se está escribiendo.
Un ejemplo de cómo usarlo es:
SetFilePointer((HANDLE)(LONG_PTR)pmdtc->hFile,0,NULL,FILE_BEGIN);
if (!WriteFile((HANDLE)(LONG_PTR)pmdtc->hFile,
pMyBuffer,
dwNumBytesToWrite,
&dwNumBytesWritten,
NULL)) {
//
// Some error happened
//
.
.
.
}
Sin embargo, si está considerando usar solo el identificador de archivo en las transferencias de TYMED_FILE y TYMED_MULTIPAGE_FILE (para escribir datos directamente en el archivo mediante el identificador de archivo, en lugar de llamar a wiasWritePageBufToFile), use wiasWriteBufToFile. Esta función realiza el equivalente de:
bRet = WriteFile((HANDLE)ULongToPtr(pmdtc->hFile),
pmdtc->pTransferBuffer,
pmdtc->lItemSize,
&ulWritten,
NULL);
Esto es básicamente lo que haría si usó el identificador de archivo directamente. La ventaja del primer ejemplo es que si la implementación se cambió en una versión futura de WIA (por ejemplo, si el servicio WIA comenzó a usar canalizaciones en lugar de archivos, internamente), el controlador no tendría que actualizarse.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Microsoft Windows Me y en Windows XP y versiones posteriores de los sistemas operativos Windows. |
de la plataforma de destino de | Escritorio |
encabezado de | wiamdef.h (incluya Wiamdef.h) |
biblioteca de | Wiaservc.lib |
DLL de | Wiaservc.dll |