Método IDirectDraw7::SetCooperativeLevel (ddraw.h)
Determina el comportamiento de nivel superior de la aplicación.
Sintaxis
HRESULT SetCooperativeLevel(
[in] HWND unnamedParam1,
[in] DWORD unnamedParam2
);
Parámetros
[in] unnamedParam1
Identificador de ventana usado para la aplicación. Establézcalo en el identificador de ventana de nivel superior de la aplicación que realiza la llamada (no es un identificador para las ventanas secundarias creadas por la ventana de nivel superior). Este parámetro puede ser NULL cuando se especifica la marca DDSCL_NORMAL en el parámetro dwFlags .
[in] unnamedParam2
Este valor consta de una o varias de las marcas siguientes:
DDSCL_ALLOWMODEX
Permite el uso de los modos de pantalla Mode X. Esta marca solo se puede usar si las marcas DDSCL_EXCLUSIVE y DDSCL_FULLSCREEN están presentes.
DDSCL_ALLOWREBOOT
Permite que CTRL+ALT+SUPR funcione mientras está en modo exclusivo (pantalla completa).
DDSCL_CREATEDEVICEWINDOW
Esta marca solo se admite en Windows 98 y Windows 2000. Indica que DirectDraw creará y administrará una ventana de dispositivo predeterminada para este objeto DirectDraw.
DDSCL_EXCLUSIVE
Solicita el nivel exclusivo. Esta marca debe usarse con la marca DDSCL_FULLSCREEN.
DDSCL_FPUPRESERVE
La aplicación que realiza la llamada se preocupa por el estado de FPU y no quiere que Direct3D la modifique de maneras visibles para la aplicación. En este modo, Direct3D guarda y restaura el estado de FPU cada vez que necesita modificar el estado de FPU.
DDSCL_FPUSETUP
Es probable que la aplicación que realiza la llamada mantenga configurada la FPU para un rendimiento óptimo de Direct3D (precisión única y excepciones deshabilitadas), por lo que Direct3D no necesita establecer explícitamente la FPU cada vez. Este es el estado predeterminado.
DDSCL_FULLSCREEN
El propietario del modo exclusivo es responsable de toda la superficie principal. El GDI se puede omitir. Esta marca debe usarse con la marca DDSCL_EXCLUSIVE.
DDSCL_MULTITHREADED
Solicita el comportamiento de DirectDraw multithread-safe. Esto hace que Direct3D tome la sección crítica global con más frecuencia.
DDSCL_NORMAL
La aplicación funciona como una aplicación típica de Windows. Esta marca no se puede usar con las marcas DDSCL_ALLOWMODEX, DDSCL_EXCLUSIVE o DDSCL_FULLSCREEN.
DDSCL_NOWINDOWCHANGES
DirectDraw no puede minimizar ni restaurar la ventana de la aplicación al activarse.
DDSCL_SETDEVICEWINDOW
Esta marca solo se admite en Windows 98 y Windows 2000. Indica que el parámetro hWnd es el identificador de ventana de la ventana del dispositivo para este objeto DirectDraw. Esta marca no se puede usar con la marca DDSCL_SETFOCUSWINDOW.
DDSCL_SETFOCUSWINDOW
Esta marca solo se admite en Windows 98 y Windows 2000. Indica que el parámetro hWnd es el identificador de ventana de la ventana de foco para este objeto DirectDraw. Esta marca no se puede usar con la marca DDSCL_SETDEVICEWINDOW.
Valor devuelto
Si el método se realiza correctamente, el valor devuelto es DD_OK.
Si se produce un error, el método puede devolver uno de los siguientes valores de error:
- DDERR_EXCLUSIVEMODEALREADYSET
- DDERR_HWNDALREADYSET
- DDERR_HWNDSUBCLASSED
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_OUTOFMEMORY
Comentarios
El mismo subproceso que creó la ventana de la aplicación debe llamar a este método.
Una aplicación debe establecer el DDSCL_EXCLUSIVE o la marca DDSCL_NORMAL.
La marca DDSCL_EXCLUSIVE debe establecerse para llamar a funciones que pueden afectar negativamente al rendimiento de otras aplicaciones.
La interacción entre este método y el método IDirectDraw7::SetDisplayMode difiere de sus homólogos de IDirectDraw.
Si usa Microsoft Foundation Classes (MFC), el identificador de ventana pasado a este método debe identificar la ventana de nivel superior de la aplicación, no una ventana secundaria derivada. Para recuperar el identificador de ventana de nivel superior de la aplicación MFC, puede usar el código siguiente:
HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | ddraw.h |
Library | Ddraw.lib |
Archivo DLL | Ddraw.dll |