module std::os::win32 @if(env::WIN32) @link("shell32");

alias Win32_REFKNOWNFOLDERID = Win32_KNOWNFOLDERID*;
typedef Win32_KNOWNFOLDERID = Win32_GUID;
extern fn Win32_HRESULT shGetKnownFolderPath(Win32_REFKNOWNFOLDERID rfid, Win32_DWORD dwFlags, Win32_HANDLE hToken, Win32_PWSTR* ppszPath) @cname("SHGetKnownFolderPath");

const Win32_KNOWNFOLDERID FOLDERID_PROFILE     = { 0x5E6C858F, 0x0E22, 0x4760, x"9AFEEA3317B67173" };
const Win32_KNOWNFOLDERID FOLDERID_DESKTOP     = { 0xB4BFCC3A, 0xDB2C, 0x424C, x"B0297FE99A87C641" };
const Win32_KNOWNFOLDERID FOLDERID_DOCUMENTS   = { 0xFDD39AD0, 0x238F, 0x46AF, x"ADB46C85480369C7" };
const Win32_KNOWNFOLDERID FOLDERID_DOWNLOADS   = { 0x374de290, 0x123f, 0x4565, x"916439c4925e467b" };
const Win32_KNOWNFOLDERID FOLDERID_MUSIC       = { 0x4BD8D571, 0x6D19, 0x48D3, x"BE97422220080E43" };
const Win32_KNOWNFOLDERID FOLDERID_PICTURES    = { 0x33E28130, 0x4E1E, 0x4676, x"835A98395C3BC3BB" };
const Win32_KNOWNFOLDERID FOLDERID_SAVED_GAMES = { 0x4c5c32ff, 0xbb9d, 0x43b0, x"b5b42d72e54eaaa4" };
const Win32_KNOWNFOLDERID FOLDERID_SCREENSHOTS = { 0xb7bede81, 0xdf94, 0x4682, x"a7d857a52620b86f" };
const Win32_KNOWNFOLDERID FOLDERID_TEMPLATES   = { 0xA63293E8, 0x664E, 0x48DB, x"A079DF759E0509F7" };
const Win32_KNOWNFOLDERID FOLDERID_VIDEOS      = { 0x18989B1D, 0x99B5, 0x455B, x"841CAB7C74E4DDFC" };
