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++)
NTSTRSAFEAPI RtlStringCbCopyW(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cbDest, _In_ NTSTRSAFE_PCWSTR pszSrc)
static INT JapaneseEra_Compare(const void *e1, const void *e2)
static const WCHAR szName[]
void JapaneseEra_ClearCache(void)
BOOL JapaneseEra_IsFirstYearGannen(void)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
static DWORD s_JapaneseEraCount
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
static BOOL JapaneseEra_ToSystemTime(PCJAPANESE_ERA pEra, LPSYSTEMTIME pst)
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
HANDLE NLS_RegOpenKey(HANDLE hRootKey, LPCWSTR szKeyName)
BOOL NLS_RegEnumValue(HANDLE hKey, UINT ulIndex, LPWSTR szValueName, ULONG valueNameSize, LPWSTR szValueData, ULONG valueDataSize)
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 *))
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
PCJAPANESE_ERA JapaneseEra_Find(const SYSTEMTIME *pst OPTIONAL)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
const JAPANESE_ERA * PCJAPANESE_ERA
static PCJAPANESE_ERA JapaneseEra_Load(DWORD *pdwCount)
#define RtlZeroMemory(Destination, Length)
static const EHCI_PERIOD pTable[]
static BOOL s_bIsGannenCached
static JAPANESE_ERA s_JapaneseEraTable[JAPANESE_ERA_MAX]
PULONG MinorVersion OPTIONAL