Hi, Il 15/05/21 17:37, Francois Gouget ha scritto:
@@ -4079,31 +4079,55 @@ static void test_EnumDynamicTimeZoneInformation(void) { size = sizeof(name); memset(name, 0, sizeof(name)); + status = pRegGetValueW(subkey, NULL, L"Std", RRF_RT_REG_SZ, NULL, name, &size); + ok(status == ERROR_SUCCESS, "status %d Std %s\n", status, + wine_dbgstr_w(name)); + ok(*name, "Std name is empty\n"); if (pRegLoadMUIStringW) + { + size = sizeof(name); + memset(name, 0, sizeof(name)); status = pRegLoadMUIStringW(subkey, L"MUI_Std", name, size, &size, 0, sysdir); - else - status = pRegGetValueW(subkey, NULL, L"Std", RRF_RT_REG_SZ, NULL, name, &size); - ok(status == ERROR_SUCCESS, "status %d name %s\n", status, wine_dbgstr_w(name)); - ok(!memcmp(&dtzi.StandardName, name, size), - "expected %s, got %s\n", wine_dbgstr_w(name), wine_dbgstr_w(dtzi.StandardName)); + ok(status == ERROR_SUCCESS, "status %d MUI_Std %s\n", + status, wine_dbgstr_w(name)); + } + ok(!memcmp(&dtzi.StandardName, name, size), "expected %s, got %s\n", + wine_dbgstr_w(name), wine_dbgstr_w(dtzi.StandardName));
size = sizeof(name); memset(name, 0, sizeof(name)); + status = pRegGetValueW(subkey, NULL, L"Dlt", RRF_RT_REG_SZ, NULL, name, &size); + ok(status == ERROR_SUCCESS, "status %d %s Dlt %s\n", + status, wine_dbgstr_w(keyname), wine_dbgstr_w(name)); + ok(*name, "Dlt name is empty\n"); if (pRegLoadMUIStringW) + { + size = sizeof(name); + memset(name, 0, sizeof(name)); status = pRegLoadMUIStringW(subkey, L"MUI_Dlt", name, size, &size, 0, sysdir); - else - status = pRegGetValueW(subkey, NULL, L"Dlt", RRF_RT_REG_SZ, NULL, name, &size); - ok(status == ERROR_SUCCESS, "status %d name %s\n", status, wine_dbgstr_w(name)); - ok(!memcmp(&dtzi.DaylightName, name, size), - "expected %s, got %s\n", wine_dbgstr_w(name), wine_dbgstr_w(dtzi.DaylightName)); - - size = sizeof(displayname); - memset(displayname, 0, sizeof(displayname)); + ok(status == ERROR_SUCCESS, "status %d %s MUI_Dlt %s\n", + status, wine_dbgstr_w(keyname), wine_dbgstr_w(name)); + } + ok(!memcmp(&dtzi.DaylightName, name, size), "expected %s, got %s\n", + wine_dbgstr_w(name), wine_dbgstr_w(dtzi.DaylightName)); + + size = sizeof(name); + memset(name, 0, sizeof(name)); + status = pRegGetValueW(subkey, NULL, L"Display", RRF_RT_REG_SZ, NULL, name, &size); + ok(status == ERROR_SUCCESS, "status %d %s Display %s\n", + status, wine_dbgstr_w(keyname), wine_dbgstr_w(name)); + ok(*name, "Display name is empty\n"); if (pRegLoadMUIStringW) - status = pRegLoadMUIStringW(subkey, L"MUI_Display", displayname, size, &size, 0, sysdir); - else - status = pRegGetValueW(subkey, NULL, L"Display", RRF_RT_REG_SZ, NULL, displayname, &size); - todo_wine ok(status == ERROR_SUCCESS, "status %d displayname %s\n", status, wine_dbgstr_w(displayname)); + { + size = sizeof(name); + memset(name, 0, sizeof(name)); + status = pRegLoadMUIStringW(subkey, L"MUI_Display", name, size, &size, 0, sysdir); + /* recently added time zones may not have MUI strings */ + todo_wine ok((status == ERROR_SUCCESS && *name) || + broken(status == ERROR_RESOURCE_TYPE_NOT_FOUND) /* Win10 1809 32-bit */ || + broken(status == ERROR_MUI_FILE_NOT_FOUND) /* Win10 1809 64-bit */, + "status %d MUI_Display %s\n", status, wine_dbgstr_w(name)); Why don't you check for *name after the first two calls to pRegLoadMUIStringW? + } } else {
Thanks, Giovanni.