void CMainWizard::OnLanguageChange(UINT uMenuID) { CUpdateItApp* pApp = DYNAMIC_DOWNCAST(CUpdateItApp, AfxGetApp()); ASSERT_VALID(pApp); ATL::CRegKey regKeyLangs; regKeyLangs.Attach(pApp->GetSectionKey(SZ_REGK_LANGUAGES)); int nError = ERROR_SUCCESS; if (static_cast<HKEY>(regKeyLangs) != NULL) { UINT iLangName = uMenuID - ((ID_LANGUAGE_ENGLISH & 0x00F0) >> 4); nError = regKeyLangs.SetStringValue(SZ_REGV_LANGUAGES_CURRENT, m_arrLangNames[iLangName]); if (nError == ERROR_SUCCESS) { CheckLangMenuItem(iLangName); regKeyLangs.Flush(); g_fRestartInterface = true; PostMessage(PSM_PRESSBUTTON, PSBTN_CANCEL, 0); } ::RegCloseKey(regKeyLangs.Detach()); }