PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
DlgSequencePrev();
LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam){  char            szBuf[MAX_BUF];  HANDLE          hDir;  DWORD           dwIndex;  WIN32_FIND_DATA wfdFindFileData;  RECT            rDlg;  switch(msg)  {    case WM_INITDIALOG:      SetWindowText(hDlg, diProgramFolder.szTitle);      SetDlgItemText(hDlg, IDC_MESSAGE0, diProgramFolder.szMessage0);      SetDlgItemText(hDlg, IDC_EDIT_PROGRAM_FOLDER, sgProduct.szProgramFolderName);      lstrcpy(szBuf, sgProduct.szProgramFolderPath);      lstrcat(szBuf, "\\*.*");      if((hDir = FindFirstFile(szBuf , &wfdFindFileData)) != INVALID_HANDLE_VALUE)      {        if((wfdFindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (lstrcmpi(wfdFindFileData.cFileName, ".") != 0) && (lstrcmpi(wfdFindFileData.cFileName, "..") != 0))        {          SendDlgItemMessage(hDlg, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)wfdFindFileData.cFileName);        }        while(FindNextFile(hDir, &wfdFindFileData))        {          if((wfdFindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (lstrcmpi(wfdFindFileData.cFileName, ".") != 0) && (lstrcmpi(wfdFindFileData.cFileName, "..") != 0))            SendDlgItemMessage(hDlg, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)wfdFindFileData.cFileName);        }        FindClose(hDir);      }      if(GetClientRect(hDlg, &rDlg))        SetWindowPos(hDlg, HWND_TOP, (dwScreenX/2)-(rDlg.right/2), (dwScreenY/2)-(rDlg.bottom/2), 0, 0, SWP_NOSIZE);      break;    case WM_COMMAND:      switch(LOWORD(wParam))      {        case IDWIZNEXT:          GetDlgItemText(hDlg, IDC_EDIT_PROGRAM_FOLDER, szBuf, MAX_BUF);          if(*szBuf == '\0')          {            char szEProgramFolderName[MAX_BUF];            NS_LoadString(hSetupRscInst, IDS_ERROR_PROGRAM_FOLDER_NAME, szEProgramFolderName, MAX_BUF);            MessageBox(hDlg, szEProgramFolderName, NULL, MB_OK | MB_ICONEXCLAMATION);            break;          }          lstrcpy(sgProduct.szProgramFolderName, szBuf);          dwWizardState = DLG_ADVANCED_SETTINGS;          DestroyWindow(hDlg);          PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);          break;        case IDWIZBACK:          DestroyWindow(hDlg);          PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);          break;        case IDC_LIST:          if((dwIndex = SendDlgItemMessage(hDlg, IDC_LIST, LB_GETCURSEL, 0, 0)) != LB_ERR)          {            SendDlgItemMessage(hDlg, IDC_LIST, LB_GETTEXT, dwIndex, (LPARAM)szBuf);            SetDlgItemText(hDlg, IDC_EDIT_PROGRAM_FOLDER, szBuf);          }          break;        case IDCANCEL:          AskCancelDlg(hDlg);          break;        default:          break;      }      break;  }  return(0);}