#include <stdlib.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include "tzlib.h"
Go to the source code of this file.
◆ EnumerateTimeZoneList()
Definition at line 223 of file tzlib.c.
226{
232 WCHAR szKeyName[256];
233
234
236 L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones",
237 0,
239 &hZonesKey);
241 return;
242
243
244 for (dwIndex = 0; ; dwIndex++)
245 {
246 dwNameSize = sizeof(szKeyName);
248 dwIndex,
249 szKeyName,
250 &dwNameSize,
255
257 break;
258
259
261 szKeyName,
262 0,
264 &hZoneKey))
265 {
266
267 continue;
268 }
269
270
272
273
275 }
276
278}
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
#define ERROR_NO_MORE_ITEMS
#define KEY_ENUMERATE_SUB_KEYS
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
#define HKEY_LOCAL_MACHINE
Referenced by CreateTimeZoneList().
◆ GetAutoDaylight()
Definition at line 283 of file tzlib.c.
284{
290
292 L"SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
293 0,
298
299
300 dwValueSize = sizeof(dwDisabled);
302 L"DisableAutoDaylightTimeSet",
304 &dwType,
306 &dwValueSize);
307
309
311 {
312
313
314
315
317 }
318
319 return !dwDisabled;
320}
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Referenced by TimeZonePageProc().
◆ GetTimeZoneListIndex()
Definition at line 20 of file tzlib.c.
22{
31 unsigned long iLanguageID;
32 WCHAR szLanguageIdString[9];
33
35 {
37
39 L"SYSTEM\\CurrentControlSet\\Control\\NLS\\Language",
40 0,
44 {
46 }
47
48 dwValueSize = sizeof(szLanguageIdString);
53 (
LPBYTE)szLanguageIdString,
54 &dwValueSize);
56 {
59 }
60
61 iLanguageID =
wcstoul(szLanguageIdString,
NULL, 16);
63 }
64 else
65 {
67 }
68
70 L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones",
71 0,
75 {
77 }
78
79 dwValueSize = 0;
83 &dwType,
85 &dwValueSize);
87 {
90 }
91
94 {
97 }
98
102 &dwType,
104 &dwValueSize);
105
107
109 {
112 }
113
116 {
120
123 break;
124
125 if (bFound)
126 {
130 }
131
134 }
135
138}
#define HeapFree(x, y, z)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_Out_ PULONG _Out_ PULONG pIndex
_In_ ULONG _In_ ULONG _In_ ULONG Length
Referenced by ShowTimeZoneList().
◆ QueryTimeZoneData()
Definition at line 141 of file tzlib.c.
151{
154
156 {
157 dwValueSize = sizeof(*Index);
163 &dwValueSize);
166 }
167
168
169 dwValueSize = sizeof(*TimeZoneInfo);
175 &dwValueSize);
177 return lError;
178
179 if (
Description && DescriptionSize && *DescriptionSize > 0)
180 {
186 DescriptionSize);
189 }
190
191 if (StandardName && StandardNameSize && *StandardNameSize > 0)
192 {
198 StandardNameSize);
200 *StandardName = 0;
201 }
202
203 if (DaylightName && DaylightNameSize && *DaylightNameSize > 0)
204 {
210 DaylightNameSize);
212 *DaylightName = 0;
213 }
214
216}
static const WCHAR Description[]
_In_ WDFCOLLECTION _In_ ULONG Index
Referenced by RetrieveTimeZone().
◆ SetAutoDaylight()
VOID SetAutoDaylight |
( |
IN BOOL |
EnableAutoDaylightTime | ) |
|
Definition at line 323 of file tzlib.c.
325{
329
331 L"SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
332 0,
336 return;
337
338 if (!EnableAutoDaylightTime)
339 {
340
341
343 L"DisableAutoDaylightTimeSet",
344 0,
347 sizeof(dwDisabled));
348 }
349 else
350 {
351
353 }
354
356}
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
Referenced by TimeZonePageProc(), and WriteDateTimeSettings().