fonction wiasWritePageBufToFile (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 retournée
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 Microsoft Windows SDK).
Remarques
La fonction écrit les données 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 l’acquisition d’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 multipage, y compris toutes les balises appropriées, les entrées de répertoire de fichiers image (IFD) et d’autres données non image, 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 en cours d’écriture.
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 vos transferts TYMED_FILE et TYMED_MULTIPAGE_FILE (pour écrire des données directement dans le fichier à l’aide du handle de fichier, au lieu d’appeler wiasWritePageBufToFile), utilisez wiasWriteBufToFile. Cette fonction exécute 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 le handle de fichier directement. L’avantage du premier exemple est que si l’implémentation a été modifiée dans une version ultérieure de WIA (par exemple, si le service WIA a commencé à utiliser des canaux au lieu de fichiers, en interne), le pilote n’aurait pas besoin d’être mis à jour.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Microsoft Windows Me et Windows XP et les versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | wiamdef.h (inclure Wiamdef.h) |
Bibliothèque | Wiaservc.lib |
DLL | Wiaservc.dll |