Partager via


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

Voir aussi

IDirectDraw7