Как ловить событие смены скринсейвера в окне предпросмотра.
В инете ничего не нашел. В MSDN в примере ScreenSaver на VB6 только упоминание о ключе /p и что параметром передается хендл окна предпросмотра. (может не там читал )
Единственное что обнаружил - это сообщение WM_ParentNotification c параметром WM_Destroy при закрытии окна предпросмотра.
P.S. Некоторое скринсейвера так себя и ведут - если поставить фокус на ComboBox с выбором заставки и покрутить колесиком туда-сюда, откроется куча экземпляров заставки. И это хорошо, если они словят WM_DESTROY от родительского окна. А так могут и остаться висеть в процессах.