2 * PROJECT: ReactOS Timedate Control Panel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/cpl/timedate/timedate.c
5 * PURPOSE: ReactOS Timedate Control Panel
6 * COPYRIGHT: Copyright 2004-2005 Eric Kohl
7 * Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
15 static LONG APIENTRY
Applet(HWND hwnd
, UINT uMsg
, LPARAM wParam
, LPARAM lParam
);
20 APPLET Applets
[NUM_APPLETS
] =
22 {IDC_CPLICON
, IDS_CPLNAME
, IDS_CPLDESCRIPTION
, Applet
}
26 VOID
DisplayWin32ErrorDbg(DWORD dwErrorCode
, const char *file
, int line
)
28 VOID
DisplayWin32Error(DWORD dwErrorCode
)
36 FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER
|
37 FORMAT_MESSAGE_FROM_SYSTEM
|
38 FORMAT_MESSAGE_IGNORE_INSERTS
,
41 MAKELANGID(LANG_NEUTRAL
, SUBLANG_DEFAULT
),
47 if (swprintf(szMsg
, L
"%hs:%d: %s", file
, line
, lpMsgBuf
))
49 MessageBoxW(NULL
, szMsg
, NULL
, MB_OK
| MB_ICONERROR
);
52 MessageBox(NULL
, lpMsgBuf
, NULL
, MB_OK
| MB_ICONERROR
);
60 InitPropSheetPage(PROPSHEETPAGEW
*psp
, WORD idDlg
, DLGPROC DlgProc
)
62 ZeroMemory(psp
, sizeof(PROPSHEETPAGEW
));
63 psp
->dwSize
= sizeof(PROPSHEETPAGEW
);
64 psp
->dwFlags
= PSP_DEFAULT
;
65 psp
->hInstance
= hApplet
;
66 psp
->pszTemplate
= MAKEINTRESOURCEW(idDlg
);
67 psp
->pfnDlgProc
= DlgProc
;
72 Applet(HWND hwnd
, UINT uMsg
, LPARAM wParam
, LPARAM lParam
)
75 PROPSHEETPAGEW psp
[3];
79 UNREFERENCED_PARAMETER(uMsg
);
80 UNREFERENCED_PARAMETER(wParam
);
81 UNREFERENCED_PARAMETER(lParam
);
83 if (RegisterMonthCalControl(hApplet
) &&
84 RegisterClockControl())
86 LoadStringW(hApplet
, IDS_CPLNAME
, Caption
, sizeof(Caption
) / sizeof(WCHAR
));
88 ZeroMemory(&psh
, sizeof(PROPSHEETHEADERW
));
89 psh
.dwSize
= sizeof(PROPSHEETHEADERW
);
90 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_PROPTITLE
;
91 psh
.hwndParent
= hwnd
;
92 psh
.hInstance
= hApplet
;
93 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCEW(IDC_CPLICON
));
94 psh
.pszCaption
= Caption
;
95 psh
.nPages
= sizeof(psp
) / sizeof(PROPSHEETPAGEW
);
99 InitPropSheetPage(&psp
[0], IDD_DATETIMEPAGE
, (DLGPROC
) DateTimePageProc
);
100 InitPropSheetPage(&psp
[1], IDD_TIMEZONEPAGE
, (DLGPROC
) TimeZonePageProc
);
101 InitPropSheetPage(&psp
[2], IDD_INETTIMEPAGE
, (DLGPROC
) InetTimePageProc
);
103 Ret
= (LONG
)(PropertySheetW(&psh
) != -1);
105 UnregisterMonthCalControl(hApplet
);
106 UnregisterClockControl();
113 /* Control Panel Callback */
115 CPlApplet(HWND hwndCpl
,
120 INT i
= (INT
)lParam1
;
132 CPLINFO
*CPlInfo
= (CPLINFO
*)lParam2
;
134 CPlInfo
->idIcon
= Applets
[i
].idIcon
;
135 CPlInfo
->idName
= Applets
[i
].idName
;
136 CPlInfo
->idInfo
= Applets
[i
].idDescription
;
142 Applets
[i
].AppletProc(hwndCpl
, uMsg
, lParam1
, lParam2
);
151 DllMain(HINSTANCE hinstDLL
,
155 UNREFERENCED_PARAMETER(lpReserved
);
159 case DLL_PROCESS_ATTACH
:
161 INITCOMMONCONTROLSEX InitControls
;
163 InitControls
.dwSize
= sizeof(INITCOMMONCONTROLSEX
);
164 InitControls
.dwICC
= ICC_DATE_CLASSES
| ICC_PROGRESS_CLASS
| ICC_UPDOWN_CLASS
;
165 InitCommonControlsEx(&InitControls
);