ShGetFolderPathを使用して、ユーザー プロファイル フォルダーのパスを特定しようとしています。ドキュメントには、CSIDL_PROFILES がこのフォルダーを定義すると記載されています。
CSIDL_PROFILES (0x003e)
バージョン 6.0。ユーザー プロファイル フォルダーを含むファイル システム ディレクトリ。一般的なパスは C:\Documents and Settings です。
CSIDL_PROFILES
Visual Studio 2005 SP1 を使用していますが、Platform SDK のインクルード ファイルで定数の定義が見つかりません。Platform SDK の新しいバージョンが必要ですか?
そこで、シンボルの代わりに ID 0x3e を使用して、さらに実験を行いました。ただし、0x3e は、CSIDL_* 引数を受け入れるシェル関数に対する有効な引数ではないようです (無効な引数エラーが返されます)。
したがって、CSIDL_PROFILES は有効な引数ではなく、このシンボルについて言及している MSDN ページの少なくとも一部は間違っていると思います。Win32/MSDN のドキュメントを何年も扱ってきましたが、似たような状況を思い出すことはできません。