This application will print the special folders that you should be storing your applications data in. UAC on Windows Vista/7 will no longer alowe you to write to files in the "C:\Program Files" with out elevation to administrator. Instead you should be writing your settings file to the "LocalAppData" folder and your output and log file to "Documents" folder.

More information on UAC

Source code:
#include <shlobj.h> void GetSpecialFolder( REFKNOWNFOLDERID rfid ) { LPWSTR wszPath = NULL; HRESULT hr = SHGetKnownFolderPath ( rfid, KF_FLAG_CREATE, NULL, &wszPath ); if ( SUCCEEDED(hr) ) { wprintf( _T("Path: %s\n"), wszPath ); } }

int _tmain(int argc, _TCHAR* argv[]) { GetSpecialFolder( FOLDERID_ProgramData ); // Shared program data directory for all users GetSpecialFolder( FOLDERID_RoamingAppData ); // Per-user program data directory (roaming) GetSpecialFolder( FOLDERID_LocalAppData ); // Per-user program data directory (non-roaming)

GetSpecialFolder( FOLDERID_ProgramFiles ); // App install directory GetSpecialFolder( FOLDERID_Documents ); // Logs, reports, output return 0; }