функция wiasWritePageBufToFile (wiamdef.h)
Функция wiasWritePageBufToFile записывает содержимое временного буфера страницы в файл изображения.
Синтаксис
HRESULT wiasWritePageBufToFile(
[in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);
Параметры
[in] pmdtc
Указатель на структуру MINIDRV_TRANSFER_CONTEXT.
Возвращаемое значение
При успешном выполнении функция возвращает S_OK. Если функция завершается ошибкой, она возвращает стандартную ошибку COM или одну из WIA_ERROR_XXX ошибок (описанную в документации по пакету SDK для Microsoft Windows).
Замечания
Функция записывает данные из выделенного мини-driver временного буфера страницы в файл изображения, открытый службой WIA. Мини-drivers обычно вызывают эту функцию после получения страницы данных, для которых мини-driver выделил временный буфер.
Эта функция аналогична wiasWriteBufToFile, которая может использоваться для записи буфера данных изображения в любой тип файла изображения. Если мини-driver 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 |