finisha.cpp
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 3k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #include <windows.h>
  2. #include <windowsx.h>
  3. #include <string.h>
  4. #include <prsht.h>
  5. #include "winreg.h"
  6. #include "resource.h"
  7. #include "shwizard.h"
  8. INT_PTR APIENTRY FinishAProc (HWND, UINT, WPARAM, LPARAM);
  9. void FinishA_OnCancel       (HWND);
  10. void FinishA_OnInitDialog   (HWND);
  11. void FinishA_OnSetActive    (HWND);
  12. void FinishA_OnWizardBack   (HWND);
  13. void FinishA_OnWizardFinish (HWND);
  14. void FinishA_FinalDisplay   (HWND);
  15. INT_PTR APIENTRY FinishAProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
  16. {
  17.     switch (msg) {
  18.         case WM_COMMAND:
  19.             break;
  20.         case WM_INITDIALOG:
  21.             FinishA_OnInitDialog(hDlg);
  22.             break;
  23.         case WM_NOTIFY:
  24.             switch (((NMHDR FAR *)lParam)->code) {
  25.                 case PSN_KILLACTIVE:
  26.                     SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE);
  27.                     return(1);
  28.                     break;
  29.                 case PSN_QUERYCANCEL:
  30.                     FinishA_OnCancel(hDlg);
  31.                     return(FALSE);          // must do this to allow cancel to complete
  32.                 case PSN_RESET:
  33.                     SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE);
  34.                     break;
  35.                 case PSN_SETACTIVE:
  36.                     FinishA_OnSetActive(hDlg);
  37.                     break;
  38.                 case PSN_WIZBACK:
  39.                     FinishA_OnWizardBack(hDlg);
  40.                     break;
  41.                 case PSN_WIZFINISH:
  42.                     FinishA_OnWizardFinish(hDlg);
  43.                     break;
  44.                 default:
  45.                     return(FALSE);
  46.             }
  47.             break;
  48.         default:
  49.             return(FALSE);
  50.     }
  51.     return(TRUE);   
  52. }   /*  end StartPage() */
  53. void FinishA_OnInitDialog (HWND hDlg)
  54. {
  55. }   /*  end FinishA_OnInitDialog() */
  56. void FinishA_OnSetActive (HWND hDlg)
  57. {
  58.     PropSheet_SetWizButtons(GetParent(hDlg), PSWIZB_BACK | PSWIZB_FINISH);
  59.     FinishA_FinalDisplay(hDlg);
  60. }   /*  end FinishA_OnSetActive() */
  61. void FinishA_OnCancel (HWND hDlg)
  62. {
  63.     if (g_bTemplateCopied)
  64.         DeleteFile(g_szFullHTMLFile);
  65. }   /*  end FinishA_OnCancel() */
  66. void FinishA_OnWizardBack (HWND hDlg)
  67. {
  68.     // Remove desktop.ini only if we had copied it during this wizard session
  69.     if (g_bTemplateCopied) {
  70.         DeleteFile(g_szFullHTMLFile);
  71.         g_bTemplateCopied = FALSE;
  72.     }
  73.     SetWindowLongPtr(hDlg, DWLP_MSGRESULT, IDD_PAGEA3);
  74. }   /*  end FinishA_OnWizardBack() */
  75. void FinishA_OnWizardFinish (HWND hDlg)
  76. {
  77.     UpdateAddWebView();     // Update desktop.ini
  78. }   /*  end FinishA_OnWizardFinished() */
  79. // Sets the appropriate text message in the dialog
  80. void FinishA_FinalDisplay (HWND hDlg)
  81. {
  82.     TCHAR szFinalDisplay[MAX_PATH], szTemp[MAX_PATH];
  83.     LoadString(g_hAppInst, IDS_TEMPLATE_DONE1, szFinalDisplay, ARRAYSIZE(szFinalDisplay));
  84.     // Add more info.
  85.     if (g_iFlagA == CUSTOM_TEMPLATE)  // A custom template was chosen.
  86.     {
  87.         LoadString(g_hAppInst, IDS_TEMPLATE_DONE2, szTemp, ARRAYSIZE(szTemp));
  88.     }
  89.     else
  90.     {
  91.         LoadString(g_hAppInst, IDS_TEMPLATE_DONE3, szTemp, ARRAYSIZE(szTemp));
  92.     }
  93.     lstrcat(szFinalDisplay, TEXT("rnrn"));
  94.     lstrcat(szFinalDisplay, szTemp);
  95.     SetDlgItemText(hDlg, IDC_FINISHA, szFinalDisplay);
  96. }   /*  end FinalDisplay() */