ReactOS  0.4.15-dev-3453-gff89651
clock.c File Reference
#include "timedate.h"
#include <math.h>
Include dependency graph for clock.c:

Go to the source code of this file.

Classes

struct  _CLOCKDATA
 

Macros

#define TWOPI   (2 * 3.14159)
 

Typedefs

typedef struct _CLOCKDATA CLOCKDATA
 
typedef struct _CLOCKDATAPCLOCKDATA
 

Functions

static VOID RotatePoint (POINT pt[], INT iNum, INT iAngle)
 
static INT DrawClock (HDC hdc, PCLOCKDATA pClockData)
 
static VOID DrawHands (HDC hdc, SYSTEMTIME *pst, BOOL fChange, INT Radius)
 
static LRESULT CALLBACK ClockWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
BOOL RegisterClockControl (VOID)
 
VOID UnregisterClockControl (VOID)
 

Variables

static const WCHAR szClockWndClass [] = L"ClockWndClass"
 

Macro Definition Documentation

◆ TWOPI

#define TWOPI   (2 * 3.14159)

Definition at line 28 of file clock.c.

Typedef Documentation

◆ CLOCKDATA

◆ PCLOCKDATA

Function Documentation

◆ ClockWndProc()

static LRESULT CALLBACK ClockWndProc ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 135 of file clock.c.

