handle ShellExecute error values (0-32)
clear cache before checking if files exist
This commit is contained in:
@@ -192,7 +192,8 @@ static LocalizedString CLEARED( "MainMenuDlg", "'%s' cleared" );
|
||||
void MainMenuDlg::OnBnClickedClearKeymaps()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
|
||||
|
||||
FlushDirCache();
|
||||
if( !DoesFileExist( SpecialFiles::KEYMAPS_PATH ) )
|
||||
{
|
||||
Dialog::OK( ssprintf(IS_ALREADY_CLEARED.GetValue(),SpecialFiles::KEYMAPS_PATH.c_str()) );
|
||||
@@ -217,20 +218,19 @@ static LocalizedString FAILED_TO_OPEN ( "MainMenuDlg", "Failed to open '%s':
|
||||
void MainMenuDlg::OnBnClickedOpenPreferences()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
if( !DoesFileExist( SpecialFiles::PREFERENCES_INI_PATH ) )
|
||||
{
|
||||
Dialog::OK( ssprintf(DOESNT_EXIST_IT_WILL_BE_CREATED.GetValue(),SpecialFiles::PREFERENCES_INI_PATH.c_str()) );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( NULL == ::ShellExecute( this->m_hWnd, "open", SpecialFiles::PREFERENCES_INI_PATH, "", "", SW_SHOWNORMAL ) )
|
||||
Dialog::OK( ssprintf(FAILED_TO_OPEN.GetValue(),SpecialFiles::PREFERENCES_INI_PATH.c_str(),GetLastErrorString().c_str()) );
|
||||
}
|
||||
// TODO: Have RageFile* do the mapping to the OS file location.
|
||||
RString sPreferencesOSFile = SpecialDirs::GetMyDocumentsDir() + PRODUCT_ID + "/" + SpecialFiles::PREFERENCES_INI_PATH;
|
||||
HINSTANCE hinst = ::ShellExecute( this->m_hWnd, "open", sPreferencesOSFile, "", "", SW_SHOWNORMAL );
|
||||
if( (int)hinst == SE_ERR_FNF )
|
||||
Dialog::OK( ssprintf(DOESNT_EXIST_IT_WILL_BE_CREATED.GetValue(),sPreferencesOSFile.c_str()) );
|
||||
else if( (int)hinst <= 32 )
|
||||
Dialog::OK( ssprintf(FAILED_TO_OPEN.GetValue(),sPreferencesOSFile.c_str(),GetLastErrorString().c_str()) );
|
||||
}
|
||||
|
||||
void MainMenuDlg::OnBnClickedClearPreferences()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
FlushDirCache();
|
||||
if( !DoesFileExist(SpecialFiles::PREFERENCES_INI_PATH) )
|
||||
{
|
||||
Dialog::OK( ssprintf(IS_ALREADY_CLEARED.GetValue(),SpecialFiles::PREFERENCES_INI_PATH.c_str()) );
|
||||
|
||||
@@ -118,14 +118,13 @@ BOOL CSmpackageApp::InitInstance()
|
||||
CString sArg = argv[i];
|
||||
if( sArg == "--machine-profile-stats" )
|
||||
{
|
||||
RString sPersonalDir = SpecialDirs::GetMyDocumentsDir();
|
||||
RString sFile = sPersonalDir + PRODUCT_ID +"/Save/MachineProfile/Stats.xml";
|
||||
HINSTANCE hinst = ::ShellExecute( NULL, "open", sFile, "", "", SW_SHOWNORMAL );
|
||||
RString sOSFile = SpecialDirs::GetMyDocumentsDir() + PRODUCT_ID +"/Save/MachineProfile/Stats.xml";
|
||||
HINSTANCE hinst = ::ShellExecute( NULL, "open", sOSFile, "", "", SW_SHOWNORMAL );
|
||||
// See MSDN for an explanation of this return value
|
||||
if( (int)hinst == SE_ERR_FNF )
|
||||
Dialog::OK( STATS_XML_NOT_YET_CREATED );
|
||||
else if( (int)hinst <= 32 )
|
||||
Dialog::OK( ssprintf(FAILED_TO_OPEN.GetValue(),sFile.c_str(),GetLastErrorString().c_str()) );
|
||||
Dialog::OK( ssprintf(FAILED_TO_OPEN.GetValue(),sOSFile.c_str(),GetLastErrorString().c_str()) );
|
||||
exit(1); // better way to quit?
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user