共用方式為


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 檔中所述)。

言論

函式會將數據從 minidriver 配置的暫存頁面緩衝區寫入 WIA 服務所開啟的映像檔案。 Minidrivers 通常會在取得迷你驅動程式配置暫存緩衝區的數據頁面之後呼叫此函式。

此函式類似於 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