IDirectDraw::SetCooperativeLevel

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

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

Syntax

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_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 Embedded 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.

Return Value

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_INVALIDOBJECT

DDERR_INVALIDPARAMS

DDERR_OUTOFMEMORY

For more information on these error codes see DirectDraw Return Values.

Remarks

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

Interaction between this method and the IDirectDraw::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();

Sample Code

An example showing the use of this function can be found in the topic How to use DirectDraw.

Requirements

Header ddraw.h
Library ddraw.lib
Windows Embedded CE Windows Embedded CE 6.0 and later
Windows Mobile Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later

See Also

Reference

IDirectDraw::SetDisplayMode
IDirectDraw::EnumDisplayModes