CScreenSaver
v1.08 An MFC class framework for developing screen savers
The screen saver library provided in the Windows SDK namely SCRSAVE.LIB is designed
for SDK apps and cannot be used with traditional MFC apps. CScreenSaver provides
an MFC class framework to allow screen savers to be built using "normal"
MFC code.
Features
- Simple and clean C++ interface.
- The code uses standard MFC concepts to allow screen savers to be created.
This includes CWinApp and CWnd derived classes and C++ virtual functions.
- The code is fully Unicode compliant, compiles cleanly at level 4, is /analyze
clean and includes full SAL annotations.
- The code is multi-monitor aware.
The enclosed zip file contains the CScreenSaver
source code and a sample VC2017 screen saver application which exercises the classes.
Copyright
- You are allowed to include the source code in any product (commercial, shareware,
freeware or otherwise) when your product is released in binary form.
- You are allowed to modify the source code in any way you want except you
cannot modify the copyright details at the top of each module.
- If you want to distribute source code with your application, then you are
only allowed to distribute versions released by the author. This is to maintain
a single distribution point for the source code.
Updates
v1.08 (25 April 2022)
- Updated copyright details.
- Updated the code to use C++ uniform initialization for all variable
declarations.
v1.07 (25 March 2020)
- Updated copyright details.
- Fixed more Clang-Tidy static code analysis warnings in the code.
v1.06 (23 December 2019)
- Fixed various Clang-Tidy static code analysis warnings in the code.
v1.05 (3 June 2019)
- Updated copyright details.
- Updated the code to clean compile on VC 2019
v1.04 (29 October 2018)
- Updated copyright details.
- Fixed a number of C++ core guidelines compiler warnings. These changes
mean that the code will now only compile on VC 2017 or later.
v1.03 (30 January 2016)
- Updated copyright details.
- Remove VC 6 style classwizard style comments from the code
- Removed the code in the classes which supports Windows 9x.
- Updated the code to compile cleanly in VC 2005 - 2015.
- Updated the sample apps main icon.
- Added SAL annotations to all the code.
- CScreenSaverApp::InitInstance now calls the base class InitInstance implementation
- Removed unnecessary CScreenSaverWnd::m_bDialogUp member variable
v1.02 (18 July 2006)
- Code now uses new C++ style casts rather than old style C casts where necessary.
- Replaced calls to ZeroMemory with memset
- Reviewed TRACE statements for correctness
- Verified code compiles cleanly on VC 2005
- Addition of CSCREENSAVER_EXT_CLASS preprocessor macro to allow the classes
to be easily added to an extension dll.
v1.01 (6 January 2006)
- Updated the copyright details and general code cleanup.
- CScreenSaverApp::ChangePassword method now returns a BOOL to indicate success.
- Fixed a number of issues when code is compiled using the "Detect 64
bit portability issues" in Visual Studio .NET 2003. To address this issue,
it does mean that you require the Platform SDK to be installed and configured
if you want to compile the code in Visual C++ 6.
- Removed some unnecessary comments from CScreenSaverApp::ShowConfigureDialog.
- Fixed a bug in CScreenSaveWnd::OnClose where it would incorrectly prompt
for a password when the screen saver preview was being displayed and you were
running on Windows 9x. Thanks to Jason Yang for reporting this bug.
- Updated the documentation to use the same style as the web site.
v1.0 (5 May 2000)