I coded a Windows screensaver using C++/WinAPIs some time ago but now when I try it on Windows 8 at a logon screen (when no users are yet logged in) it doesn't seem to work. It is clearly a bug in Windows 8, because when I reboot the system my screensaver begins to work just fine. (Note that this behavior never happened on any previous version of Windows.)
What happens is that when the screensaver starts, the screen turns black and nothing happens after that moment. Obviously I can't debug it with the Visual Studio, so I added a trace statement into the first line where it should begin executing in WM_CREATE in ScreenSaverProc() but that line never gets called when the screensaver hangs up like I described above.
This tells me that some initialization code hangs up before the WM_CREATE message is sent, but to fix that I do not have access to that code because Microsoft's tutorial on WinAPI screensavers instructs to link to Scrnsave.lib (or ScrnsavW.lib in my case.)
So I was wondering, is there any way to build a WinAPI screensaver without using Scrnsave.lib?