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 ミニドライバーが、すべての適切なタグ、イメージ ファイル ディレクトリ (IFD) エントリ、およびその他の非イメージ データを含む複数ページ TIFF ファイルに画像データのページを書き込む場合は、 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 オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | wiamdef.h (Wiamdef.h を含む) |
Library | Wiaservc.lib |
[DLL] | Wiaservc.dll |