IDirectDraw7 ::SetCooperativeLevel, méthode (ddraw.h)
Détermine le comportement de niveau supérieur de l’application.
Syntaxe
HRESULT SetCooperativeLevel(
[in] HWND unnamedParam1,
[in] DWORD unnamedParam2
);
Paramètres
[in] unnamedParam1
Handle de fenêtre utilisé pour l’application. Définissez sur le handle de fenêtre de niveau supérieur de l’application appelante (pas un handle pour les fenêtres enfants créées par la fenêtre de niveau supérieur). Ce paramètre peut avoir la valeur NULL lorsque l’indicateur DDSCL_NORMAL est spécifié dans le paramètre dwFlags .
[in] unnamedParam2
Cette valeur se compose d’un ou plusieurs des indicateurs suivants :
DDSCL_ALLOWMODEX
Autorise l’utilisation des modes d’affichage mode X. Cet indicateur ne peut être utilisé que si les indicateurs DDSCL_EXCLUSIVE et DDSCL_FULLSCREEN sont présents.
DDSCL_ALLOWREBOOT
Permet à CTRL+ALT+SUPPR de fonctionner en mode exclusif (plein écran).
DDSCL_CREATEDEVICEWINDOW
Cet indicateur est pris en charge dans Windows 98 et Windows 2000 uniquement. Indique que DirectDraw crée et gère une fenêtre d’appareil par défaut pour cet objet DirectDraw.
DDSCL_EXCLUSIVE
Demande le niveau exclusif. Cet indicateur doit être utilisé avec l’indicateur DDSCL_FULLSCREEN.
DDSCL_FPUPRESERVE
L’application appelante se soucie de l’état du FPU et ne souhaite pas que Direct3D le modifie de manière visible par l’application. Dans ce mode, Direct3D enregistre et restaure l’état du processeur FPU chaque fois qu’il doit modifier l’état du FPU.
DDSCL_FPUSETUP
L’application appelante est susceptible de conserver la configuration du FPU pour des performances Direct3D optimales (précision unique et exceptions désactivées), de sorte que Direct3D n’a pas besoin de définir explicitement le FPU à chaque fois. Il s’agit de la valeur par défaut.
DDSCL_FULLSCREEN
Le propriétaire du mode exclusif est responsable de l’ensemble de la surface primaire. Le GDI peut être ignoré. Cet indicateur doit être utilisé avec l’indicateur DDSCL_EXCLUSIVE.
DDSCL_MULTITHREADED
Demande le comportement de DirectDraw multithread-safe. Cela amène Direct3D à prendre la section critique globale plus fréquemment.
DDSCL_NORMAL
L’application fonctionne comme une application Windows classique. Cet indicateur ne peut pas être utilisé avec les indicateurs DDSCL_ALLOWMODEX, DDSCL_EXCLUSIVE ou DDSCL_FULLSCREEN.
DDSCL_NOWINDOWCHANGES
DirectDraw n’est pas autorisé à réduire ou à restaurer la fenêtre d’application lors de l’activation.
DDSCL_SETDEVICEWINDOW
Cet indicateur est pris en charge dans Windows 98 et Windows 2000 uniquement. Indique que le paramètre hWnd est le handle de fenêtre de la fenêtre d’appareil pour cet objet DirectDraw. Cet indicateur ne peut pas être utilisé avec l’indicateur DDSCL_SETFOCUSWINDOW.
DDSCL_SETFOCUSWINDOW
Cet indicateur est pris en charge dans Windows 98 et Windows 2000 uniquement. Indique que le paramètre hWnd est le handle de fenêtre de la fenêtre de focus pour cet objet DirectDraw. Cet indicateur ne peut pas être utilisé avec l’indicateur DDSCL_SETDEVICEWINDOW.
Valeur retournée
Si la méthode réussit, la valeur de retour est DD_OK.
En cas d’échec, la méthode peut retourner l’une des valeurs d’erreur suivantes :
- DDERR_EXCLUSIVEMODEALREADYSET
- DDERR_HWNDALREADYSET
- DDERR_HWNDSUBCLASSED
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_OUTOFMEMORY
Remarques
Cette méthode doit être appelée par le thread qui a créé la fenêtre d’application.
Une application doit définir l’indicateur DDSCL_EXCLUSIVE ou DDSCL_NORMAL.
L’indicateur DDSCL_EXCLUSIVE doit être défini pour appeler des fonctions qui peuvent nuire aux performances d’autres applications.
L’interaction entre cette méthode et la méthode IDirectDraw7 ::SetDisplayMode diffère de leurs équivalents IDirectDraw.
Si vous utilisez microsoft Foundation Classes (MFC), le handle de fenêtre passé à cette méthode doit identifier la fenêtre de niveau supérieur de l’application, et non une fenêtre enfant dérivée. Pour récupérer le handle de fenêtre de niveau supérieur de votre application MFC, vous pouvez utiliser le code suivant :
HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | ddraw.h |
Bibliothèque | Ddraw.lib |
DLL | Ddraw.dll |