Compartilhar via


Função EngCreateWnd (winddi.h)

A função EngCreateWnd cria uma estrutura WNDOBJ para a janela referenciada por hwnd.

Sintaxe

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

Parâmetros

pso

Ponteiro para uma estrutura SURFOBJ que identifica uma superfície do dispositivo.

hwnd

Manipule para a janela criada pela chamada de um aplicativo para a função Win32 CreateWindow ou equivalente.

pfn

fl

É uma máscara de bits que especifica o tipo de alterações que a GDI deve acompanhar e relatar ao driver. Esse valor deve ser consistente em todas as solicitações do WNDOBJ feitas pelo driver. Esse parâmetro pode ser um ou mais dos seguintes valores de campo de bits:

Sinalizador Significado
WO_DRAW_NOTIFY A GDI deve fornecer ao driver WOC_DRAWN notificações.
WO_RGN_CLIENT A GDI deve acompanhar as alterações na região do cliente do objeto de janela e notificar o driver quando a região do cliente visível da janela for alterada. A região enumerada na função de retorno de chamada é a nova área de cliente visível da janela.
WO_RGN_CLIENT_DELTA A GDI deve acompanhar as alterações na região do cliente delta do objeto de janela e notificar o driver quando a região visível da janela for alterada. A região enumerada na função de retorno de chamada é uma área delta não úmida que está na nova região, mas não na região antiga. A região delta é válida somente durante o retorno de chamada.
WO_RGN_DESKTOP_COORD A GDI cria uma estrutura WNDOBJ com coordenadas de área de trabalho quando o sistema está executando vários monitores.

A GDI ignora esse sinalizador e cria uma estrutura WNDOBJ com coordenadas de dispositivo quando o sistema está executando um único monitor.

WO_RGN_SURFACE A GDI deve acompanhar as alterações na região da superfície do objeto de janela e notificar o driver quando a região da superfície for alterada. A região da superfície é a área de superfície de exibição, excluindo todas as regiões de cliente visíveis das janelas que estão sendo rastreadas pelo driver.
WO_RGN_SURFACE_DELTA A GDI deve acompanhar as alterações na região da superfície delta do objeto de janela e notificar o driver quando a região da superfície for alterada. A região enumerada na função de retorno de chamada é uma área delta não úmida que está na nova região da superfície, mas não na região da superfície antiga. A região da superfície delta é válida somente durante o retorno de chamada.
WO_RGN_UPDATE_ALL A GDI deve notificar o driver para todas as janelas que ele rastreia quando qualquer uma das regiões visíveis de suas janelas é alterada. Esse sinalizador deve ser usado em conjunto com o sinalizador WO_RGN_CLIENT.
WO_RGN_WINDOW O GDI deve acompanhar as alterações em toda a região do objeto de janela (que inclui a região do cliente da janela) e notificar o driver quando a região da janela for alterada.
WO_SPRITE_NOTIFY O GDI deve notificar o driver para todas as janelas que rastreia quando qualquer uma das regiões visíveis de suas janelas estiver sobreposta ou não mais sobreposta por sprites.

iPixelFormat

Especifica o formato de pixel associado ao objeto de janela. O formato de pixel de um objeto de janela é corrigido. Esse parâmetro poderá ser zero se não houver um formato de pixel associado.

Retornar valor

O valor retornado será um ponteiro para uma estrutura WNDOBJ se a função for bem-sucedida. Caso contrário, o valor retornado será −1 se a mesma janela estiver sendo rastreada pelo driver ou zero se o driver não estiver rastreando a mesma janela.

Comentários

Como a criação de um objeto de janela envolve o bloqueio de recursos de janela, EngCreateWnd deve ser chamado somente no contexto do escape WNDOBJ_SETUP no DrvEscape.

O EngCreateWnd dá suporte ao rastreamento de janela por vários drivers, em que cada driver é identificado por um ponteiro de função WNDOBJCHANGEPROC exclusivo identificado pelo pfn. Por exemplo, um driver de vídeo ao vivo pode controlar as alterações nas janelas de vídeo ao vivo enquanto um driver OpenGL está acompanhando as alterações nas janelas OpenGL.

A GDI chamará WNDOBJCHANGEPROC com o estado de janela mais recente se um novo WNDOBJ for criado pelo DrvEscape. A GDI também notificará WNDOBJCHANGEPROC quando uma janela descrita por uma estrutura WNDOBJ for destruída.

As notificações de WOC_SPRITE_OVERLAP e WOC_SPRITE_NO_OVERLAP passadas para WNDOBJCHANGEPROC permitem que o driver seja informado de forma síncrona quando um sprite estiver no topo de sua janela e tome a ação apropriada. O driver recebe essas notificações mesmo que todos os sprites tenham sido derrubados pelo sinalizador ECS_TEARDOWN de EngControlSprites.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Universal
Cabeçalho winddi.h (inclua Winddi.h)
Biblioteca Win32k.lib
DLL Win32k.sys

Confira também

DrvEscape

WNDOBJ

WNDOBJCHANGEPROC