OldDialogWndProc = SubclassWindow(hDlg, (WNDPROC)NewDialogWndProc);
LRESULT CALLBACK DlgProcWelcome(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam){  char szBuf[MAX_BUF];  LPNMHDR notifyMessage;  HWND hControl;    switch(msg) {  case WM_INITDIALOG:    // The header on the welcome page uses a larger font.    hControl = GetDlgItem(hDlg, IDC_STATIC_TITLE);    SendMessage(hControl, WM_SETFONT, (WPARAM)sgInstallGui.welcomeTitleFont, (LPARAM)TRUE);    // UI Text, from localized config files    wsprintf(szBuf, diWelcome.szMessageWelcome, sgProduct.szProductName);    SetDlgItemText(hDlg, IDC_STATIC_TITLE, szBuf);    wsprintf(szBuf, diWelcome.szMessage0, sgProduct.szProductName);    SetDlgItemText(hDlg, IDC_STATIC0, szBuf);    SetDlgItemText(hDlg, IDC_STATIC1, diWelcome.szMessage1);    SetDlgItemText(hDlg, IDC_STATIC2, diWelcome.szMessage2);    wsprintf(szBuf, diWelcome.szMessage3, sgProduct.szProductName);    SetDlgItemText(hDlg, IDC_STATIC3, szBuf);    break;  case WM_NOTIFY:    notifyMessage = (LPNMHDR)lParam;    switch (notifyMessage->code) {    case PSN_SETACTIVE:      // Wizard dialog title      PropSheet_SetTitle(GetParent(hDlg), 0, (LPTSTR)diWelcome.szTitle);       PropSheet_SetWizButtons(GetParent(hDlg), PSWIZB_NEXT);      break;    case PSN_QUERYCANCEL:      return !ShouldExitSetup(hDlg);    }    break;  }  return 0;}