Fonction DrvResetPDEV (winddi.h)
La fonction DrvResetPDEV permet à un pilote graphique de transférer l’état du pilote d’une ancienne structure PDEV vers une nouvelle structure PDEV lorsqu’une application Win32 appelle ResetDC.
Syntaxe
BOOL DrvResetPDEV(
DHPDEV dhpdevOld,
DHPDEV dhpdevNew
);
Paramètres
dhpdevOld
Handle fourni par l’appelant à la structure PDEV de l’appareil d’origine. Ce handle était précédemment fourni par le pilote en tant que valeur de retour pour DrvEnablePDEV.
dhpdevNew
Handle fourni par l’appelant à la nouvelle structure PDEV.
Valeur retournée
Cette valeur de retour est TRUE si la fonction réussit. Sinon, il est FALSE et un code d’erreur est journalisé.
Remarques
La fonction DrvResetPDEV d’un pilote graphique doit être utilisée pour modifier le contenu d’une nouvelle structure PDEV, en fonction du contenu de l’ancienne structure PDEV (actuellement utilisée).
Les pilotes d’affichage OpenGL qui ont besoin de connaître les changements de mode doivent implémenter DrvResetPDEV. Sinon, tous les autres pilotes d’affichage n’ont généralement pas besoin d’implémenter cette fonction.
Remarque Les informations suivantes concernent les DLL graphiques d’imprimante.
La fonction est appelée à la suite de l’appel d’une application à la fonction Win32 ResetDC , qui à son tour amène GDI à appeler le DrvEnablePDEV du pilote pour obtenir une nouvelle structure PDEV. Étant donné que le pilote peut modifier le contenu d’une structure PDEV pendant le rendu d’un travail d’impression, la fonction DrvResetPDEV permet au pilote de transférer ces modifications de l’ancienne structure PDEV vers la nouvelle.Les exemples des types d’informations qu’une DLL de graphiques d’imprimante peut vouloir ajouter à la nouvelle structure PDEV sont les pointeurs vers les fichiers de police mis en cache ou les indicateurs indiquant si l’initialisation de la page doit (ou non) avoir lieu la prochaine fois que DrvStartDoc ou DrvStartPage est appelé.
Si ResetDC est appelé pendant le rendu d’un document d’impression, la DLL de graphiques d’imprimante reçoit la séquence d’appels suivante :
dhpdevNew = DrvEnablePDEV();
DrvResetPDEV(dhpdevOld, dhpdevNew);
DrvDisableSurface(dhpdevOld);
DrvDisablePDEV(dhpdevOld);
DrvEnableSurface(dhpdevNew);
DrvStartDoc(dhpdevNew);
Si ResetDC est appelé entre les documents, aucune surface n’est associée au PDEV. Par conséquent, seule la séquence d’appels suivante est effectuée :
dhpdevNew = DrvEnablePDEV();
DrvResetPDEV(dhpdevOld,dhpdevNew);
DrvDisablePDEV(dhpdevOld);
Configuration requise
Plateforme cible | Bureau |
En-tête | winddi.h (inclure Winddi.h) |