#DEFINE CSIDL_RECENT 0x0008 DECLARE SHORT SHGetFolderPath IN shell32; INTEGER hwndOwner, INTEGER nFolder,; INTEGER hToken, INTEGER dwFlags,; STRING @pszPath DisplaySFPath(CSIDL_RECENT) PROCEDURE DisplaySFPath( nCSIDL ) #DEFINE MAX_PATH 260 #DEFINE SHGFP_TYPE_CURRENT 0 && returns current path #DEFINE SHGFP_TYPE_DEFAULT 1 && returns default path #DEFINE CSIDL_FLAG_PER_USER_INIT 0x0800 #DEFINE CSIDL_FLAG_NO_ALIAS 0x1000 #DEFINE CSIDL_FLAG_DONT_VERIFY 0x4000 #DEFINE CSIDL_FLAG_CREATE 0x8000 #DEFINE CSIDL_FLAG_MASK 0xff00 LOCAL nFlag, nToken, cBuffer, nResult, cPath0, cPath1 STORE "" To cPath0, cPath1 nFlag = BitOr(nCSIDL, CSIDL_FLAG_PER_USER_INIT) * nToken = -1 && default user nToken = 0 && current user cBuffer = Repli(Chr(0), MAX_PATH) IF SHGetFolderPath(0, nFlag, nToken,; SHGFP_TYPE_CURRENT, @cBuffer) = 0 cPath0 = STRTRAN(cBuffer, Chr(0), "") ENDIF cBuffer = Repli(Chr(0), MAX_PATH) IF SHGetFolderPath(0, nFlag, nToken,; SHGFP_TYPE_DEFAULT, @cBuffer) = 0 cPath1 = STRTRAN(cBuffer, Chr(0), "") ENDIF ? 'Current:', cPath0 ? 'Default:', cPath1