Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Collapse the table of content
Expand the table of content
Expand Minimize

Using the CorrectFilePathsUninstall Fix

Published: June 11, 2010

Updated: June 11, 2010

Applies To: Windows 7, Windows Vista

This section includes information about using the CorrectFilePathsUninstall compatibility fix, including its usage and API-related information.


CorrectFilePathsUninstall fixes legacy issues whereby older versions of Installshield placed files in either the current user's portion of the file system or in the All Users portion. When uninstalling, Installshield would attempt to remove the files from the opposite location. The CorrectFilePathsUninstall compatibility fix maintains a list of path corrections, going through each location until it can successfully delete the specified file.

  • AllStartMenu -> UserStartMenu

  • AllDesktop -> UserDesktop

This was not an issue on the Windows® 9x operating system, as it was single-user; however, this is a problem for any multi-user operating system.

Investigating the Issue

Application-related issues that can be resolved by applying the CorrectFilePathsUninstall compatibility fix are typically detected when an application is unable to uninstall files from the desktop or the Start Menu. You can use a monitoring program such as Process Monitor to determine which area of the file system is being searched by the uninstaller.

Intercepted APIs

The following table provides a list of APIs that are intercepted by the CorrectFilePathsUninstall fix.


API Description


Attempts to call FindFirstFileA using corrected paths. If it succeeds, it returns a result. If it fails, then it tries the original path, and returns a result.


Attempts to call GetfileAttributesA using corrected paths, returning a result of success or failure.


Attempts to call DeleteFileA using corrected paths, returning a result.


Attempts to call RemoveDirectorA using corrected paths, returning a result. After removing the directory, RemoveDirectoryA attempts to verify that the directory is removed using FindFirstFileA up to 500 times (with a Sleep(1) call between each) to ensure the removal.

Fixing Your Code

If your application encounters this issue, we recommend that you repackage the installer because current versions of Installshield do not exhibit this behavior.

See Also

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2015 Microsoft