Функция wiasWritePageBufToFile (wiamdef.h)
Функция wiasWritePageBufToFile записывает содержимое временного буфера страницы в файл изображения.
Синтаксис
HRESULT wiasWritePageBufToFile(
[in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);
Параметры
[in] pmdtc
Указатель на структуру MINIDRV_TRANSFER_CONTEXT .
Возвращаемое значение
При успешном выполнении функция возвращает S_OK. Если функция завершается сбоем, она возвращает стандартную com-ошибку или одну из WIA_ERROR_XXX ошибок (описано в документации по Microsoft Windows SDK).
Комментарии
Функция записывает данные из выделенного мини-накопителем временного буфера страницы в файл изображения, открытый службой WIA. Мини-накопители обычно вызывают эту функцию после получения страницы данных, для которой мини-диск выделил временный буфер.
Эта функция похожа на wiasWriteBufToFile, которую можно использовать для записи буфера данных изображения в файл изображения любого типа. Если мини-накопитель WIA намерен записать страницу данных изображения в многостраничный TIFF-файл, включая все соответствующие теги, записи каталога файлов изображений (IFD) и другие данные, не относящиеся к образам, он должен вызывать эту функцию, а не wiasWriteBufToFile.
Выражение pmdtc-hFile> содержит дескриптор файла при передаче TYMED_FILE (и TYMED_MULTIPAGE_FILE). Его можно использовать для прямого доступа к файлу, в который выполняется запись.
Пример использования:
SetFilePointer((HANDLE)(LONG_PTR)pmdtc->hFile,0,NULL,FILE_BEGIN);
if (!WriteFile((HANDLE)(LONG_PTR)pmdtc->hFile,
pMyBuffer,
dwNumBytesToWrite,
&dwNumBytesWritten,
NULL)) {
//
// Some error happened
//
.
.
.
}
Однако если вы планируете использовать только дескриптор файла в TYMED_FILE и TYMED_MULTIPAGE_FILE передачи (для записи данных непосредственно в файл с помощью дескриптора файла вместо вызова wiasWritePageBufToFile), используйте wiasWriteBufToFile. Эта функция выполняет эквивалент:
bRet = WriteFile((HANDLE)ULongToPtr(pmdtc->hFile),
pmdtc->pTransferBuffer,
pmdtc->lItemSize,
&ulWritten,
NULL);
Это, по сути, то, что можно сделать, если бы вы использовали дескриптор файла напрямую. Преимущество первого примера заключается в том, что если реализация была изменена в будущем выпуске WIA (например, если служба WIA начала использовать каналы, а не файлы, внутренне), драйвер не нужно будет обновлять.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Microsoft Windows Me, Windows XP и более поздних версиях операционных систем Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | wiamdef.h (включая Wiamdef.h) |
Библиотека | Wiaservc.lib |
DLL | Wiaservc.dll |