Reactos
1/*
2 * DESCRIPTION: Simple Win32 Caption Clock
3 * PROJECT : ReactOS (test applications)
4 * AUTHOR : Emanuele Aliberti
5 * DATE : 2003-09-03
6 * LICENSE : GNU GPL v2.0
7 */
8#include <windows.h>
9#include <string.h>
10
11UINT Timer = 1;
12
13static INT_PTR CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);
14static VOID CALLBACK TimerProc(HWND,UINT,UINT_PTR,DWORD);
15
16
17INT WINAPI WinMain (HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpCmdLine, INT nCmdShow)
18{
19 WNDCLASS wc;
20
21 ZeroMemory (& wc, sizeof wc);
22 wc.lpfnWndProc = DefDlgProc;
23 wc.cbWndExtra = DLGWINDOWEXTRA;
24 wc.hInstance = hinst;
25 wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW);
26 wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
27 wc.lpszClassName = "CapClock";
28 RegisterClass (& wc);
29 return DialogBox(hinst, MAKEINTRESOURCE(2), NULL, DialogFunc);
30
31}
32static int InitializeApp (HWND hDlg,WPARAM wParam, LPARAM lParam)
33{
34 Timer = SetTimer (hDlg,Timer,1000,TimerProc);
35 TimerProc (hDlg,0,0,0);
36 return 1;
37}
38static INT_PTR CALLBACK DialogFunc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
39{
40 switch (msg)
41 {
42 case WM_INITDIALOG:
43 InitializeApp(hwndDlg,wParam,lParam);
44 return TRUE;
45 case WM_CLOSE:
46 KillTimer (hwndDlg,Timer);
47 EndDialog(hwndDlg,0);
48 return TRUE;
49 }
50 return FALSE;
51}
52static VOID CALLBACK TimerProc (HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
53{
54 CHAR text [20];
55 SYSTEMTIME lt;
56
57 GetLocalTime (& lt);
58 wsprintf (
59 text,
60 "%d-%02d-%02d %02d:%02d:%02d",
61 lt.wYear,
62 lt.wMonth,
63 lt.wDay,
64 lt.wHour,
65 lt.wMinute,
66 lt.wSecond);
67 SetWindowText (hwnd, text);
68}
69/* EOF */