Partager via


Fonction EngCreateWnd (winddi.h)

La fonction EngCreateWnd crée une structure WNDOBJ pour la fenêtre référencée par hwnd.

Syntaxe

ENGAPI WNDOBJ * EngCreateWnd(
  SURFOBJ          *pso,
  HWND             hwnd,
  WNDOBJCHANGEPROC pfn,
  FLONG            fl,
  int              iPixelFormat
);

Paramètres

pso

Pointeur vers une structure SURFOBJ identifiant une surface d’appareil.

hwnd

Gérez la fenêtre créée par l’appel d’une application à la fonction Win32 CreateWindow ou équivalente.

pfn

fl

Masque de bits qui spécifie le type de modifications que GDI doit suivre et signaler au pilote. Cette valeur doit être cohérente dans toutes les requêtes WNDOBJ effectuées par le pilote. Ce paramètre peut être une ou plusieurs des valeurs de champ de bits suivantes :

Indicateur Signification
WO_DRAW_NOTIFY GDI doit fournir au pilote des notifications WOC_DRAWN.
WO_RGN_CLIENT GDI doit suivre les modifications apportées dans la région cliente de l’objet window et notifier le pilote lorsque la région cliente visible de la fenêtre change. La région énumérée dans la fonction de rappel est la nouvelle zone client visible de la fenêtre.
WO_RGN_CLIENT_DELTA GDI doit suivre les modifications apportées dans la région cliente delta de l’objet window et avertir le pilote lorsque la région visible de la fenêtre change. La région énumérée dans la fonction de rappel est une zone delta vide qui se trouve dans la nouvelle région, mais pas dans l’ancienne région. La région delta est valide pendant le rappel uniquement.
WO_RGN_DESKTOP_COORD GDI crée une structure WNDOBJ avec des coordonnées de bureau lorsque le système exécute plusieurs moniteurs.

GDI ignore cet indicateur et crée une structure WNDOBJ avec des coordonnées d’appareil lorsque le système exécute un seul moniteur.

WO_RGN_SURFACE GDI doit suivre les modifications apportées à la zone de surface de l’objet window et notifier le pilote lorsque la région de surface change. La région de surface est la surface d’affichage à l’exclusion de toutes les régions clientes visibles des fenêtres suivies par le pilote.
WO_RGN_SURFACE_DELTA GDI doit suivre les modifications apportées à la zone delta surface de l’objet window et avertir le pilote lorsque la région de surface change. La région énumérée dans la fonction de rappel est une zone delta vide qui se trouve dans la nouvelle région de surface, mais pas dans l’ancienne région de surface. La région de surface delta est valide pendant le rappel uniquement.
WO_RGN_UPDATE_ALL GDI doit informer le pilote de toutes les fenêtres qu’il suit lorsque l’une des régions visibles de ses fenêtres change. Cet indicateur doit être utilisé conjointement avec l’indicateur WO_RGN_CLIENT.
WO_RGN_WINDOW GDI doit suivre les modifications dans l’ensemble de la région de l’objet window (qui inclut la région cliente de la fenêtre) et avertir le pilote lorsque la région de la fenêtre change.
WO_SPRITE_NOTIFY GDI doit informer le pilote de toutes les fenêtres qu’il suit lorsque l’une des régions visibles de ses fenêtres se chevauche ou ne se chevauche plus par des sprites.

iPixelFormat

Spécifie le format de pixel associé à l’objet window. Le format de pixel d’un objet fenêtre est fixe. Ce paramètre peut être égal à zéro s’il n’existe aucun format de pixel associé.

Valeur retournée

La valeur de retour est un pointeur vers une structure WNDOBJ si la fonction réussit. Sinon, la valeur de retour est −1 si la même fenêtre est suivie par le pilote, ou zéro si le pilote ne suit pas la même fenêtre.

Remarques

Étant donné que la création d’un objet window implique le verrouillage des ressources de fenêtre, EngCreateWnd doit être appelé uniquement dans le contexte de l’échappement WNDOBJ_SETUP dans DrvEscape.

EngCreateWnd prend en charge le suivi des fenêtres par plusieurs pilotes, où chaque pilote est identifié par un pointeur de fonction WNDOBJCHANGEPROC unique identifié par pfn. Par exemple, un pilote vidéo en direct peut suivre les modifications apportées aux fenêtres vidéo en direct tandis qu’un pilote OpenGL effectue le suivi des modifications apportées aux fenêtres OpenGL.

GDI appelle WNDOBJCHANGEPROC avec l’état de fenêtre le plus récent si un nouveau WNDOBJ est créé par DrvEscape. GDI avertit également WNDOBJCHANGEPROC lorsqu’une fenêtre décrite par une structure WNDOBJ est détruite.

Les notifications WOC_SPRITE_OVERLAP et WOC_SPRITE_NO_OVERLAP transmises à WNDOBJCHANGEPROC permettent au pilote d’être informé de manière synchrone lorsqu’un sprite se trouve au-dessus de sa fenêtre et d’effectuer l’action appropriée. Le pilote reçoit ces notifications même si tous les sprites ont été détruits par l’indicateur ECS_TEARDOWN d’EngControlSprites.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Universal
En-tête winddi.h (inclure Winddi.h)
Bibliothèque Win32k.lib
DLL Win32k.sys

Voir aussi

DrvEscape

WNDOBJ

WNDOBJCHANGEPROC