Partager via


Fonction DdResetVisrgn (ddrawgdi.h)

[Cette fonction est susceptible d’être modifiée à chaque révision du système d’exploitation. Utilisez plutôt Microsoft DirectDraw et Microsoft Direct3DAPIs ; ces API isolent les applications de ces modifications du système d’exploitation et masquent de nombreuses autres difficultés liées à l’interaction directe avec les pilotes d’affichage.]

Wrapper pour la fonction NtGdiDdResetVisrgn et active les informations en mode utilisateur en temps opportun sur la zone de découpage pour les fenêtres du bureau.

GdiEntry6 est défini comme alias pour cette fonction.

Syntaxe

BOOL DdResetVisrgn(
  LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
  HWND                      hWnd
);

Paramètres

pSurfaceLocal

Pointeur vers l’objet en mode utilisateur de toute surface appartenant à l’appareil DirectDraw pour lequel le découpage doit être réinitialisé. Pour plus d’informations, consultez la documentation DDK.

hWnd

Réservé.

Valeur retournée

Si elle réussit, cette fonction retourne TRUE ; sinon, elle retourne FALSE.

Remarques

Le découpage peut changer de manière asynchrone du point de vue des threads en mode utilisateur. Les parties en mode noyau de DirectDraw et de l’interface GDI (Graphics Device Interface) Windows conservent un compteur qui est incrémenté chaque fois que la liste de découpage de l’ensemble du bureau change. Un appel à cette fonction enregistre ce compteur avec chaque surface principale DirectDraw existante sur le système.

À tout moment ultérieur, lorsque l’une de ces surfaces principales est modifiée par une opération IDirectDrawSurface7 ::Blt ou IDirectDrawSurface7 ::Lock (voir la documentation DDK), le compteur enregistré avec la surface est comparé au compteur global. Si ces valeurs sont différentes, un code d’erreur DDERR_VISRGNCHANGED est retourné au code en mode utilisateur. Le code en mode utilisateur interroge ensuite de nouveau la capture actuelle pour le bureau, appelle NtGdiDdResetVisrgn, puis réessaye le IDirectDrawSurface7 ::Blt appliqué à la surface primaire, en respectant la nouvelle découpage. À terme, le découpage qui a été échantillonné par le code du mode utilisateur sera le même que le découpage actuel appartenant au mode noyau, et IDirectDrawSurface7 ::Blt sera autorisé à continuer.

Il est recommandé aux applications d’utiliser l’interface IDirectDrawClipper ou la méthode IDirect3DDevice8 ::P resent pour gérer les modifications de découpage asynchrones. Ces constructions implémentent le découpage asynchrone de manière automatisée et indépendante du système d’exploitation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ddrawgdi.h

Voir aussi

Prise en charge du client de bas niveau graphique