Useage:
char ShellPath[MAX_PATH];
GetShellFolderPath("Desktop", ShellPath);
BOOL GetShellFolderPath(char *
pShellFolder, char * pShellPath)
{
// pShellFolder can be one of the following
// AppData, Cache, Cookies, Desktop, Favorites, Fonts, History,
NetHood,
// Personal, Printhood, Programs, Recent, SendTo, Start Menu, Startup,
// Templates, ShellNew
DWORD rc;
DWORD length = MAX_PATH;
DWORD type = REG_SZ;
HKEY hkey;
rc = RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
0, KEY_READ, &hkey);
if (rc == ERROR_SUCCESS){
rc = RegQueryValueEx(hkey,
pShellFolder, NULL, &type,
(BYTE *) pShellPath, &length);
RegCloseKey(hkey);
}
if (rc == ERROR_SUCCESS)
return TRUE;
else
return FALSE;
}