ReactOS 0.4.15-dev-8339-g4028de8
logonui.h File Reference
#include <windows.h>
#include "resource.h"
Include dependency graph for logonui.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _INFO
 

Typedefs

typedef struct _INFO INFO
 
typedef struct _INFOPINFO
 

Functions

HDC NT5_DrawBaseBackground (HDC hdcDesktop)
 
VOID NT5_CreateLogoffScreen (LPWSTR lpText, HDC hdcMem)
 
VOID NT5_RefreshLogoffScreenText (LPWSTR lpText, HDC hdcMem)
 

Variables

PINFO g_pInfo
 

Typedef Documentation

◆ INFO

typedef struct _INFO INFO

◆ PINFO

typedef struct _INFO * PINFO

Function Documentation

◆ NT5_CreateLogoffScreen()

VOID NT5_CreateLogoffScreen ( LPWSTR  lpText,
HDC  hdcMem 
)

Definition at line 125 of file NT5design.c.

127{
128 /* Draw the reactos logo */
130
131 /* Draw the first text string */
133}
static VOID NT5_DrawLogoffCaptionText(LPWSTR lpText, HDC hdcMem)
Definition: NT5design.c:21
static VOID NT5_DrawLogoffIcon(HDC hdcMem)
Definition: NT5design.c:69
HDC hdcMem
Definition: welcome.c:104

Referenced by DrawLogoffScreen().

◆ NT5_DrawBaseBackground()

HDC NT5_DrawBaseBackground ( HDC  hdcDesktop)

Definition at line 136 of file NT5design.c.

