SHGetSpecialFolderPath (shell32)
Last changed: -82.143.213.85

.
Summary

C# Signature:

[DllImport("shell32.dll")]
static extern bool SHGetSpecialFolderPath(IntPtr hwndOwner,
   [Out] StringBuilder lpszPath, int nFolder, bool fCreate);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

const int CSIDL_PROGRAMS = 2;  // \Windows\Start Menu\Programs
StringBuilder path = new StringBuilder(255);
SHGetSpecialFolderPath(IntPtr.Zero, path, CSIDL_PROGRAMS, false);
// path.ToString() should now hold the path

Alternative Managed API:

Environment.GetFolderPath(Environment.SpecialFolder.xxx) probably calls this internally - it does the same thing.

Documentation