diff options
Diffstat (limited to 'setup_native')
-rw-r--r-- | setup_native/source/win32/customactions/shellextensions/vistaspecial.cxx | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/setup_native/source/win32/customactions/shellextensions/vistaspecial.cxx b/setup_native/source/win32/customactions/shellextensions/vistaspecial.cxx index 5b5d649ea334..b014188f91d2 100644 --- a/setup_native/source/win32/customactions/shellextensions/vistaspecial.cxx +++ b/setup_native/source/win32/customactions/shellextensions/vistaspecial.cxx @@ -194,6 +194,18 @@ extern "C" UINT __stdcall RenamePrgFolder( MSIHANDLE handle ) // MessageBox(NULL, sRenameSrc.c_str(), "OFFICEINSTALLLOCATION", MB_OK); bool bSuccess = MoveFile( sRenameSrc.c_str(), sRenameDst.c_str() ); + if ( !bSuccess ) + { + TCHAR sAppend[2] = TEXT("0"); + for ( int i = 0; i < 10; i++ ) + { + sRenameDst = sOfficeInstallPath + TEXT("program_old") + sAppend; + bSuccess = MoveFile( sRenameSrc.c_str(), sRenameDst.c_str() ); + if ( bSuccess ) + break; + sAppend[0] += 1; + } + } #if 0 if ( !bSuccess ) @@ -214,6 +226,14 @@ extern "C" UINT __stdcall RemovePrgFolder( MSIHANDLE handle ) bool bSuccess = RemoveCompleteDirectory( sRemoveDir ); + TCHAR sAppend[2] = TEXT("0"); + for ( int i = 0; i < 10; i++ ) + { + sRemoveDir = sOfficeInstallPath + TEXT("program_old") + sAppend; + bSuccess = RemoveCompleteDirectory( sRemoveDir ); + sAppend[0] += 1; + } + #if 0 if ( bSuccess ) MessageBox(NULL, "Removing folder successful", "RemovePrgFolder", MB_OK); |