To get the Downloads folder, you have to be running on Vista or newer. The folder is not defined on older releases of Windows.
It doesn't have a CSIDL
because it was created for use in the new SHGetKnownFolderPath
API, not for use in the SHGetFolderPath
API.
If you want to get the true folder, you have to use the new API. If you want to maintain some semblance of 'compatibility' on older releases of Windows, you can use the default value listed in the KNOWNFOLDERID page if the API is not available to you. You can use run-time linking to use the API to allow the application to run on the older release of Windows.
Under Remarks for SHGetKnownFolderPath, it does mention:
This function replaces SHGetFolderPath. That older function is now simply a wrapper for SHGetKnownFolderPath.