ReactOS 0.4.15-dev-8236-g99f0937
logon.c File Reference
#include <stdlib.h>
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>
#include <scrnsave.h>
#include "resource.h"
Include dependency graph for logon.c:

Go to the source code of this file.

Macros

#define RANDOM(min, max)   ((rand() % (int)(((max)+1) - (min))) + (min))
 
#define APP_TIMER   1
 
#define APP_TIMER_INTERVAL   10000
 

Functions

static HBITMAP GetScreenSaverBitmap (VOID)
 
LRESULT CALLBACK ScreenSaverProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
BOOL WINAPI ScreenSaverConfigureDialog (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
BOOL WINAPI RegisterDialogClasses (HANDLE hInst)
 

Macro Definition Documentation

◆ APP_TIMER

#define APP_TIMER   1

Definition at line 32 of file logon.c.

◆ APP_TIMER_INTERVAL

#define APP_TIMER_INTERVAL   10000

Definition at line 33 of file logon.c.

◆ RANDOM

#define RANDOM (   min,
  max 
)    ((rand() % (int)(((max)+1) - (min))) + (min))

Definition at line 30 of file logon.c.

Function Documentation

◆ GetScreenSaverBitmap()

static HBITMAP GetScreenSaverBitmap ( VOID  )
static

Definition at line 37 of file logon.c.

38{
42
44 osvi.wProductType == VER_NT_WORKSTATION ?
47}
#define IDB_WORKSTATION
Definition: resource.h:4
#define IDB_SERVER
Definition: resource.h:5
#define NULL
Definition: types.h:112
ULONG dwOSVersionInfoSize
Definition: rtltypes.h:237
OSVERSIONINFO osvi
Definition: ver.c:28
#define GetModuleHandle
Definition: winbase.h:3827
#define GetVersionEx
Definition: winbase.h:3852
#define IMAGE_BITMAP
Definition: winuser.h:211
#define LR_CREATEDIBSECTION
Definition: winuser.h:1098
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
Definition: cursoricon.c:2234
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define VER_NT_WORKSTATION

Referenced by ScreenSaverProc().

◆ RegisterDialogClasses()

BOOL WINAPI RegisterDialogClasses ( HANDLE  hInst)

Definition at line 140 of file logon.c.

141{
142 WCHAR szMessage[256];
143 WCHAR szTitle[25];
144
145 LoadStringW(hInst, IDS_TEXT, szMessage, _countof(szMessage));
147
149
150 return FALSE;
151}
#define IDS_DESCRIPTION
Definition: resource.h:4
#define IDS_TEXT
Definition: resource.h:3
#define FALSE
Definition: types.h:117
HINSTANCE hInst
Definition: dxdiag.c:13
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
#define _countof(array)
Definition: sndvol32.h:70
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define MB_ICONEXCLAMATION
Definition: winuser.h:785
#define MB_OK
Definition: winuser.h:790
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ ScreenSaverConfigureDialog()

BOOL WINAPI ScreenSaverConfigureDialog ( HWND  hDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 130 of file logon.c.

131{
132 return FALSE;
133}

◆ ScreenSaverProc()

LRESULT CALLBACK ScreenSaverProc ( HWND  hWnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 51 of file logon.c.

52{
53 static HBITMAP bitmap;
54
55 switch (uMsg)
56 {
57 case WM_CREATE:
58 {
60 if (bitmap == NULL)
61 {
62 /* Extremely unlikely, message not localized. */
64 L"Fatal Error: Could not load bitmap",
65 L"Error",
67 }
68
70 break;
71 }
72 case WM_PAINT:
73 {
74 BITMAP bm;
75 PAINTSTRUCT ps;
76 HDC hdc;
77 HDC hdcMem;
78 HBITMAP hbmOld;
79 RECT rect;
80
81 hdc = BeginPaint(hWnd, &ps);
83 hbmOld = SelectObject(hdcMem, bitmap);
84 GetObjectW(bitmap, sizeof(bm), &bm);
85
87 if (rect.right < bm.bmWidth || rect.bottom < bm.bmHeight)
88 {
89 StretchBlt(hdc, RANDOM(0, rect.right - (bm.bmWidth / 5)),
90 RANDOM(0, rect.bottom - (bm.bmHeight / 5)),
91 bm.bmWidth / 5, bm.bmHeight / 5, hdcMem, 0, 0,
92 bm.bmWidth, bm.bmHeight, SRCCOPY);
93 }
94 else
95 {
96 BitBlt(hdc, RANDOM(0, rect.right - bm.bmWidth),
97 RANDOM(0, rect.bottom - bm.bmHeight),
98 bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);
99 }
100
101 SelectObject(hdcMem, hbmOld);
103 EndPaint(hWnd, &ps);
104 break;
105 }
106 case WM_TIMER:
107 {
109 break;
110 }
111 case WM_DESTROY:
112 {
116 break;
117 }
118 default:
119 {
120 /* Pass window messages to the default screensaver window procedure */
121 return DefScreenSaverProc(hWnd, uMsg, wParam, lParam);
122 }
123 }
124
125 return 0;
126}
HWND hWnd
Definition: settings.c:17
static HBITMAP GetScreenSaverBitmap(VOID)
Definition: logon.c:37
#define RANDOM(min, max)
Definition: logon.c:30
#define APP_TIMER_INTERVAL
Definition: logon.c:33
#define APP_TIMER
Definition: logon.c:32
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:57
pKey DeleteObject()
HDC hdc
Definition: main.c:9
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:92
#define L(x)
Definition: ntvdm.h:50
LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: scrnsave.c:92
& rect
Definition: startmenu.cpp:1413
Definition: bl.h:1331
Definition: uimain.c:89
HDC hdcMem
Definition: welcome.c:104
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
#define SRCCOPY
Definition: wingdi.h:333
BOOL WINAPI DeleteDC(_In_ HDC)
#define WM_PAINT
Definition: winuser.h:1620
#define WM_CREATE
Definition: winuser.h:1608
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define WM_TIMER
Definition: winuser.h:1742
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
#define WM_DESTROY
Definition: winuser.h:1609
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)