139 {
140  PCLOCKDATA pClockData;
141  HDC hdc, hdcMem;
142  PAINTSTRUCT ps;
143 
145 
146  switch (uMsg)
147  {
148  case WM_CREATE:
149  pClockData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CLOCKDATA));
151 
152  pClockData->hGreyPen = CreatePen(PS_SOLID, 1, RGB(128, 128, 128));
153  pClockData->hGreyBrush = CreateSolidBrush(RGB(128, 128, 128));
154 
155  GetLocalTime(&pClockData->stCurrent);
156  pClockData->stPrevious = pClockData->stCurrent;
157 
158  pClockData->bTimer = (SetTimer(hwnd, ID_TIMER, 1000 - pClockData->stCurrent.wMilliseconds, NULL) != 0);
159  break;
160 
161  case WM_SIZE:
162  pClockData->cxClient = LOWORD(lParam);
163  pClockData->cyClient = HIWORD(lParam);
164  break;
165 
166  case WM_TIMECHANGE:
167  case WM_TIMER:
168  GetLocalTime(&pClockData->stCurrent);
170  pClockData->stPrevious = pClockData->stCurrent;
171 
172  // Reset timeout.
173  if (pClockData->bTimer)
174  {
175  SetTimer(hwnd, ID_TIMER, 1000 - pClockData->stCurrent.wMilliseconds, NULL);
176  }
177  break;
178 
179  case WM_PAINT:
180  hdc = BeginPaint(hwnd, &ps);
181 
183  if (hdcMem)
184  {
185  HBITMAP hBmp, hBmpOld;
186 
188  pClockData->cxClient,
189  pClockData->cyClient);
190  if (hBmp)
191  {
192  RECT rcParent;
193  HWND hParentWnd = GetParent(hwnd);
194  INT oldMap, Radius;
195  POINT oldOrg;
196 
197  hBmpOld = SelectObject(hdcMem, hBmp);
198 
199  SetRect(&rcParent, 0, 0, pClockData->cxClient, pClockData->cyClient);
200  MapWindowPoints(hwnd, hParentWnd, (POINT*)&rcParent, 2);
201  OffsetViewportOrgEx(hdcMem, -rcParent.left, -rcParent.top, &oldOrg);
203  SetViewportOrgEx(hdcMem, oldOrg.x, oldOrg.y, NULL);
204 
205  oldMap = SetMapMode(hdcMem, MM_ISOTROPIC);
206  SetWindowExtEx(hdcMem, 3600, 2700, NULL);
207  SetViewportExtEx(hdcMem, 800, -600, NULL);
209  pClockData->cxClient / 2,
210  pClockData->cyClient / 2,
211  &oldOrg);
212 
213  Radius = DrawClock(hdcMem, pClockData);
214  DrawHands(hdcMem, &pClockData->stPrevious, TRUE, Radius);
215 
216  SetMapMode(hdcMem, oldMap);
217  SetViewportOrgEx(hdcMem, oldOrg.x, oldOrg.y, NULL);
218 
219  BitBlt(hdc,
220  0,
221  0,
222  pClockData->cxClient,
223  pClockData->cyClient,
224  hdcMem,
225  0,
226  0,
227  SRCCOPY);
228 
229  SelectObject(hdcMem, hBmpOld);
230  DeleteObject(hBmp);
231  }
232 
233  DeleteDC(hdcMem);
234  }
235 
236  EndPaint(hwnd, &ps);
237  break;
238 
239  /* No need to erase background, handled during paint */
240  case WM_ERASEBKGND:
241  return 1;
242 
243  case WM_DESTROY:
244  DeleteObject(pClockData->hGreyPen);
245  DeleteObject(pClockData->hGreyBrush);
246 
247  if (pClockData->bTimer)
249 
250  HeapFree(GetProcessHeap(), 0, pClockData);
251  break;
252 
253  case CLM_STOPCLOCK:
254  if (pClockData->bTimer)
255  {
257  pClockData->bTimer = FALSE;
258  }
259  break;
260 
261  case CLM_STARTCLOCK:
262  if (!pClockData->bTimer)
263  {
264  SYSTEMTIME LocalTime;
265 
266  GetLocalTime(&LocalTime);
267  pClockData->bTimer = (SetTimer(hwnd, ID_TIMER, 1000 - LocalTime.wMilliseconds, NULL) != 0);
268  }
269  break;
270 
271  default:
273  uMsg,
274  wParam,
275  lParam);
276  }
277 
278  return TRUE;
279 }
#define MM_ISOTROPIC
Definition: wingdi.h:870
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
Definition: coord.c:655
SYSTEMTIME stPrevious
Definition: clock.c:23
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI SetWindowExtEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPSIZE)
long y
Definition: polytest.cpp:48
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
#define RGB(r, g, b)
Definition: precomp.h:62
long x
Definition: polytest.cpp:48
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
static INT DrawClock(HDC hdc, PCLOCKDATA pClockData)
Definition: clock.c:52
#define TRUE
Definition: types.h:120
struct _CLOCKDATA * PCLOCKDATA
static HDC
Definition: imagelist.c:92
LONG top
Definition: windef.h:307
BOOL WINAPI OffsetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
Definition: coord.c:858
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
UINT_PTR WPARAM
Definition: windef.h:207
#define GetWindowLongPtrW
Definition: winuser.h:4809
LONG left
Definition: windef.h:306
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
int32_t INT
Definition: typedefs.h:58
WPARAM wParam
Definition: combotst.c:138
SYSTEMTIME stCurrent
Definition: clock.c:22
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT cyClient
Definition: clock.c:21
#define PS_SOLID
Definition: wingdi.h:586
#define FALSE
Definition: types.h:117
int WINAPI SetMapMode(_In_ HDC, _In_ int)
HBRUSH hGreyBrush
Definition: clock.c:18
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define GWLP_USERDATA
Definition: treelist.c:63
HPEN hGreyPen
Definition: clock.c:19
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:286
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
#define WM_DESTROY
Definition: winuser.h:1596
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define PRF_ERASEBKGND
Definition: winuser.h:2506
#define WM_SIZE
Definition: winuser.h:1598
#define WM_TIMER
Definition: winuser.h:1729
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
static VOID DrawHands(HDC hdc, SYSTEMTIME *pst, BOOL fChange, INT Radius)
Definition: clock.c:105
INT cxClient
Definition: clock.c:20
BOOL bTimer
Definition: clock.c:24
#define WM_PRINT
Definition: winuser.h:1867
#define WM_PAINT
Definition: winuser.h:1607
WORD wMilliseconds
Definition: winbase.h:906
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
HDC hdc
Definition: main.c:9
#define ID_TIMER
Definition: resource.h:23
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI DeleteDC(_In_ HDC)
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define NULL
Definition: types.h:112
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define SendMessage
Definition: winuser.h:5823
#define WM_CREATE
Definition: winuser.h:1595
#define HIWORD(l)
Definition: typedefs.h:247
#define CLM_STOPCLOCK
Definition: timedate.h:73
#define SetWindowLongPtrW
Definition: winuser.h:5326
static HBITMAP
Definition: button.c:44
#define CLM_STARTCLOCK
Definition: timedate.h:74
#define WM_ERASEBKGND
Definition: winuser.h:1612
BOOL WINAPI SetViewportExtEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPSIZE)
Definition: coord.c:465
#define PRF_CLIENT
Definition: winuser.h:2505
LPARAM lParam
Definition: combotst.c:139
#define LOWORD(l)
Definition: pedump.c:82
#define HeapFree(x, y, z)
Definition: compat.h:594
#define SRCCOPY
Definition: wingdi.h:333
HDC hdcMem
Definition: welcome.c:104
static VOID NTAPI 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:49
#define WM_TIMECHANGE
Definition: winuser.h:1621

