DefScreenSaverProc function

Provides default processing for any messages that a screen saver application does not process.


LRESULT DefScreenSaverProc(
  HWND   hWnd,
  UINT   msg,
  WPARAM wParam,
  LPARAM lParam



Type: HWND

The identifier of the screen saver window.


Type: UINT

The message to be processed. The DefScreenSaverProc function responds to messages that affect the screen saver's operation, as detailed in the Remarks section.

If a screen saver application must perform a different action in response to any of these messages, the application's ScreenSaverProc window procedure should process the message.



Additional message-specific information.



Additional message-specific information.

Return Value

Type: LONG

The return value specifies the result of the message processing and depends on the message sent.


A screen saver application's ScreenSaverProc window procedure should use DefScreenSaverProc instead of the DefWindowProc function to provide default message processing. The DefScreenSaverProc function passes any messages that do not affect screen saver operation to DefWindowProc.

The following table describes how the DefScreenSaverProc processes a variety of window messages.

Message Description
WM_ACTIVATE, WM_ACTIVATEAPP, WM_NCACTIVATE Closes the screen saver if the wParam parameter is FALSE. A wParam value of FALSE indicates that the screen saver is losing the input focus. The screen saver is closed by sending a WM_CLOSE message.
WM_SETCURSOR Removes the cursor from the screen by setting the cursor to NULL.
WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN, WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE Calls the PostQuitMessage function to close the screen saver.
WM_DESTROY Posts a WM_CLOSE message to close the screen saver window.
WM_SYSCOMMAND Returns FALSE if the wParam parameter of WM_SYSCOMMAND is either SC_CLOSE or SC_SCREENSAVE.


Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header scrnsave.h
Library Scrnsave.lib
DLL None