設定ファイルの保存先【Windows API】
Windowsにおいてはマルチユーザに対応しているのでログインユーザ毎に 設定を保存するのが正しいアプリケーションです。 アプリケーションのデータを保存する場所はWindowsが用意しています。 デスクトップのパスを取得するときに使用したSHGetSpecialFolderLocationを 使うことでアプリケーションの設定ファイルの保存先を得ることができます。 VistaからはProgram Filesへのファイルの書き込みが自由にできなくなったので ここで取得したフォルダに保存する必要があります。 アンインストール時には忘れずに削除していかなければなりません。
#include <shlobj.h>
int main(int argc, char* argv[])
{
TCHAR szPath[MAX_PATH+1];
LPITEMIDLIST pidl;
HWND hWnd = NULL;
IMalloc *pMalloc;
SHGetMalloc( &pMalloc );
if( SUCCEEDED(SHGetSpecialFolderLocation(hWnd, CSIDL_APPDATA, &pidl)) )
{
// パスに変換する
SHGetPathFromIDList(pidl,szPath);
// 取得したIDLを解放する (CoTaskMemFreeでも可)
pMalloc->Free(pidl);
printf("[%s]\n", szPath);
}
pMalloc->Release();
return 0;
}
