Freigeben über


wiasWritePageBufToFile-Funktion (wiamdef.h)

Die wiasWritePageBufToFile--Funktion schreibt den Inhalt eines temporären Seitenpuffers in eine Bilddatei.

Syntax

HRESULT wiasWritePageBufToFile(
  [in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);

Parameter

[in] pmdtc

Zeiger auf eine MINIDRV_TRANSFER_CONTEXT Struktur.

Rückgabewert

Bei Erfolg gibt die Funktion S_OK zurück. Wenn die Funktion fehlschlägt, wird ein STANDARDMÄßIGer COM-Fehler oder einer der WIA_ERROR_XXX Fehler zurückgegeben (in der Microsoft Windows SDK-Dokumentation beschrieben).

Bemerkungen

Die Funktion schreibt Daten aus einem vom Minidriver zugewiesenen temporären Seitenpuffer in die Vom WIA-Dienst geöffnete Bilddatei. Minidriver rufen diese Funktion in der Regel nach dem Abrufen einer Datenseite auf, für die der Minidriver einen temporären Puffer zugewiesen hat.

Diese Funktion ähnelt wiasWriteBufToFile-, die zum Schreiben eines Puffers von Bilddaten in einen beliebigen Bilddateityp verwendet werden kann. Wenn ein WIA Minidriver beabsichtigt, eine Seite mit Bilddaten in eine mehrseitige TIFF-Datei zu schreiben, einschließlich aller geeigneten Tags, IFD-Einträge (Image File Directory) und anderer Nichtimagedaten, sollte diese Funktion aufgerufen werden, anstatt wiasWriteBufToFile.

Der Ausdruck pmdtc->hFile- enthält das Handle für die Datei in TYMED_FILE-Übertragungen (und TYMED_MULTIPAGE_FILE). Dies kann verwendet werden, um direkt auf die Datei zuzugreifen, in die geschrieben wird.

Ein Beispiel für die Verwendung ist:

SetFilePointer((HANDLE)(LONG_PTR)pmdtc->hFile,0,NULL,FILE_BEGIN);
if (!WriteFile((HANDLE)(LONG_PTR)pmdtc->hFile,
    pMyBuffer,
    dwNumBytesToWrite,
   &dwNumBytesWritten,
    NULL)) {
     //
     // Some error happened
     //
     .
     .
     .
    }

Wenn Sie jedoch in Erwägung ziehen, nur das Dateihandle in Ihren TYMED_FILE und TYMED_MULTIPAGE_FILE Übertragungen zu verwenden (um Daten direkt über das Dateihandle in die Datei zu schreiben, anstatt wiasWritePageBufToFileaufzurufen), verwenden Sie wiasWriteBufToFile. Diese Funktion führt die entsprechung wie folgt aus:

bRet = WriteFile((HANDLE)ULongToPtr(pmdtc->hFile),
    pmdtc->pTransferBuffer,
    pmdtc->lItemSize,
    &ulWritten,
    NULL);

Dies ist im Wesentlichen das, was Sie tun würden, wenn Sie das Dateihandle direkt verwendet haben. Der Vorteil des ersten Beispiels besteht darin, dass der Treiber nicht aktualisiert werden muss, wenn die Implementierung in einer zukünftigen Version von WIA geändert wurde (z. B. wenn der WIA-Dienst mit der Verwendung von Rohren anstelle von Dateien intern begonnen hat).

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows Me und in Windows XP und höheren Versionen von Windows-Betriebssystemen.
Zielplattform- Desktop
Header- wiamdef.h (include Wiamdef.h)
Library Wiaservc.lib
DLL- Wiaservc.dll

Siehe auch

MINIDRV_TRANSFER_CONTEXT

wiasWriteBufToFile

wiasWritePageBufToStream