Freigeben über


EngCreateWnd-Funktion (winddi.h)

Die EngCreateWnd-Funktion erstellt eine WNDOBJ-Struktur für das Fenster, auf das von hwnd verwiesen wird.

Syntax

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

Parameter

pso

Zeiger auf eine SURFOBJ-Struktur , die eine Geräteoberfläche identifiziert.

hwnd

Handle für das Fenster, das durch den Aufruf einer Anwendung der Win32 CreateWindow-Funktion oder einer entsprechenden Funktion erstellt wurde.

pfn

fl

Ist eine Bitmaske, die den Typ der Änderungen angibt, die GDI nachverfolgen und an den Treiber melden soll. Dieser Wert muss über alle WNDOBJ-Anforderungen des Treibers konsistent sein. Bei diesem Parameter kann es sich um einen oder mehrere der folgenden Bitfeldwerte handeln:

Flag Bedeutung
WO_DRAW_NOTIFY GDI sollte dem Treiber WOC_DRAWN Benachrichtigungen bereitstellen.
WO_RGN_CLIENT GDI sollte Änderungen in der Clientregion des Fensterobjekts nachverfolgen und den Treiber benachrichtigen, wenn sich die sichtbare Clientregion des Fensters ändert. Der bereich, der in der Rückruffunktion aufgezählt wird, ist der neue sichtbare Clientbereich des Fensters.
WO_RGN_CLIENT_DELTA GDI sollte Änderungen im Deltaclientbereich des Fensterobjekts nachverfolgen und den Treiber benachrichtigen, wenn sich der sichtbare Bereich des Fensters ändert. Die Region, die in der Rückruffunktion aufgezählt wird, ist ein nicht leerer Deltabereich, der sich in der neuen Region befindet, aber nicht in der alten Region. Der Deltabereich ist nur während des Rückrufs gültig.
WO_RGN_DESKTOP_COORD GDI erstellt eine WNDOBJ-Struktur mit Desktopkoordinaten, wenn das System mehrere Monitore ausführt.

GDI ignoriert dieses Flag und erstellt eine WNDOBJ-Struktur mit Gerätekoordinaten, wenn das System einen einzelnen Monitor ausführt.

WO_RGN_SURFACE GDI sollte Änderungen im Oberflächenbereich des Fensterobjekts nachverfolgen und den Treiber benachrichtigen, wenn sich der Oberflächenbereich ändert. Der Oberflächenbereich ist die Anzeigeoberfläche mit Ausnahme aller sichtbaren Clientbereiche der Fenster, die vom Treiber nachverfolgt werden.
WO_RGN_SURFACE_DELTA GDI sollte Änderungen im Delta-Oberflächenbereich des Fensterobjekts nachverfolgen und den Treiber benachrichtigen, wenn sich der Oberflächenbereich ändert. Der bereich, der in der Rückruffunktion aufgezählt wird, ist ein nicht leerer Deltabereich, der sich im neuen Oberflächenbereich befindet, aber nicht im alten Oberflächenbereich. Der Delta-Oberflächenbereich ist nur während des Rückrufs gültig.
WO_RGN_UPDATE_ALL GDI sollte den Treiber für alle von ihm nachverfolgten Fenster benachrichtigen, wenn sich die sichtbaren Bereiche seiner Fenster ändern. Dieses Flag muss in Verbindung mit dem flag WO_RGN_CLIENT verwendet werden.
WO_RGN_WINDOW GDI sollte Änderungen im gesamten Bereich des Fensterobjekts (einschließlich des Clientbereichs des Fensters) nachverfolgen und den Treiber benachrichtigen, wenn sich die Region des Fensters ändert.
WO_SPRITE_NOTIFY GDI sollte den Treiber für alle Fenster benachrichtigen, die er nachverfolgt, wenn die sichtbaren Bereiche der Fenster überlappen oder nicht mehr durch Sprites überlappen.

iPixelFormat

Gibt das Pixelformat an, das dem Fensterobjekt zugeordnet ist. Das Pixelformat eines Fensterobjekts ist fest. Dieser Parameter kann null sein, wenn kein zugeordnetes Pixelformat vorhanden ist.

Rückgabewert

Der Rückgabewert ist ein Zeiger auf eine WNDOBJ-Struktur , wenn die Funktion erfolgreich ist. Andernfalls ist der Rückgabewert −1, wenn dasselbe Fenster vom Treiber nachverfolgt wird, oder null, wenn der Treiber dasselbe Fenster nicht nachverfolgt.

Hinweise

Da das Erstellen eines Fensterobjekts das Sperren von Fensterressourcen umfasst, sollte EngCreateWnd nur im Kontext des WNDOBJ_SETUP Escapezeichens in DrvEscape aufgerufen werden.

EngCreateWnd unterstützt die Fensternachverfolgung durch mehrere Treiber, wobei jeder Treiber durch einen eindeutigen WNDOBJCHANGEPROC-Funktionszeiger identifiziert wird, der von pfn identifiziert wird. Beispielsweise kann ein Livevideotreiber Änderungen an Livevideofenstern nachverfolgen, während ein OpenGL-Treiber Änderungen an OpenGL-Fenstern nachverfolgt.

GDI ruft WNDOBJCHANGEPROC mit dem letzten Fensterstatus auf, wenn von DrvEscape ein neues WNDOBJ erstellt wird. GDI benachrichtigt auch WNDOBJCHANGEPROC , wenn ein von einer WNDOBJ-Struktur beschriebenes Fenster zerstört wird.

Die WOC_SPRITE_OVERLAP und WOC_SPRITE_NO_OVERLAP Benachrichtigungen, die an WNDOBJCHANGEPROC übergeben werden, ermöglichen es dem Treiber, synchron informiert zu werden, wenn sich ein Sprite über seinem Fenster befindet, und die entsprechende Aktion auszuführen. Der Treiber empfängt diese Benachrichtigungen, auch wenn alle Sprites durch das ECS_TEARDOWN-Flag von EngControlSprites abgerissen wurden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

DrvEscape

WNDOBJ

WNDOBJCHANGEPROC