[PATCH 1/1] user32: Fix MessageBox button contents and ordering

Jason Edmeades jason.edmeades at googlemail.com
Thu Mar 13 16:21:02 CDT 2008


The MessageBox api was missing support for MB_CANCELTRYCONTINUE and Help  as
well as ordering the buttons wrong (compared to xp, anyway!).

Should fix bug 11657

(Comments in bug#11657 taken into consideration, and the question as to
why 'close' is handled specially is that there is no 'Close' button (ie
button with textual contents of 'close' that I can reproduce through the
API, but the IDCLOSE is in the range iterated by the code when I expanded
the loops which currently go 1-8, to now go up to 11 (ie close (9) has to
be skipped)
---
 dlls/user32/msgbox.c               |   44 +++++++++++++++++++++++++++++++-----
 dlls/user32/resources/user32_Bg.rc |    3 ++
 dlls/user32/resources/user32_Ca.rc |    3 ++
 dlls/user32/resources/user32_Cs.rc |    3 ++
 dlls/user32/resources/user32_Da.rc |    3 ++
 dlls/user32/resources/user32_De.rc |    3 ++
 dlls/user32/resources/user32_En.rc |    3 ++
 dlls/user32/resources/user32_Eo.rc |    3 ++
 dlls/user32/resources/user32_Es.rc |    3 ++
 dlls/user32/resources/user32_Fi.rc |    3 ++
 dlls/user32/resources/user32_Fr.rc |    3 ++
 dlls/user32/resources/user32_Hu.rc |    3 ++
 dlls/user32/resources/user32_It.rc |    3 ++
 dlls/user32/resources/user32_Ja.rc |    3 ++
 dlls/user32/resources/user32_Ko.rc |    3 ++
 dlls/user32/resources/user32_Nl.rc |    3 ++
 dlls/user32/resources/user32_No.rc |    3 ++
 dlls/user32/resources/user32_Pl.rc |    3 ++
 dlls/user32/resources/user32_Pt.rc |    3 ++
 dlls/user32/resources/user32_Ru.rc |    3 ++
 dlls/user32/resources/user32_Si.rc |    3 ++
 dlls/user32/resources/user32_Sk.rc |    3 ++
 dlls/user32/resources/user32_Sv.rc |    3 ++
 dlls/user32/resources/user32_Tr.rc |    3 ++
 dlls/user32/resources/user32_Uk.rc |    3 ++
 dlls/user32/resources/user32_Wa.rc |    3 ++
 dlls/user32/resources/user32_Zh.rc |    6 +++++
 include/winuser.h                  |    1 +
 28 files changed, 120 insertions(+), 6 deletions(-)

diff --git a/dlls/user32/msgbox.c b/dlls/user32/msgbox.c
index 6aa9a95..1d34449 100644
--- a/dlls/user32/msgbox.c
+++ b/dlls/user32/msgbox.c
@@ -75,13 +75,18 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
     MONITORINFO mon_info;
     LPCWSTR lpszText;
     WCHAR buf[256];
+    /* Index the order the buttons need to appear to an ID* constant */
+    static const int buttonOrder[10] = { 6, 7, 1, 3, 4, 2, 5, 10, 11, 9 };
 
     nclm.cbSize = sizeof(nclm);
     SystemParametersInfoW (SPI_GETNONCLIENTMETRICS, 0, &nclm, 0);
     hFont = CreateFontIndirectW (&nclm.lfMessageFont);
     /* set button font */
-    for (i=1; i < 8; i++)
-	SendDlgItemMessageW (hwnd, i, WM_SETFONT, (WPARAM)hFont, 0);
+    for (i=1; i < 12; i++)
+        /* No button 8 (Close) */
+        if (i != 8) {
+            SendDlgItemMessageW (hwnd, i, WM_SETFONT, (WPARAM)hFont, 0);
+        }
     /* set text font */
     SendDlgItemMessageW (hwnd, MSGBOX_IDTEXT, WM_SETFONT, (WPARAM)hFont, 0);
 
@@ -122,12 +127,16 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
 	ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE);
 	break;
     case MB_ABORTRETRYIGNORE:
 	ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDCANCEL), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE);
 	break;
     case MB_YESNO:
 	ShowWindow(GetDlgItem(hwnd, IDCANCEL), SW_HIDE);
@@ -137,6 +146,8 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
 	ShowWindow(GetDlgItem(hwnd, IDABORT), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDRETRY), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE);
 	break;
     case MB_RETRYCANCEL:
 	ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE);
