// CppSpecialFolder.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 // #include #include #include #include #include /* Windowsの特殊フォルダのパスを取得する */ int _tmain ( int argc , _TCHAR* argv[] ) { /* std::wcoutのロケールを設定  これを設定するだけで、std::wcoutで日本語が表示される  ようになります。 */ std::wcout.imbue(std::locale("", std::locale::ctype)); // パス取得バッファ TCHAR waFolderPath[MAX_PATH]; // デスクトップのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_DESKTOP, 0); std::wcout << L"CSIDL_DESKTOP : " << waFolderPath << std::endl; // デスクトップのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_DESKTOPDIRECTORY, 0); std::wcout << L"CSIDL_DESKTOPDIRECTORY : " << waFolderPath << std::endl; // スタートメニューのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_STARTMENU, 0); std::wcout << L"CSIDL_STARTMENU : " << waFolderPath << std::endl; // Program Filesのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_PROGRAMS, 0); std::wcout << L"CSIDL_PROGRAMS : " << waFolderPath << std::endl; // Startupのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_STARTUP, 0); std::wcout << L"CSIDL_STARTUP : " << waFolderPath << std::endl; // Startup(AllUser)のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_ALTSTARTUP, 0); std::wcout << L"CSIDL_ALTSTARTUP : " << waFolderPath << std::endl; // My Documentsのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_PERSONAL, 0); std::wcout << L"CSIDL_PERSONAL : " << waFolderPath << std::endl; // お気に入りのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_FAVORITES, 0); std::wcout << L"CSIDL_FAVORITES : " << waFolderPath << std::endl; // ゴミ箱のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_RECENT, 0); std::wcout << L"CSIDL_RECENT : " << waFolderPath << std::endl; // Sendtoのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_SENDTO, 0); std::wcout << L"CSIDL_SENDTO : " << waFolderPath << std::endl; // NetHoodのバスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_NETHOOD, 0); std::wcout << L"CSIDL_NETHOOD : " << waFolderPath << std::endl; // Fontsのバスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_FONTS, 0); std::wcout << L"CSIDL_FONTS : " << waFolderPath << std::endl; // ShellNewのバスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_TEMPLATES, 0); std::wcout << L"CSIDL_TEMPLATES : " << waFolderPath << std::endl; // AppDataのバスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_APPDATA, 0); std::wcout << L"CSIDL_APPDATA : " << waFolderPath << std::endl; // PrintHoodのバスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_PRINTHOOD, 0); std::wcout << L"CSIDL_PRINTHOOD : " << waFolderPath << std::endl; // INetキャッシュのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_INTERNET_CACHE, 0); std::wcout << L"CSIDL_INTERNET_CACHE : " << waFolderPath << std::endl; // INet Cookiesのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COOKIES, 0); std::wcout << L"CSIDL_COOKIES : " << waFolderPath << std::endl; // 履歴のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_HISTORY, 0); std::wcout << L"CSIDL_HISTORY : " << waFolderPath << std::endl; // デスクトップ(AllUser)のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COMMON_DESKTOPDIRECTORY, 0); std::wcout << L"CSIDL_COMMON_DESKTOPDIRECTORY : " << waFolderPath << std::endl; // スタートメニュー(AllUser)のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COMMON_STARTMENU, 0); std::wcout << L"CSIDL_COMMON_STARTMENU : " << waFolderPath << std::endl; // Program Files(AllUser)のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COMMON_PROGRAMS, 0); std::wcout << L"CSIDL_COMMON_PROGRAMS : " << waFolderPath << std::endl; // スタートアップ(AllUser)のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COMMON_STARTUP, 0); std::wcout << L"CSIDL_COMMON_STARTUP : " << waFolderPath << std::endl; // スタートアップ(AllUser)のパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COMMON_ALTSTARTUP, 0); std::wcout << L"CSIDL_COMMON_ALTSTARTUP : " << waFolderPath << std::endl; // お気に入りのパスを取得 SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_COMMON_FAVORITES, 0); std::wcout << L"CSIDL_COMMON_FAVORITES : " << waFolderPath << std::endl; // 正常終了 return(0); } // プログラムの実行: Ctrl + F5 または [デバッグ] > [デバッグなしで開始] メニュー // プログラムのデバッグ: F5 または [デバッグ] > [デバッグの開始] メニュー // 作業を開始するためのヒント: // 1. ソリューション エクスプローラー ウィンドウを使用してファイルを追加/管理します // 2. チーム エクスプローラー ウィンドウを使用してソース管理に接続します // 3. 出力ウィンドウを使用して、ビルド出力とその他のメッセージを表示します // 4. エラー一覧ウィンドウを使用してエラーを表示します // 5. [プロジェクト] > [新しい項目の追加] と移動して新しいコード ファイルを作成するか、[プロジェクト] > [既存の項目の追加] と移動して既存のコード ファイルをプロジェクトに追加します // 6. 後ほどこのプロジェクトを再び開く場合、[ファイル] > [開く] > [プロジェクト] と移動して .sln ファイルを選択します