int init_ini_file() { char path[MAX_PATH]; memset(ini_file,0,sizeof(ini_file)); path[0]=0; get_appdata_folder(path,sizeof(path)); if(!is_path_directory(path)) CreateDirectory(path,NULL); _snprintf(ini_file,sizeof(ini_file)-1,"%s\\" APP_NAME ".ini",path); ini_file[sizeof(ini_file)-1]=0; if(path[0]==0) ini_file[0]=0; return ini_file[0]!=0; }
int init_ini_file() { char path[MAX_PATH],str[MAX_PATH]; FILE *f; memset(ini_file,0,sizeof(ini_file)); path[0]=0; str[0]=0; set_module_dir(); GetCurrentDirectory(sizeof(path),path); _snprintf(str,sizeof(str)-1,"%s\\" APP_NAME ".ini",path); if(!does_file_exist(str)){ path[0]=0; get_appdata_folder(path,sizeof(path)); _snprintf(str,sizeof(str)-1,"%s\\" APP_NAME ".ini",path); if(!does_file_exist(str)){ path[0]=0; do_install_dialog(path); } } if(path[0]==0){ ini_file[0]=0; return 0; } add_trail_slash(path,sizeof(path)); _snprintf(ini_file,sizeof(ini_file)-1,"%s%s",path,APP_NAME ".ini"); f=fopen(ini_file,"rb"); if(f==0){ f=fopen(ini_file,"wb"); } if(f!=0){ fclose(f); } else { char msg[MAX_PATH+80]={0}; _snprintf(msg,sizeof(msg),"Unable to access ini file:\r\n%s",ini_file); MessageBox(NULL,msg,"Error",MB_OK|MB_SYSTEMMODAL); } return 0; }
LRESULT CALLBACK install_proc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam) { static char *path_param=0; static char local_path[MAX_PATH]={0}; static char appdata_path[MAX_PATH]={0}; static HWND grippy=0; switch(msg){ case WM_INITDIALOG: { RECT rect={0}; path_param=lparam; local_path[0]=0; GetCurrentDirectory(sizeof(local_path),local_path); SetWindowText(GetDlgItem(hwnd,IDC_TXT_LOCAL),local_path); appdata_path[0]=0; get_appdata_folder(appdata_path,sizeof(appdata_path)); SetWindowText(GetDlgItem(hwnd,IDC_TXT_APPDATA),appdata_path); grippy=create_grippy(hwnd); resize_install_dlg(hwnd); if(GetWindowRect(GetDesktopWindow(),&rect)!=0){ int cx,cy; cx=(rect.left+rect.right)/2; cy=(rect.top+rect.bottom)/2; if(GetWindowRect(hwnd,&rect)!=0){ int w,h; w=rect.right-rect.left; h=rect.bottom-rect.top; SetWindowPos(hwnd,NULL,cx-w/2,cy-h/2,0,0,SWP_NOSIZE); } } } break; case WM_SIZE: resize_install_dlg(hwnd); grippy_move(hwnd,grippy); break; case WM_COMMAND: switch(LOWORD(wparam)){ case IDC_USE_LOCAL: if(path_param!=0) strncpy(path_param,local_path,MAX_PATH); EndDialog(hwnd,1); break; case IDC_USE_APPDATA: if(path_param!=0){ CreateDirectory(appdata_path,NULL); strncpy(path_param,appdata_path,MAX_PATH); } EndDialog(hwnd,2); break; case IDCANCEL: case IDC_NO_INI: if(path_param!=0) path_param[0]=0; EndDialog(hwnd,3); break; } break; } return 0; }