IDirectDraw4::SetCooperativeLevel

This method determines the top-level behavior of the application.

HRESULT SetCooperativeLevel(
  HWND hWnd, 
  DWORD dwFlags
); 

Parameters

  • hWnd
    Window handle used for the application. Set to the calling application's top-level window handle (not a handle for any child windows created by the top-level window). This parameter can be NULL when the DDSCL_NORMAL flag is specified in the dwFlags parameter.

  • dwFlags
    The following table shows the possible flags.

    Flag Description
    DDSCL_CREATEDEVICEWINDOW This flag is not supported in Windows CE.
    DDSCL_EXCLUSIVE Requests the exclusive level. This flag must be used with the DDSCL_FULLSCREEN flag.
    DDSCL_FULLSCREEN Indicates that the exclusive-mode owner will be responsible for the entire primary surface. GDI can be ignored. This flag must be used with the DDSCL_EXCLUSIVE flag.
    DDSCL_NORMAL Indicates that the application will function as a regular Windows application. This flag cannot be used with the DDSCL_ALLOWMODEX, DDSCL_EXCLUSIVE, or DDSCL_FULLSCREEN flags.

    The current Windows CE implementation allows for processes with NORMAL level to access DirectDraw resources when there is a process in full-screen exclusive mode. Processes in NORMAL mode can access primary surfaces but are restricted with regard to flipping, creating complex primaries, and setting display modes. A process may go into full-screen exclusive mode if no other process is in exclusive mode, regardless of whether processes are running at a NORMAL level of cooperation.

    DDSCL_NOWINDOWCHANGES Indicates that DirectDraw is not allowed to minimize or restore the application window on activation.

    These flags are not supported in Windows CE.

    DDSCL_ALLOWMODEX
    DDSCL_ALLOWREBOOT
    DDSCL_ALLOWSYSKEY
    DDSCL_FPUSETUP
    DDSCL_MULTITHREADED
    DDSCL_SETDEVICEWINDOW
    DDSCL_SETFOCUSWINDOW

Return Values

If the method succeeds, the return value is DD_OK.

If the method fails, the return value may be one of the following error values:

DDERR_EXCLUSIVEMODEALREADYSET
DDERR_HWNDALREADYSET
DDERR_HWNDSUBCLASSED
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_OUTOFMEMORY

Remarks

This method must be called by the same thread that created the application window.

An application must set either the DDSCL_EXCLUSIVE or the DDSCL_NORMAL flag.

The DDSCL_EXCLUSIVE flag must be set to call functions that can have drastic performance consequences for other applications.

Interaction between this method and the IDirectDraw4::SetDisplayMode method differs from their IDirectDraw counterparts.

Developers using Microsoft Foundation Classes (MFC) should keep in mind that the window handle passed to this method should identify the application's top-level window, not a derived child window.

To retrieve your MFC application's top level window handle, use the following code.

    HWND hwndTop = AfxGetMainWnd()->GetSafeHwnd();

Requirements

OS Versions: Windows CE 2.12 and later. Version 2.12 requires DXPAK 1.0 or later.
Header: Ddraw.h.
Link Library: Ddraw.lib.

See Also

IDirectDraw4::SetDisplayMode | IDirectDraw4::Compact | IDirectDraw4::EnumDisplayModes

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.