Referenced by RegisterClockControl().

◆ DrawClock()

static INT DrawClock ( HDC  hdc,
PCLOCKDATA  pClockData 
)
static

Definition at line 52 of file clock.c.

53 {
54  INT iAngle,Radius;
55  POINT pt[3];
56  HBRUSH hBrushOld;
57  HPEN hPenOld = NULL;
58 
59  /* Grey brush to fill the dots */
60  hBrushOld = SelectObject(hdc, pClockData->hGreyBrush);
61 
62  hPenOld = GetCurrentObject(hdc, OBJ_PEN);
63 
64  // TODO: Check if this conversion is correct resp. usable
65  Radius = min(pClockData->cxClient,pClockData->cyClient) * 2;
66 
67  for (iAngle = 0; iAngle < 360; iAngle += 6)
68  {
69  /* Starting coords */
70  pt[0].x = 0;
71  pt[0].y = Radius;
72 
73  /* Rotate start coords */
74  RotatePoint(pt, 1, iAngle);
75 
76  /* Determine whether it's a big dot or a little dot
77  * i.e. 1-4 or 5, 6-9 or 10, 11-14 or 15 */
78  if (iAngle % 5)
79  {
80  pt[2].x = pt[2].y = 7;
81  SelectObject(hdc, pClockData->hGreyPen);
82  }
83  else
84  {
85  pt[2].x = pt[2].y = 16;
87  }
88 
89  pt[0].x -= pt[2].x / 2;
90  pt[0].y -= pt[2].y / 2;
91 
92  pt[1].x = pt[0].x + pt[2].x;
93  pt[1].y = pt[0].y + pt[2].y;
94 
95  Ellipse(hdc, pt[0].x, pt[0].y, pt[1].x, pt[1].y);
96  }
97 
98  SelectObject(hdc, hBrushOld);
99  SelectObject(hdc, hPenOld);
100  return Radius;
101 }
HGDIOBJ WINAPI GetStockObject(_In_ int)
#define pt(x, y)
Definition: drawing.c:79
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
int32_t INT
Definition: typedefs.h:58
#define OBJ_PEN
Definition: objidl.idl:1409
INT cyClient
Definition: clock.c:21
HBRUSH hGreyBrush
Definition: clock.c:18
static VOID RotatePoint(POINT pt[], INT iNum, INT iAngle)
Definition: clock.c:33
HPEN hGreyPen
Definition: clock.c:19
INT cxClient
Definition: clock.c:20
HDC hdc
Definition: main.c:9
BOOL WINAPI Ellipse(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
#define BLACK_PEN
Definition: wingdi.h:903
#define min(a, b)
Definition: monoChain.cc:55
#define NULL
Definition: types.h:112
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT)
Definition: dc.c:428

Referenced by ClockWndProc().

◆ DrawHands()

static VOID DrawHands ( HDC  hdc,
SYSTEMTIME pst,
BOOL  fChange,
INT  Radius 
)
static

Definition at line 105 of file clock.c.