@@ -144,7 +155,16 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
 	ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE);
 	ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE);
 	break;
+    case MB_CANCELTRYCONTINUE:
+	ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDABORT), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE);
+	ShowWindow(GetDlgItem(hwnd, IDRETRY), SW_HIDE);
     }
     /* Set the icon */
     switch(lpmb->dwStyle & MB_ICONMASK) {
@@ -175,6 +195,11 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
 	break;
     }
 
+    /* Hide Help button unless MB_HELP supplied */
+    if (!(lpmb->dwStyle & MB_HELP)) {
+        ShowWindow(GetDlgItem(hwnd, IDHELP), SW_HIDE);
+    }
+
     /* Position everything */
     GetWindowRect(hwnd, &rect);
     borheight = rect.bottom - rect.top;
@@ -201,8 +226,9 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
 
     /* Get the number of visible buttons and their size */
     bh = bw = 1; /* Minimum button sizes */
-    for (buttons = 0, i = 1; i < 8; i++)
+    for (buttons = 0, i = 1; i < 12; i++)
     {
+        if (i == 8) continue; /* No CLOSE button */
 	hItem = GetDlgItem(hwnd, i);
 	if (GetWindowLongW(hItem, GWL_STYLE) & WS_VISIBLE)
 	{
@@ -265,9 +291,10 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
 
     /* Position the buttons */
     bpos = (wwidth - (bw + bspace) * buttons + bspace) / 2;
-    for (buttons = i = 0; i < 7; i++) {
-	/* some arithmetic to get the right order for YesNoCancel windows */
-	hItem = GetDlgItem(hwnd, (i + 5) % 7 + 1);
+    for (buttons = i = 0; i < (sizeof(buttonOrder) / sizeof(buttonOrder[0])); i++) {
+
+	/* Convert the button order to ID* value to order for the buttons */
+	hItem = GetDlgItem(hwnd, buttonOrder[i]);
 	if (GetWindowLongW(hItem, GWL_STYLE) & WS_VISIBLE) {
 	    if (buttons++ == ((lpmb->dwStyle & MB_DEFMASK) >> 8)) {
 		SetFocus(hItem);
@@ -318,11 +345,16 @@ static INT_PTR CALLBACK MSGBOX_DlgProc( HWND hwnd, UINT message,
      case IDIGNORE:
      case IDYES:
      case IDNO:
+     case IDTRYAGAIN:
+     case IDCONTINUE:
       hFont = GetPropA(hwnd, "WINE_MSGBOX_HFONT");
       EndDialog(hwnd, wParam);
       if (hFont)
 	  DeleteObject(hFont);
       break;
+     case IDHELP:
+      FIXME("Help button not supported yet\n");
+      break;
     }
     break;
 
diff --git a/dlls/user32/resources/user32_Bg.rc b/dlls/user32/resources/user32_Bg.rc
index 8ac710c..e51a7f9 100644
--- a/dlls/user32/resources/user32_Bg.rc
+++ b/dlls/user32/resources/user32_Bg.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ïðîïóñíè", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Äà", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Íå", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Ca.rc b/dlls/user32/resources/user32_Ca.rc
index 75d44c3..5e59323 100644
--- a/dlls/user32/resources/user32_Ca.rc
+++ b/dlls/user32/resources/user32_Ca.rc
@@ -62,4 +62,7 @@ BEGIN
         PUSHBUTTON "&Ignorar", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Si", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
diff --git a/dlls/user32/resources/user32_Cs.rc b/dlls/user32/resources/user32_Cs.rc
index 28dade5..a934029 100644
--- a/dlls/user32/resources/user32_Cs.rc
+++ b/dlls/user32/resources/user32_Cs.rc
@@ -63,4 +63,7 @@ BEGIN
         PUSHBUTTON "&Ignorovat", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ano", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ne", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
diff --git a/dlls/user32/resources/user32_Da.rc b/dlls/user32/resources/user32_Da.rc
index 1860148..fe8ccc8 100644
--- a/dlls/user32/resources/user32_Da.rc
+++ b/dlls/user32/resources/user32_Da.rc
@@ -62,4 +62,7 @@ BEGIN
         PUSHBUTTON "&Ignorer", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ja", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Nej", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
diff --git a/dlls/user32/resources/user32_De.rc b/dlls/user32/resources/user32_De.rc
index 2cce79b..ef175ad 100644
--- a/dlls/user32/resources/user32_De.rc
+++ b/dlls/user32/resources/user32_De.rc
@@ -63,6 +63,9 @@ BEGIN
         PUSHBUTTON "&Ignorieren", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ja", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Nein", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_En.rc b/dlls/user32/resources/user32_En.rc
index c57c38c..0ba8287 100644
--- a/dlls/user32/resources/user32_En.rc
+++ b/dlls/user32/resources/user32_En.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ignore", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Yes", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Eo.rc b/dlls/user32/resources/user32_Eo.rc
index 88c816f..0b2a2c8 100644
--- a/dlls/user32/resources/user32_Eo.rc
+++ b/dlls/user32/resources/user32_Eo.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ignoru", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Jes", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "N&e", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 	
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Es.rc b/dlls/user32/resources/user32_Es.rc
index 79f9791..a17d67a 100644
--- a/dlls/user32/resources/user32_Es.rc
+++ b/dlls/user32/resources/user32_Es.rc
@@ -63,6 +63,9 @@ BEGIN
         PUSHBUTTON "&Ignorar", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Sí", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Fi.rc b/dlls/user32/resources/user32_Fi.rc
index ce64041..49971b3 100644
--- a/dlls/user32/resources/user32_Fi.rc
+++ b/dlls/user32/resources/user32_Fi.rc
@@ -63,6 +63,9 @@ BEGIN
         PUSHBUTTON "&Hylkää", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Kyllä", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ei", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Fr.rc b/dlls/user32/resources/user32_Fr.rc
index 94cb28b..c3e5979 100644
--- a/dlls/user32/resources/user32_Fr.rc
+++ b/dlls/user32/resources/user32_Fr.rc
@@ -65,6 +65,9 @@ BEGIN
         PUSHBUTTON "&Ignorer", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Oui", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Non", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Hu.rc b/dlls/user32/resources/user32_Hu.rc
index 5b1b7d1..c272d38 100644
--- a/dlls/user32/resources/user32_Hu.rc
+++ b/dlls/user32/resources/user32_Hu.rc
@@ -63,6 +63,9 @@ BEGIN
         PUSHBUTTON "&Kihagyás", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Igen", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Nem", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_It.rc b/dlls/user32/resources/user32_It.rc
index d2373c3..67298b8 100644
--- a/dlls/user32/resources/user32_It.rc
+++ b/dlls/user32/resources/user32_It.rc
@@ -63,6 +63,9 @@ BEGIN
         PUSHBUTTON "&Ignora", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Si", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&No", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Ja.rc b/dlls/user32/resources/user32_Ja.rc
index 5b26f42..2b60047 100644
--- a/dlls/user32/resources/user32_Ja.rc
+++ b/dlls/user32/resources/user32_Ja.rc
@@ -62,4 +62,7 @@ BEGIN
         PUSHBUTTON "–³Ž‹(&I)", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "‚Í‚¢(&Y)", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "‚¢‚¢‚¦(&N)", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
diff --git a/dlls/user32/resources/user32_Ko.rc b/dlls/user32/resources/user32_Ko.rc
index 0734773..6721db6 100644
--- a/dlls/user32/resources/user32_Ko.rc
+++ b/dlls/user32/resources/user32_Ko.rc
@@ -64,6 +64,9 @@ BEGIN
 	PUSHBUTTON "¹«½Ã(&I)", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 	PUSHBUTTON "¿¹(&Y)", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 	PUSHBUTTON "¾Æ´Ï¿À(&N)", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+    PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Nl.rc b/dlls/user32/resources/user32_Nl.rc
index e183083..4186a1c 100644
--- a/dlls/user32/resources/user32_Nl.rc
+++ b/dlls/user32/resources/user32_Nl.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "N&egeer", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ja", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Nee", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_No.rc b/dlls/user32/resources/user32_No.rc
index b11676f..d489695 100644
--- a/dlls/user32/resources/user32_No.rc
+++ b/dlls/user32/resources/user32_No.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ignorer", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ja", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Nei", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Pl.rc b/dlls/user32/resources/user32_Pl.rc
index 8b733c8..a48a2cd 100644
--- a/dlls/user32/resources/user32_Pl.rc
+++ b/dlls/user32/resources/user32_Pl.rc
@@ -62,6 +62,9 @@ BEGIN
 	PUSHBUTTON "&Ignoruj", 5, 215, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 	PUSHBUTTON "&Tak", 6, 263, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 	PUSHBUTTON "&Nie", 7, 311, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+	PUSHBUTTON "&Try Again", 10, 359, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+	PUSHBUTTON "&Continue", 11, 407, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+	PUSHBUTTON "Help", 9, 455, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Pt.rc b/dlls/user32/resources/user32_Pt.rc
index d0ec87a..eb36dda 100644
--- a/dlls/user32/resources/user32_Pt.rc
+++ b/dlls/user32/resources/user32_Pt.rc
@@ -105,6 +105,9 @@ BEGIN
         PUSHBUTTON "&Ignorar", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Sim", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Não", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 
diff --git a/dlls/user32/resources/user32_Ru.rc b/dlls/user32/resources/user32_Ru.rc
index 4b70886..85c27a7 100644
--- a/dlls/user32/resources/user32_Ru.rc
+++ b/dlls/user32/resources/user32_Ru.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ïðîïóñòèòü", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Äà", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Íåò", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 STRINGTABLE DISCARDABLE
diff --git a/dlls/user32/resources/user32_Si.rc b/dlls/user32/resources/user32_Si.rc
index a433f50..392eac8 100644
--- a/dlls/user32/resources/user32_Si.rc
+++ b/dlls/user32/resources/user32_Si.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "Pr&ezri", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Da", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ne", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Sk.rc b/dlls/user32/resources/user32_Sk.rc
index 5f3e294..78e07f5 100644
--- a/dlls/user32/resources/user32_Sk.rc
+++ b/dlls/user32/resources/user32_Sk.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ignorova", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "Á&no", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "Ni&e", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Sv.rc b/dlls/user32/resources/user32_Sv.rc
index ca43a08..5f18a16 100644
--- a/dlls/user32/resources/user32_Sv.rc
+++ b/dlls/user32/resources/user32_Sv.rc
@@ -60,4 +60,7 @@ BEGIN
         PUSHBUTTON "&Ignorera", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Ja", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Nej", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
diff --git a/dlls/user32/resources/user32_Tr.rc b/dlls/user32/resources/user32_Tr.rc
index b2931cd..631836e 100644
--- a/dlls/user32/resources/user32_Tr.rc
+++ b/dlls/user32/resources/user32_Tr.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "Y&oksay", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Evet", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Hayýr", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/dlls/user32/resources/user32_Uk.rc b/dlls/user32/resources/user32_Uk.rc
index 33a82ca..ee714d4 100644
--- a/dlls/user32/resources/user32_Uk.rc
+++ b/dlls/user32/resources/user32_Uk.rc
@@ -62,6 +62,9 @@ BEGIN
         PUSHBUTTON "&Ïðîïóñòèòè", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Òàê", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&ͳ", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 STRINGTABLE DISCARDABLE
diff --git a/dlls/user32/resources/user32_Wa.rc b/dlls/user32/resources/user32_Wa.rc
index 09a74a8..5eed608 100644
--- a/dlls/user32/resources/user32_Wa.rc
+++ b/dlls/user32/resources/user32_Wa.rc
@@ -67,4 +67,7 @@ BEGIN
         PUSHBUTTON "&Passer hute", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Oyi", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "&Neni", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
diff --git a/dlls/user32/resources/user32_Zh.rc b/dlls/user32/resources/user32_Zh.rc
index e86d1e2..978b71b 100644
--- a/dlls/user32/resources/user32_Zh.rc
+++ b/dlls/user32/resources/user32_Zh.rc
@@ -58,6 +58,9 @@ BEGIN
         PUSHBUTTON "ºöÂÔ(&I)", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "ÊÇ(&Y)", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "·ñ(&N)", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
@@ -119,6 +122,9 @@ BEGIN
         PUSHBUTTON "ºöÂÔ(&I)", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "ÊÇ(&Y)", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
         PUSHBUTTON "·ñ(&N)", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+        PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
 END
 
 MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
diff --git a/include/winuser.h b/include/winuser.h
index b7b0475..3508b7b 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -2596,6 +2596,7 @@ typedef struct tagSCROLLBARINFO
 #define MB_YESNOCANCEL		0x00000003
 #define MB_YESNO		0x00000004
 #define MB_RETRYCANCEL		0x00000005
+#define MB_CANCELTRYCONTINUE	0x00000006
 #define MB_TYPEMASK		0x0000000F
 
 #define MB_ICONHAND		0x00000010
-- 
1.5.3.2




More information about the wine-patches mailing list