13#define JAPANESE_ERA_MAX 16
20#ifdef DONT_USE_REGISTRY
23 {1868, 1, 1, {0x660E, 0x6CBB}, {0x660E, 0},
L"Meiji",
L"M"},
24 {1912, 7, 30, {0x5927, 0x6B63}, {0x5927, 0},
L"Taisho",
L"T"},
25 {1926, 12, 25, {0x662D, 0x548C}, {0x662D, 0},
L"Showa",
L"S"},
26 {1989, 1, 8, {0x5E73, 0x6210}, {0x5E73, 0},
L"Heisei",
L"H"},
27 {2019, 5, 1, {0x4EE4, 0x548C}, {0x4EE4, 0},
L"Reiwa",
L"R"},
65#ifdef DONT_USE_REGISTRY
74 return s_bFirstIsGannen;
77 L"CurrentControlSet\\Control\\Nls\\Calendars\\Japanese");
81 s_bFirstIsGannen =
TRUE;
82 for (dwIndex = 0; dwIndex < 16; ++dwIndex)
85 szValue,
sizeof(szValue)))
92 s_bFirstIsGannen = (szValue[0] == 0x5143);
101 return s_bFirstIsGannen;
112#ifndef DONT_USE_REGISTRY
117 LPWSTR pch1, pch2, pch3, pch4;
129#ifdef DONT_USE_REGISTRY
138 L"CurrentControlSet\\Control\\Nls\\Calendars\\Japanese\\Eras");
149 szValue,
sizeof(szValue)))
238 DWORD dwIndex, dwCount = 0;
260 for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
void __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
static BOOL s_bIsGannenCached
static PCJAPANESE_ERA JapaneseEra_Load(DWORD *pdwCount)
BOOL JapaneseEra_IsFirstYearGannen(void)
PCJAPANESE_ERA JapaneseEra_Find(const SYSTEMTIME *pst OPTIONAL)
BOOL NLS_RegEnumValue(HANDLE hKey, UINT ulIndex, LPWSTR szValueName, ULONG valueNameSize, LPWSTR szValueData, ULONG valueDataSize)
static BOOL JapaneseEra_ToSystemTime(PCJAPANESE_ERA pEra, LPSYSTEMTIME pst)
void JapaneseEra_ClearCache(void)
HANDLE NLS_RegOpenKey(HANDLE hRootKey, LPCWSTR szKeyName)
static INT JapaneseEra_Compare(const void *e1, const void *e2)
static JAPANESE_ERA s_JapaneseEraTable[JAPANESE_ERA_MAX]
static DWORD s_JapaneseEraCount
const JAPANESE_ERA * PCJAPANESE_ERA
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSTRSAFEAPI RtlStringCbCopyW(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCWSTR pszSrc)
static const WCHAR szName[]
PULONG MinorVersion OPTIONAL
#define RtlZeroMemory(Destination, Length)
static const EHCI_PERIOD pTable[]