106 {
107  POINT pt[3][5] = { {{0, (INT)-Radius/6}, {(INT)Radius/9, 0},
108  {0, (INT)Radius/1.8}, {(INT)-Radius/9, 0}, {0, (INT)-Radius/6}},
109  {{0, (INT)-Radius/4.5}, {(INT)Radius/18, 0}, {0, (INT) Radius*0.89},
110  {(INT)-Radius/18, 0}, {0, (INT)-Radius/4.5}},
111  {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, (INT) Radius*0.89}} };
112  INT i, iAngle[3];
113  POINT ptTemp[3][5];
114 
115  /* Black pen for outline, white brush for fill */
118 
119  iAngle[0] = (pst->wHour * 30) % 360 + pst->wMinute / 2;
120  iAngle[1] = pst->wMinute * 6;
121  iAngle[2] = pst->wSecond * 6;
122 
123  CopyMemory(ptTemp, pt, sizeof(pt));
124 
125  for (i = fChange ? 0 : 2; i < 3; i++)
126  {
127  RotatePoint(ptTemp[i], 5, iAngle[i]);
128 
129  Polygon(hdc, ptTemp[i], 5);
130  }
131 }
HGDIOBJ WINAPI GetStockObject(_In_ int)
BOOL Polygon(CONST PPOINT UnsafePoints, int Count, int polyFillMode)
Definition: polytest.cpp:730
#define pt(x, y)
Definition: drawing.c:79
#define INT
Definition: polytest.cpp:20
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
#define WHITE_BRUSH
Definition: wingdi.h:902
int32_t INT
Definition: typedefs.h:58
static VOID RotatePoint(POINT pt[], INT iNum, INT iAngle)
Definition: clock.c:33
WORD wMinute
Definition: winbase.h:904
#define CopyMemory
Definition: winbase.h:1662
WORD wSecond
Definition: winbase.h:905
HDC hdc
Definition: main.c:9
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define BLACK_PEN
Definition: wingdi.h:903
WORD wHour
Definition: winbase.h:903

Referenced by ClockWndProc().

◆ RegisterClockControl()

BOOL RegisterClockControl ( VOID  )

Definition at line 283 of file clock.c.

284 {
285  WNDCLASSEXW wc = {0};
286 
287  wc.cbSize = sizeof(WNDCLASSEXW);
289  wc.hInstance = hApplet;
291  wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
293 
294  return RegisterClassExW(&wc) != (ATOM)0;
295 }
WORD ATOM
Definition: dimm.idl:113
HINSTANCE hApplet
Definition: access.c:17
struct _WNDCLASSEXW WNDCLASSEXW
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
LPCWSTR lpszClassName
Definition: winuser.h:3206
HBRUSH hbrBackground
Definition: winuser.h:3204
UINT cbSize
Definition: winuser.h:3196
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2074
HINSTANCE hInstance
Definition: winuser.h:3201
#define COLOR_BTNFACE
Definition: winuser.h:922
HCURSOR hCursor
Definition: winuser.h:3203
WNDPROC lpfnWndProc
Definition: winuser.h:3198
#define NULL
Definition: types.h:112
static const WCHAR szClockWndClass[]
Definition: clock.c:30
#define IDC_ARROW
Definition: winuser.h:682
static LRESULT CALLBACK ClockWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: clock.c:135

Referenced by Applet().

◆ RotatePoint()

static VOID RotatePoint ( POINT  pt[],
INT  iNum,
INT  iAngle 
)
static

Definition at line 33 of file clock.c.

34 {
35  INT i;
36  POINT ptTemp;
37 
38  for (i = 0 ; i < iNum ; i++)
39  {
40  ptTemp.x = (INT) (pt[i].x * cos (TWOPI * iAngle / 360) +
41  pt[i].y * sin (TWOPI * iAngle / 360));
42 
43  ptTemp.y = (INT) (pt[i].y * cos (TWOPI * iAngle / 360) -
44  pt[i].x * sin (TWOPI * iAngle / 360));
45 
46  pt[i] = ptTemp;
47  }
48 }
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define pt(x, y)
Definition: drawing.c:79
#define INT
Definition: polytest.cpp:20
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define TWOPI
Definition: clock.c:28
int32_t INT
Definition: typedefs.h:58
_STLP_DECLSPEC complex< float > _STLP_CALL cos(const complex< float > &)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)

Referenced by DrawClock(), and DrawHands().

◆ UnregisterClockControl()

VOID UnregisterClockControl ( VOID  )

Definition at line 299 of file clock.c.

300 {
302  hApplet);
303 }
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
HINSTANCE hApplet
Definition: access.c:17
static const WCHAR szClockWndClass[]
Definition: clock.c:30

Referenced by Applet().

Variable Documentation

◆ szClockWndClass

const WCHAR szClockWndClass[] = L"ClockWndClass"
static

Definition at line 30 of file clock.c.

Referenced by RegisterClockControl(), and UnregisterClockControl().