共用方式為


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

另請參閱

MINIDRV_TRANSFER_CONTEXT

wiasWriteBufToFile

wiasWritePageBufToStream