wiasWritePageBufToFile, fonction (wiamdef.h)
La fonction wiasWritePageBufToFile écrit le contenu d’une mémoire tampon de page temporaire dans un fichier image.
Syntaxe
HRESULT wiasWritePageBufToFile(
[in] PMINIDRV_TRANSFER_CONTEXT pmdtc
);
Paramètres
[in] pmdtc
Pointeur vers une structure MINIDRV_TRANSFER_CONTEXT.
Valeur de retour
En cas de réussite, la fonction retourne S_OK. Si la fonction échoue, elle retourne une erreur COM standard ou l’une des erreurs WIA_ERROR_XXX (décrites dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows).
Remarques
La fonction écrit des données à partir d’une mémoire tampon de page temporaire allouée par minidriver dans le fichier image ouvert par le service WIA. Les minidrivers appellent généralement cette fonction après avoir acquis une page de données pour laquelle le minidriver a alloué une mémoire tampon temporaire.
Cette fonction est similaire à wiasWriteBufToFile, qui peut être utilisée pour écrire une mémoire tampon de données d’image dans n’importe quel type de fichier image. Si un minidriver WIA a l’intention d’écrire une page de données d’image dans un fichier TIFF à plusieurs pages, y compris toutes les étiquettes appropriées, les entrées IFD (Image File Directory) et d’autres données nonimage, il doit appeler cette fonction, plutôt que wiasWriteBufToFile.
L’expression pmdtc :> hFile contient le handle du fichier dans les transferts TYMED_FILE (et TYMED_MULTIPAGE_FILE). Vous pouvez l’utiliser pour accéder directement au fichier dans lequel il est écrit.
Voici un exemple d’utilisation :
SetFilePointer((HANDLE)(LONG_PTR)pmdtc->hFile,0,NULL,FILE_BEGIN);
if (!WriteFile((HANDLE)(LONG_PTR)pmdtc->hFile,
pMyBuffer,
dwNumBytesToWrite,
&dwNumBytesWritten,
NULL)) {
//
// Some error happened
//
.
.
.
}
Toutefois, si vous envisagez d’utiliser uniquement le handle de fichier dans votre TYMED_FILE et que TYMED_MULTIPAGE_FILE transfère (pour écrire des données directement dans le fichier à l’aide du handle de fichier, au lieu d’appeler wiasWritePageBufToFile), utilisez wiasWriteBufToFile. Cette fonction effectue l’équivalent de :
bRet = WriteFile((HANDLE)ULongToPtr(pmdtc->hFile),
pmdtc->pTransferBuffer,
pmdtc->lItemSize,
&ulWritten,
NULL);
C’est essentiellement ce que vous feriez si vous utilisiez directement le handle de fichier. L’avantage du premier exemple est que si l’implémentation a été modifiée dans une prochaine version de WIA (par exemple, si le service WIA a commencé à utiliser des canaux au lieu de fichiers, en interne), le pilote n’a pas besoin d’être mis à jour.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Microsoft Windows Me et dans Windows XP et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | wiamdef.h (include Wiamdef.h) |
bibliothèque | Wiaservc.lib |
DLL | Wiaservc.dll |