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 |