You don't need an OS version at all.
On * nixes (well, on Linux and OSX for sure, but it should be on others), you can use the HOME environment variable. On Windows, you must (yes, it is necessary, because paths can be reassigned / localized and hard-coded, this is a good way to get more work than necessary) use SHGetFolderPath (it was marked as deprecated, but it is not going anywhere in the near future, but new SHGetKnownFolderPath β = Vista) e.g.
TCHAR buffer[MAX_PATH]; HRESULT res = SHGetFolderPath( NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, buffer ); if (SUCCEEDED(res)) {
source share