137{
139 HDC hdcMem = NULL;
140
141 /* Create an an off screen DC to match the desktop DC */
142 hdcMem = CreateCompatibleDC(hdcDesktop);
143 if (hdcMem)
144 {
145 /* Create a bitmap to draw the logoff screen onto */
146 hBitmap = CreateCompatibleBitmap(hdcDesktop, g_pInfo->cx, g_pInfo->cy);
147 if (hBitmap)
148 {
149 /* Select it onto our off screen DC*/
151
152 /* Draw the centre block */
153 {
154 HBITMAP hTempBitmap;
155 HBRUSH hBrush;
157 HDC hTempDC;
158
159 /* Paint the blue centre block */
160 hBrush = CreateSolidBrush(RGB(90, 126, 220));
161 SelectObject(hdcMem, hBrush);
163 0,
165 g_pInfo->cx,
167 PATCOPY);
168 DeleteObject(hBrush);
169
170 /* Load the shine effect */
171 hTempBitmap = (HBITMAP)LoadImageW(g_pInfo->hInstance,
174 0,
175 0,
177 if (hTempBitmap)
178 {
179 /* Get the bitmap dimensions */
180 GetObjectW(hTempBitmap, sizeof(BITMAP), &bitmap);
181
182 /* Create a temp DC for the bitmap */
183 hTempDC = CreateCompatibleDC(hdcDesktop);
184 if (hTempDC)
185 {
186 /* Select the bitmap onto the temp DC */
187 SelectObject(hTempDC, hTempBitmap);
188
189 /* Paint it onto the top left of the centre block */
191 0,
193 bitmap.bmWidth,
194 bitmap.bmHeight,
195 hTempDC,
196 0,
197 0,
198 SRCCOPY);
199
200 /* Delete the DC */
201 DeleteDC(hTempDC);
202 }
203
204 /* Delete the bitmap */
205 DeleteObject(hTempBitmap);
206 }
207 }
208
209 /* Draw the top border */
210 {
211 HBITMAP hTempBitmap;
212 HBRUSH hBrush;
214 HDC hTempDC;
215
216 /* Create the blue brush and paint the top bar */
217 hBrush = CreateSolidBrush(RGB(0, 48, 156));
218 SelectObject(hdcMem, hBrush);
220 DeleteObject(hBrush);
221
222 /* Load the top divider strip */
223 hTempBitmap = (HBITMAP)LoadImageW(g_pInfo->hInstance,
226 0,
227 0,
229 if (hTempBitmap)
230 {
231 /* Get the bitmap dimensions */
232 GetObjectW(hTempBitmap, sizeof(BITMAP), &bitmap);
233
234 /* Create a temp DC for the bitmap */
235 hTempDC = CreateCompatibleDC(hdcDesktop);
236 if (hTempDC)
237 {
238 /* Select the bitmap onto the temp DC */
239 SelectObject(hTempDC, hTempBitmap);
240
241 /* Paint the bitmap */
243 0,
244 NT5_TOP_BORDER_HEIGHT - bitmap.bmHeight,
245 g_pInfo->cx,
247 hTempDC,
248 0,
249 0,
250 bitmap.bmWidth,
252 SRCCOPY);
253
254 /* Delete the DC */
255 DeleteDC(hTempDC);
256 }
257
258 /* Delete the bitmap */
259 DeleteObject(hTempBitmap);
260 }
261 }
262
263 /* Draw the bottom border */
264 {
265 HBITMAP hTempBitmap;
266 TRIVERTEX vertex[2];
267 GRADIENT_RECT gRect;
269 HDC hTempDC;
270
271 /*
272 * We paint the divider strip first as it's 3
273 * pixels high but MS only show 2 of them.
274 */
275
276 /* Load the bottom divider strip */
277 hTempBitmap = (HBITMAP)LoadImage(g_pInfo->hInstance,
280 0,
281 0,
283 if (hTempBitmap)
284 {
285 /* Get the bitmap dimensions */
286 GetObjectW(hTempBitmap, sizeof(BITMAP), &bitmap);
287
288 /* Create a temp DC for the bitmap */
289 hTempDC = CreateCompatibleDC(hdcDesktop);
290 if (hTempDC)
291 {
292 /* Select the bitmap onto the temp DC */
293 SelectObject(hTempDC, hTempBitmap);
294
295 /* Paint the bitmap */
297 0,
299 g_pInfo->cx,
300 g_pInfo->cy - NT5_BOTTOM_BORDER_HEIGHT + bitmap.bmHeight,
301 hTempDC,
302 0,
303 0,
304 bitmap.bmWidth,
305 g_pInfo->cy - NT5_BOTTOM_BORDER_HEIGHT + bitmap.bmHeight,
306 SRCCOPY);
307
308 /* Delete the DC */
309 DeleteDC(hTempDC);
310 }
311
312 /* Delete the bitmap */
313 DeleteObject(hTempBitmap);
314 }
315
316 /* Setup the left hand vertex */
317 vertex[0].x = 0;
318 vertex[0].y = g_pInfo->cy - NT5_BOTTOM_BORDER_HEIGHT + 2; // paint over 1 pixel of the bitmap
319 vertex[0].Red = 0x3900;
320 vertex[0].Green = 0x3400;
321 vertex[0].Blue = 0xAE00;
322 vertex[0].Alpha = 0x0000;
323
324 /* Setup the right hand vertex */
325 vertex[1].x = g_pInfo->cx;
326 vertex[1].y = g_pInfo->cy;
327 vertex[1].Red = 0x0000;
328 vertex[1].Green = 0x3000;
329 vertex[1].Blue = 0x9600;
330 vertex[1].Alpha = 0x0000;
331
332 /* Set the vertex structs */
333 gRect.UpperLeft = 0;
334 gRect.LowerRight = 1;
335
336 /* Paint the gradient across the bottom */
337 GradientFill(hdcMem,
338 vertex,
339 2,
340 &gRect,
341 1,
342 GRADIENT_FILL_RECT_H);
343 }
344
345 /* Delete the bitmap */
347 }
348 }
349
350 return hdcMem;
351}
#define NT5_BOTTOM_BORDER_HEIGHT
Definition: NT5design.c:15
#define NT5_TOP_BORDER_HEIGHT
Definition: NT5design.c:14
#define IDB_TOP_DIVIDER_STRIP
Definition: resource.h:5
#define IDB_MAIN_PANEL_SHINE
Definition: resource.h:3
#define IDB_BOTTOM_DIVIDER_STRIP
Definition: resource.h:6
#define NULL
Definition: types.h:112
static HBITMAP hBitmap
Definition: timezone.c:26
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
#define RGB(r, g, b)
Definition: precomp.h:71
pKey DeleteObject()
static struct CommonInfo * g_pInfo
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:92
Definition: bl.h:1331
ULONG LowerRight
Definition: wingdi.h:2806
ULONG UpperLeft
Definition: wingdi.h:2805
Definition: uimain.c:89
Definition: mesh.c:4558
float x
Definition: hlsl.c:29
float y
Definition: hlsl.c:29
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:1546
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
#define PATCOPY
Definition: wingdi.h:335
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
#define IMAGE_BITMAP
Definition: winuser.h:211
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:2247
#define LoadImage
Definition: winuser.h:5824
#define LR_DEFAULTCOLOR
Definition: winuser.h:1087
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define MAKEINTRESOURCE
Definition: winuser.h:591

Referenced by DrawBaseBackground().

◆ NT5_RefreshLogoffScreenText()

VOID NT5_RefreshLogoffScreenText ( LPWSTR  lpText,
HDC  hdcMem 
)

Definition at line 115 of file NT5design.c.

117{
118 /* FIXME: clear previous text */
119
120 /* Draw the new text */
122}

Variable Documentation

◆ g_pInfo

PINFO g_pInfo
extern

Definition at line 17 of file logonui.c.

Referenced by Run(), and wWinMain().