Compartir a través de


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 de MINIDRV_TRANSFER_CONTEXT .

Valor devuelto

Si se ejecuta correctamente, la función 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 (descritos en la documentación de Microsoft Windows SDK).

Comentarios

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. Normalmente, los minidrivers llaman 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 son de imagen inicial, 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á pensando en usar solo el identificador de archivo en el TYMED_FILE y TYMED_MULTIPAGE_FILE transferencias (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 futura versión 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 Value
Cliente mínimo compatible Disponible en Microsoft Windows Me y en Windows XP y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado wiamdef.h (incluye Wiamdef.h)
Library Wiaservc.lib
Archivo DLL Wiaservc.dll

Consulte también

MINIDRV_TRANSFER_CONTEXT

wiasWriteBufToFile

wiasWritePageBufToStream