If you wanna try this for yourself...
'compile and rename me as *.scr Strict Extern "win32" Function GetEnvironmentVariable(lpName$z, lpBuffer:Byte Ptr, nSize) = "GetEnvironmentVariableA@12" End Extern Local appData1$ = getenv_("APPDATA") Local appData2$ = GetEnv("APPDATA") Graphics 800, 600, 32 ClearEventQueue() Repeat Select PollEvent() Case EVENT_KEYDOWN, EVENT_MOUSEDOWN End End Select Cls DrawText "'APPDATA' = " + appData1$, 12, 12 DrawText "'APPDATA' = " + appData2$, 12, 24 Flip Forever End Function GetEnv$(envVar$) Local buff@[64] Local rtn = GetEnvironmentVariable(envVar$, buff@, buff.length) If rtn > buff.length buff@ = buff@[..rtn] rtn = GetEnvironmentVariable(envVar$, buff@, buff.length) EndIf Return string.FromBytes(buff@, rtn) End Function Function ClearEventQueue() Repeat ; Until PollEvent() = 0 End Function