Author: fireball
Date: Fri Sep 25 20:24:36 2009
New Revision: 43148
URL:
http://svn.reactos.org/svn/reactos?rev=43148&view=rev
Log:
- Update to Wine 1.1.29.
Modified:
branches/arwinss/reactos/dll/win32/gdi32/ (props changed)
branches/arwinss/reactos/dll/win32/gdi32/freetype.c
branches/arwinss/reactos/dll/win32/gdi32/metafile.c
branches/arwinss/reactos/dll/win32/gdi32/opengl.c
branches/arwinss/reactos/dll/win32/user32/ (props changed)
branches/arwinss/reactos/dll/win32/user32/button.c
branches/arwinss/reactos/dll/win32/user32/defdlg.c
branches/arwinss/reactos/dll/win32/user32/defwnd.c
branches/arwinss/reactos/dll/win32/user32/dialog.c
branches/arwinss/reactos/dll/win32/user32/edit.c
branches/arwinss/reactos/dll/win32/user32/focus.c
branches/arwinss/reactos/dll/win32/user32/hook.c
branches/arwinss/reactos/dll/win32/user32/menu.c
branches/arwinss/reactos/dll/win32/user32/message.c
branches/arwinss/reactos/dll/win32/user32/resources/user32.rc
branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc
branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc
branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc
branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc
branches/arwinss/reactos/dll/win32/user32/spy.c
branches/arwinss/reactos/dll/win32/user32/win.c
branches/arwinss/reactos/dll/win32/user32/winpos.c
branches/arwinss/reactos/include/reactos/wine/server_protocol.h
branches/arwinss/reactos/subsystems/win32/win32k/include/request.h (contents, props
changed)
Propchange: branches/arwinss/reactos/dll/win32/gdi32/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Sep 25 20:24:36 2009
@@ -1,0 +1,3 @@
+/branches/ros-amd64-bringup/reactos/dll/win32/gdi32:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080
+/trunk/reactos/dll/win32/gdi32:42000-43126
+/vendor/wine/dlls/gdi32/current:43136
Modified: branches/arwinss/reactos/dll/win32/gdi32/freetype.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/freetype.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/freetype.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -1737,7 +1737,7 @@
if(psub)
{
TRACE("%s: SystemLink entry for substituted font, ignoring\n",
debugstr_w(value));
- continue;
+ goto next;
}
font_link = HeapAlloc(GetProcessHeap(), 0, sizeof(*font_link));
font_link->font_name = strdupW(value);
@@ -1786,6 +1786,7 @@
}
}
list_add_tail(&system_links, &font_link->entry);
+ next:
val_len = max_val + 1;
data_len = max_data;
}
@@ -5661,7 +5662,19 @@
TM.tmAveCharWidth = 1;
}
TM.tmMaxCharWidth = (pFT_MulFix(ft_face->bbox.xMax - ft_face->bbox.xMin,
x_scale) + 32) >> 6;
- TM.tmWeight = (font->fake_bold || (ft_face->style_flags &
FT_STYLE_FLAG_BOLD)) ? FW_BOLD : FW_REGULAR;
+ TM.tmWeight = FW_REGULAR;
+ if (font->fake_bold)
+ TM.tmWeight = FW_BOLD;
+ else
+ {
+ if (ft_face->style_flags & FT_STYLE_FLAG_BOLD)
+ {
+ if (pOS2->usWeightClass > FW_MEDIUM)
+ TM.tmWeight = pOS2->usWeightClass;
+ }
+ else if (pOS2->usWeightClass <= FW_MEDIUM)
+ TM.tmWeight = pOS2->usWeightClass;
+ }
TM.tmOverhang = 0;
TM.tmDigitizedAspectX = 300;
TM.tmDigitizedAspectY = 300;
@@ -5868,6 +5881,7 @@
child->font->scale_y = font->scale_y;
hfontlist = HeapAlloc(GetProcessHeap(), 0, sizeof(*hfontlist));
hfontlist->hfont = CreateFontIndirectW(&font->font_desc.lf);
+ child->font->name = strdupW(child->face->family->FamilyName);
list_add_head(&child->font->hfontlist, &hfontlist->entry);
child->font->base_font = font;
list_add_head(&child_font_list, &child->font->entry);
Modified: branches/arwinss/reactos/dll/win32/gdi32/metafile.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/metafile.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/metafile.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -1222,6 +1222,26 @@
return ret;
}
+/*******************************************************************
+ * muldiv
+ *
+ * Behaves somewhat differently to MulDiv when the answer is -ve
+ * and also rounds n.5 towards zero
+ */
+static INT muldiv(INT m1, INT m2, INT d)
+{
+ LONGLONG ret;
+
+ ret = ((LONGLONG)m1 * m2 + d/2) / d; /* Always add d/2 even if ret will be -ve */
+
+ if((LONGLONG)m1 * m2 * 2 == (2 * ret - 1) * d) /* If the answer is exactly n.5 round
towards zero */
+ {
+ if(ret > 0) ret--;
+ else ret++;
+ }
+ return ret;
+}
+
/******************************************************************
* set_window
*
@@ -1247,28 +1267,28 @@
case MM_TEXT:
case MM_ISOTROPIC:
case MM_ANISOTROPIC:
- pt.y = MulDiv(header.rclFrame.top, vert_res, vert_size * 100);
- pt.x = MulDiv(header.rclFrame.left, horz_res, horz_size * 100);
+ pt.y = muldiv(header.rclFrame.top, vert_res, vert_size * 100);
+ pt.x = muldiv(header.rclFrame.left, horz_res, horz_size * 100);
break;
case MM_LOMETRIC:
- pt.y = MulDiv(-header.rclFrame.top, 1, 10) + 1;
- pt.x = MulDiv( header.rclFrame.left, 1, 10);
+ pt.y = muldiv(-header.rclFrame.top, 1, 10) + 1;
+ pt.x = muldiv( header.rclFrame.left, 1, 10);
break;
case MM_HIMETRIC:
pt.y = -header.rclFrame.top + 1;
- pt.x = header.rclFrame.left;
+ pt.x = (header.rclFrame.left >= 0) ? header.rclFrame.left :
header.rclFrame.left + 1; /* See the tests */
break;
case MM_LOENGLISH:
- pt.y = MulDiv(-header.rclFrame.top, 10, 254) + 1;
- pt.x = MulDiv( header.rclFrame.left, 10, 254);
+ pt.y = muldiv(-header.rclFrame.top, 10, 254) + 1;
+ pt.x = muldiv( header.rclFrame.left, 10, 254);
break;
case MM_HIENGLISH:
- pt.y = MulDiv(-header.rclFrame.top, 100, 254) + 1;
- pt.x = MulDiv( header.rclFrame.left, 100, 254);
+ pt.y = muldiv(-header.rclFrame.top, 100, 254) + 1;
+ pt.x = muldiv( header.rclFrame.left, 100, 254);
break;
case MM_TWIPS:
- pt.y = MulDiv(-header.rclFrame.top, 72 * 20, 2540) + 1;
- pt.x = MulDiv( header.rclFrame.left, 72 * 20, 2540);
+ pt.y = muldiv(-header.rclFrame.top, 72 * 20, 2540) + 1;
+ pt.x = muldiv( header.rclFrame.left, 72 * 20, 2540);
break;
default:
WARN("Unknown map mode %d\n", map_mode);
@@ -1276,8 +1296,8 @@
}
SetWindowOrgEx(hdc, pt.x, pt.y, NULL);
- pt.x = MulDiv(header.rclFrame.right - header.rclFrame.left, horz_res, horz_size *
100);
- pt.y = MulDiv(header.rclFrame.bottom - header.rclFrame.top, vert_res, vert_size *
100);
+ pt.x = muldiv(header.rclFrame.right - header.rclFrame.left, horz_res, horz_size *
100);
+ pt.y = muldiv(header.rclFrame.bottom - header.rclFrame.top, vert_res, vert_size *
100);
SetWindowExtEx(hdc, pt.x, pt.y, NULL);
return TRUE;
}
Modified: branches/arwinss/reactos/dll/win32/gdi32/opengl.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/opengl.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/opengl.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -168,7 +168,7 @@
TRACE("(%p)\n", pbuffer);
- if (!dc) return FALSE;
+ if (!dc) return 0;
/* The display driver has to do the rest of the work because
* we need access to lowlevel datatypes which we can't access here
@@ -338,7 +338,7 @@
/* Retrieve the global hDC to get access to the driver. */
dc = OPENGL_GetDefaultDC();
- if (!dc) return FALSE;
+ if (!dc) return NULL;
if (!dc->funcs->pwglGetProcAddress) FIXME(" :stub\n");
else ret = dc->funcs->pwglGetProcAddress(func);
Propchange: branches/arwinss/reactos/dll/win32/user32/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Sep 25 20:24:36 2009
@@ -1,0 +1,3 @@
+/branches/ros-amd64-bringup/reactos/dll/win32/user32:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080
+/trunk/reactos/dll/win32/user32:42000-43126
+/vendor/wine/dlls/user32/current:43136
Modified: branches/arwinss/reactos/dll/win32/user32/button.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/button.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/button.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -836,6 +836,9 @@
hOldBrush = SelectObject(hDC,GetSysColorBrush(COLOR_BTNFACE));
oldBkMode = SetBkMode(hDC, TRANSPARENT);
+ /* completely skip the drawing if only focus has changed */
+ if (action == ODA_FOCUS) goto draw_focus;
+
if (get_button_type(style) == BS_DEFPUSHBUTTON)
{
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom);
@@ -879,7 +882,9 @@
SetTextColor( hDC, oldTxtColor );
- if (state & BUTTON_HASFOCUS)
+draw_focus:
+ if ((action == ODA_FOCUS) ||
+ ((action == ODA_DRAWENTIRE) && (state & BUTTON_HASFOCUS)))
{
InflateRect( &focus_rect, -1, -1 );
IntersectRect(&focus_rect, &focus_rect, &rc);
Modified: branches/arwinss/reactos/dll/win32/user32/defdlg.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/defdlg.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/defdlg.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -345,7 +345,10 @@
wndPtr = WIN_GetPtr( hwnd );
if (!wndPtr || wndPtr == WND_OTHER_PROCESS || wndPtr == WND_DESKTOP)
+ {
+ SetLastError( ERROR_INVALID_WINDOW_HANDLE );
return NULL;
+ }
dlgInfo = wndPtr->dlgInfo;
@@ -383,7 +386,7 @@
BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info(hwnd32, TRUE))) return -1;
+ if(!(dlgInfo = DIALOG_get_info(hwnd32, TRUE))) return 0;
SetWindowLongPtrW( hwnd32, DWLP_MSGRESULT, 0 );
@@ -435,7 +438,7 @@
BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return -1;
+ if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, 0 );
@@ -486,7 +489,7 @@
DLGPROC dlgproc;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return -1;
+ if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, 0 );
Modified: branches/arwinss/reactos/dll/win32/user32/defwnd.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/defwnd.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/defwnd.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -66,11 +66,16 @@
if (!(winpos->flags & SWP_NOCLIENTSIZE) || (winpos->flags &
SWP_STATECHANGED))
{
- WPARAM wp = SIZE_RESTORED;
- if (IsZoomed(hwnd)) wp = SIZE_MAXIMIZED;
- else if (IsIconic(hwnd)) wp = SIZE_MINIMIZED;
-
- SendMessageW( hwnd, WM_SIZE, wp, MAKELONG(rect.right-rect.left,
rect.bottom-rect.top) );
+ if (IsIconic( hwnd ))
+ {
+ SendMessageW( hwnd, WM_SIZE, SIZE_MINIMIZED, 0 );
+ }
+ else
+ {
+ WPARAM wp = IsZoomed( hwnd ) ? SIZE_MAXIMIZED : SIZE_RESTORED;
+
+ SendMessageW( hwnd, WM_SIZE, wp, MAKELONG(rect.right-rect.left,
rect.bottom-rect.top) );
+ }
}
}
@@ -216,7 +221,7 @@
* Client area
*/
if ( uFlags & PRF_CLIENT)
- SendMessageW(hwnd, WM_PRINTCLIENT, (WPARAM)hdc, PRF_CLIENT);
+ SendMessageW(hwnd, WM_PRINTCLIENT, (WPARAM)hdc, uFlags);
}
Modified: branches/arwinss/reactos/dll/win32/user32/dialog.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/dialog.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/dialog.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -673,7 +673,7 @@
dlgInfo->hMenu = hMenu;
dlgInfo->xBaseUnit = xBaseUnit;
dlgInfo->yBaseUnit = yBaseUnit;
- dlgInfo->idResult = 0;
+ dlgInfo->idResult = IDOK;
dlgInfo->flags = flags;
dlgInfo->hDialogHeap = 0;
@@ -808,7 +808,7 @@
if (!GetMessageW( &msg, 0, 0, 0 )) break;
}
- if (!IsWindow( hwnd )) return -1;
+ if (!IsWindow( hwnd )) return 0;
if (!(dlgInfo->flags & DF_END) && !IsDialogMessageW( hwnd,
&msg))
{
TranslateMessage( &msg );
Modified: branches/arwinss/reactos/dll/win32/user32/edit.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -83,6 +83,8 @@
#define EF_USE_SOFTBRK 0x0100 /* Enable soft breaks in text. */
#define EF_APP_HAS_HANDLE 0x0200 /* Set when an app sends EM_[G|S]ETHANDLE. We
are in sole control of
the text buffer if this is clear. */
+#define EF_DIALOGMODE 0x0400 /* Indicates that we are inside a dialog window
*/
+
typedef enum
{
END_0 = 0, /* line ends with terminating '\0' character */
@@ -3101,22 +3103,9 @@
* controls without ES_WANTRETURN would attempt to detect whether it is inside
* a dialog box or not.
*/
-static BOOL EDIT_IsInsideDialog(EDITSTATE *es)
-{
- WND *pParent;
- BOOL r = FALSE;
-
- if (es->hwndParent)
- {
- pParent = WIN_GetPtr(es->hwndParent);
- if (pParent && pParent != WND_OTHER_PROCESS && pParent !=
WND_DESKTOP)
- {
- if (pParent->flags & WIN_ISDIALOG)
- r = TRUE;
- WIN_ReleasePtr(pParent);
- }
- }
- return r;
+static inline BOOL EDIT_IsInsideDialog(EDITSTATE *es)
+{
+ return (es->flags & EF_DIALOGMODE);
}
@@ -3568,32 +3557,32 @@
/* If the edit doesn't want the return send a message to the default object */
if(!(es->style & ES_MULTILINE) || !(es->style & ES_WANTRETURN))
{
- HWND hwndParent;
- DWORD dw;
-
- if (!EDIT_IsInsideDialog(es)) return 1;
+ DWORD dw;
+
+ if (!EDIT_IsInsideDialog(es)) break;
if (control) break;
- hwndParent = GetParent(es->hwndSelf);
- dw = SendMessageW( hwndParent, DM_GETDEFID, 0, 0 );
- if (HIWORD(dw) == DC_HASDEFID)
- {
- SendMessageW( hwndParent, WM_COMMAND,
- MAKEWPARAM( LOWORD(dw), BN_CLICKED ),
- (LPARAM)GetDlgItem( hwndParent, LOWORD(dw) ) );
- }
- else
- SendMessageW( hwndParent, WM_COMMAND, IDOK, (LPARAM)GetDlgItem(
hwndParent, IDOK ) );
+ dw = SendMessageW(es->hwndParent, DM_GETDEFID, 0, 0);
+ if (HIWORD(dw) == DC_HASDEFID)
+ {
+ HWND hwDefCtrl = GetDlgItem(es->hwndParent, LOWORD(dw));
+ if (hwDefCtrl)
+ {
+ SendMessageW(es->hwndParent, WM_NEXTDLGCTL, (WPARAM)hwDefCtrl,
(LPARAM)TRUE);
+ PostMessageW(hwDefCtrl, WM_KEYDOWN, VK_RETURN, 0);
+ }
+ }
}
break;
case VK_ESCAPE:
- if (!(es->style & ES_MULTILINE))
- SendMessageW(GetParent(es->hwndSelf), WM_COMMAND, IDCANCEL,
(LPARAM)GetDlgItem( GetParent(es->hwndSelf), IDCANCEL ) );
+ if ((es->style & ES_MULTILINE) && EDIT_IsInsideDialog(es))
+ PostMessageW(es->hwndParent, WM_CLOSE, 0, 0);
break;
case VK_TAB:
- SendMessageW(es->hwndParent, WM_NEXTDLGCTL, shift, 0);
+ if ((es->style & ES_MULTILINE) && EDIT_IsInsideDialog(es))
+ SendMessageW(es->hwndParent, WM_NEXTDLGCTL, shift, 0);
break;
}
- return 0;
+ return TRUE;
}
@@ -4946,27 +4935,21 @@
if (es->style & ES_MULTILINE)
result |= DLGC_WANTALLKEYS;
- if (lParam && (((LPMSG)lParam)->message == WM_KEYDOWN))
- {
- int vk = (int)((LPMSG)lParam)->wParam;
-
- if (es->hwndListBox)
- {
- if (vk == VK_RETURN || vk == VK_ESCAPE)
- if (SendMessageW(GetParent(hwnd), CB_GETDROPPEDSTATE, 0, 0))
- result |= DLGC_WANTMESSAGE;
- }
- else
- {
- switch (vk)
- {
- case VK_ESCAPE:
- SendMessageW(GetParent(hwnd), WM_CLOSE, 0, 0);
- break;
- default:
- break;
- }
- }
+ if (lParam)
+ {
+ es->flags|=EF_DIALOGMODE;
+
+ if (((LPMSG)lParam)->message == WM_KEYDOWN)
+ {
+ int vk = (int)((LPMSG)lParam)->wParam;
+
+ if (es->hwndListBox)
+ {
+ if (vk == VK_RETURN || vk == VK_ESCAPE)
+ if (SendMessageW(GetParent(hwnd), CB_GETDROPPEDSTATE, 0,
0))
+ result |= DLGC_WANTMESSAGE;
+ }
+ }
}
break;
Modified: branches/arwinss/reactos/dll/win32/user32/focus.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/focus.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/focus.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -193,7 +193,7 @@
}
SERVER_END_REQ;
- if (ret)
+ if (ret && previous != hwnd)
{
if (send_msg_old) /* old window belongs to other thread */
SendNotifyMessageW( previous, WM_WINE_SETACTIVEWINDOW, 0, 0 );
Modified: branches/arwinss/reactos/dll/win32/user32/hook.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/hook.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/hook.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -322,7 +322,7 @@
{
TRACE( "loading %s\n", debugstr_w(module) );
/* FIXME: the library will never be freed */
- if (!(mod = LoadLibraryW(module))) return NULL;
+ if (!(mod = LoadLibraryExW(module, NULL, LOAD_WITH_ALTERED_SEARCH_PATH))) return
NULL;
}
return (char *)mod + (ULONG_PTR)proc;
}
Modified: branches/arwinss/reactos/dll/win32/user32/menu.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -113,7 +113,7 @@
DWORD dwContextHelpID;
DWORD dwMenuData; /* application defined value */
HMENU hSysMenuOwner; /* Handle to the dummy sys menu holder */
- SIZE maxBmpSize; /* Maximum size of the bitmap items */
+ WORD textOffset; /* Offset of text when items have both bitmaps and text
*/
} POPUPMENU, *LPPOPUPMENU;
/* internal flags for menu tracking */
@@ -147,6 +147,11 @@
/* top and bottom margins for popup menus */
#define MENU_TOP_MARGIN 3
#define MENU_BOTTOM_MARGIN 2
+
+/* maximum allowed depth of any branch in the menu tree.
+ * This value is slightly larger than in windows (25) to
+ * stay on the safe side. */
+#define MAXMENUDEPTH 30
/* (other menu->FocusedItem values give the position of the focused item) */
#define NO_SELECTED_ITEM 0xffff
@@ -185,6 +190,8 @@
static LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM
lParam );
DWORD WINAPI DrawMenuBarTemp(HWND hwnd, HDC hDC, LPRECT lprect, HMENU hMenu, HFONT
hFont);
+
+static BOOL SetMenuItemInfo_common( MENUITEM *, const MENUITEMINFOW *, BOOL);
/*********************************************************************
* menu class descriptor
@@ -1065,8 +1072,7 @@
/* Keep the size of the bitmap in callback mode to be able
* to draw it correctly */
lpitem->bmpsize = size;
- lppop->maxBmpSize.cx = max( lppop->maxBmpSize.cx, size.cx);
- lppop->maxBmpSize.cy = max( lppop->maxBmpSize.cy, size.cy);
+ lppop->textOffset = max( lppop->textOffset, size.cx);
lpitem->rect.right += size.cx + 2;
itemheight = size.cy + 2;
}
@@ -1160,6 +1166,7 @@
MENUITEM *lpitem;
HDC hdc;
UINT start, i;
+ int textandbmp = FALSE;
int orgX, orgY, maxX, maxTab, maxTabWidth, maxHeight;
lppop->Width = lppop->Height = 0;
@@ -1171,8 +1178,7 @@
start = 0;
maxX = 2 + 1;
- lppop->maxBmpSize.cx = 0;
- lppop->maxBmpSize.cy = 0;
+ lppop->textOffset = 0;
while (start < lppop->nItems)
{
@@ -1197,6 +1203,7 @@
maxTab = max( maxTab, lpitem->xTab );
maxTabWidth = max(maxTabWidth,lpitem->rect.right-lpitem->xTab);
}
+ if( lpitem->text && lpitem->hbmpItem) textandbmp = TRUE;
}
/* Finish the column (set all items to the largest width found) */
@@ -1212,6 +1219,12 @@
}
lppop->Width = maxX;
+ /* if none of the items have both text and bitmap then
+ * the text and bitmaps are all aligned on the left. If there is at
+ * least one item with both text and bitmap then bitmaps are
+ * on the left and texts left aligned with the right hand side
+ * of the bitmaps */
+ if( !textandbmp) lppop->textOffset = 0;
/* space for 3d border */
lppop->Height += MENU_BOTTOM_MARGIN;
@@ -1258,8 +1271,7 @@
maxY = lprect->top+1;
start = 0;
helpPos = ~0U;
- lppop->maxBmpSize.cx = 0;
- lppop->maxBmpSize.cy = 0;
+ lppop->textOffset = 0;
while (start < lppop->nItems)
{
lpitem = &lppop->items[start];
@@ -1652,7 +1664,7 @@
DT_LEFT | DT_VCENTER | DT_SINGLELINE;
if( !(menu->dwStyle & MNS_CHECKORBMP))
- rect.left += menu->maxBmpSize.cx;
+ rect.left += menu->textOffset;
if ( lpitem->fState & MFS_DEFAULT )
{
@@ -1754,6 +1766,7 @@
if( (menu = MENU_GetMenu( hmenu )))
{
+ TRACE("hmenu %p Style %08x\n", hmenu, menu->dwStyle);
/* draw menu items */
if( menu->nItems)
{
@@ -2049,92 +2062,6 @@
/**********************************************************************
- * MENU_SetItemData
- *
- * Set an item's flags, id and text ptr. Called by InsertMenu() and
- * ModifyMenu().
- */
-static BOOL MENU_SetItemData( MENUITEM *item, UINT flags, UINT_PTR id,
- LPCWSTR str )
-{
- debug_print_menuitem("MENU_SetItemData from: ", item, "");
- TRACE("flags=%x str=%p\n", flags, str);
-
- if (IS_STRING_ITEM(flags))
- {
- LPWSTR prevText = item->text;
- if (!str)
- {
- flags |= MF_SEPARATOR;
- item->text = NULL;
- }
- else
- {
- LPWSTR text;
- /* Item beginning with a backspace is a help item */
- if (*str == '\b')
- {
- flags |= MF_HELP;
- str++;
- }
- if (!(text = HeapAlloc( GetProcessHeap(), 0, (strlenW(str)+1) * sizeof(WCHAR)
)))
- return FALSE;
- strcpyW( text, str );
- item->text = text;
- }
- item->hbmpItem = NULL;
- HeapFree( GetProcessHeap(), 0, prevText );
- }
- else if(( flags & MFT_BITMAP)) {
- item->hbmpItem = (HBITMAP)(LOWORD(str));
- /* setting bitmap clears text */
- HeapFree( GetProcessHeap(), 0, item->text );
- item->text = NULL;
- }
-
- if (flags & MF_SEPARATOR) flags |= MF_GRAYED | MF_DISABLED;
-
- if (flags & MF_OWNERDRAW)
- item->dwItemData = (DWORD_PTR)str;
- else
- item->dwItemData = 0;
-
- if ((item->fType & MF_POPUP) && (flags & MF_POPUP) &&
(item->hSubMenu != (HMENU)id) )
- DestroyMenu( item->hSubMenu ); /* ModifyMenu() spec */
-
- if (flags & MF_POPUP)
- {
- POPUPMENU *menu = MENU_GetMenu((HMENU)id);
- if (menu) menu->wFlags |= MF_POPUP;
- else
- {
- item->wID = 0;
- item->hSubMenu = 0;
- item->fType = 0;
- item->fState = 0;
- return FALSE;
- }
- }
-
- item->wID = id;
- if (flags & MF_POPUP) item->hSubMenu = (HMENU)id;
-
- if ((item->fType & MF_POPUP) && !(flags & MF_POPUP) )
- flags |= MF_POPUP; /* keep popup */
-
- item->fType = flags & TYPE_MASK;
- /* MFS_DEFAULT is not accepted. MF_HILITE is not listed as a valid flag
- for ModifyMenu, but Windows accepts it */
- item->fState = flags & MENUITEMINFO_STATE_MASK & ~MFS_DEFAULT;
-
- /* Don't call SetRectEmpty here! */
-
- debug_print_menuitem("MENU_SetItemData to : ", item, "");
- return TRUE;
-}
-
-
-/**********************************************************************
* MENU_InsertItem
*
* Insert (allocate) a new item into a menu.
@@ -2165,8 +2092,7 @@
* Note: XP treats only bitmap handles 1 - 6 as "magic" ones
* regardless of their id.
*/
- while (pos > 0 && (menu->items[pos - 1].fType & MFT_BITMAP)
&&
- (INT_PTR)menu->items[pos - 1].hbmpItem >= (INT_PTR)HBMMENU_SYSTEM
&&
+ while (pos > 0 && (INT_PTR)menu->items[pos - 1].hbmpItem >=
(INT_PTR)HBMMENU_SYSTEM &&
(INT_PTR)menu->items[pos - 1].hbmpItem <=
(INT_PTR)HBMMENU_MBAR_CLOSE_D)
pos--;
@@ -3547,6 +3473,14 @@
EndPaint( hwnd, &ps );
return 0;
}
+
+ case WM_PRINTCLIENT:
+ {
+ MENU_DrawPopupMenu( hwnd, (HDC)wParam,
+ (HMENU)GetWindowLongPtrW( hwnd, 0 ) );
+ return 0;
+ }
+
case WM_ERASEBKGND:
return 1;
@@ -3828,6 +3762,49 @@
}
+/**********************************************************************
+ * MENU_mnu2mnuii
+ *
+ * Uses flags, id and text ptr, passed by InsertMenu() and
+ * ModifyMenu() to setup a MenuItemInfo structure.
+ */
+static void MENU_mnu2mnuii( UINT flags, UINT_PTR id, LPCWSTR str,
+ LPMENUITEMINFOW pmii)
+{
+ ZeroMemory( pmii, sizeof( MENUITEMINFOW));
+ pmii->cbSize = sizeof( MENUITEMINFOW);
+ pmii->fMask = MIIM_STATE | MIIM_ID | MIIM_FTYPE;
+ /* setting bitmap clears text and vice versa */
+ if( IS_STRING_ITEM(flags)) {
+ pmii->fMask |= MIIM_STRING | MIIM_BITMAP;
+ if( !str)
+ flags |= MF_SEPARATOR;
+ /* Item beginning with a backspace is a help item */
+ /* FIXME: wrong place, this is only true in win16 */
+ else if( *str == '\b') {
+ flags |= MF_HELP;
+ str++;
+ }
+ pmii->dwTypeData = (LPWSTR)str;
+ } else if( flags & MFT_BITMAP){
+ pmii->fMask |= MIIM_BITMAP | MIIM_STRING;
+ pmii->hbmpItem = (HBITMAP)(ULONG_PTR)(LOWORD(str));
+ }
+ if( flags & MF_OWNERDRAW){
+ pmii->fMask |= MIIM_DATA;
+ pmii->dwItemData = (ULONG_PTR) str;
+ }
+ if( flags & MF_POPUP) {
+ pmii->fMask |= MIIM_SUBMENU;
+ pmii->hSubMenu = (HMENU)id;
+ }
+ if( flags & MF_SEPARATOR) flags |= MF_GRAYED | MF_DISABLED;
+ pmii->fState = flags & MENUITEMINFO_STATE_MASK & ~MFS_DEFAULT;
+ pmii->fType = flags & MENUITEMINFO_TYPE_MASK;
+ pmii->wID = (UINT)id;
+}
+
+
/*******************************************************************
* InsertMenuW (USER32.@)
*/
@@ -3835,6 +3812,7 @@
UINT_PTR id, LPCWSTR str )
{
MENUITEM *item;
+ MENUITEMINFOW mii;
if (IS_STRING_ITEM(flags) && str)
TRACE("hMenu %p, pos %d, flags %08x, id %04lx, str %s\n",
@@ -3843,8 +3821,8 @@
hMenu, pos, flags, id, str );
if (!(item = MENU_InsertItem( hMenu, pos, flags ))) return FALSE;
-
- if (!(MENU_SetItemData( item, flags, id, str )))
+ MENU_mnu2mnuii( flags, id, str, &mii);
+ if (!(SetMenuItemInfo_common( item, &mii, TRUE)))
{
RemoveMenu( hMenu, pos, flags );
return FALSE;
@@ -3956,6 +3934,7 @@
UINT_PTR id, LPCWSTR str )
{
MENUITEM *item;
+ MENUITEMINFOW mii;
if (IS_STRING_ITEM(flags))
TRACE("%p %d %04x %04lx %s\n", hMenu, pos, flags, id, debugstr_w(str)
);
@@ -3964,7 +3943,8 @@
if (!(item = MENU_FindItem( &hMenu, &pos, flags ))) return FALSE;
MENU_GetMenu(hMenu)->Height = 0; /* force size recalculate */
- return MENU_SetItemData( item, flags, id, str );
+ MENU_mnu2mnuii( flags, id, str, &mii);
+ return SetMenuItemInfo_common( item, &mii, TRUE);
}
@@ -4671,7 +4651,38 @@
/**********************************************************************
+ * MENU_depth
+ *
+ * detect if there are loops in the menu tree (or the depth is too large)
+ */
+static int MENU_depth( POPUPMENU *pmenu, int depth)
+{
+ int i;
+ MENUITEM *item;
+ int subdepth;
+
+ depth++;
+ if( depth > MAXMENUDEPTH) return depth;
+ item = pmenu->items;
+ subdepth = depth;
+ for( i = 0; i < pmenu->nItems && subdepth <= MAXMENUDEPTH; i++,
item++){
+ POPUPMENU *psubmenu = item->hSubMenu ? MENU_GetMenu( item->hSubMenu) :
NULL;
+ if( psubmenu){
+ int bdepth = MENU_depth( psubmenu, depth);
+ if( bdepth > subdepth) subdepth = bdepth;
+ }
+ if( subdepth > MAXMENUDEPTH)
+ TRACE("<- hmenu %p\n", item->hSubMenu);
+ }
+ return subdepth;
+}
+
+
+/**********************************************************************
* SetMenuItemInfo_common
+ *
+ * Note: does not support the MIIM_TYPE flag. Use the MIIM_FTYPE,
+ * MIIM_BITMAP and MIIM_STRING flags instead.
*/
static BOOL SetMenuItemInfo_common(MENUITEM * menu,
@@ -4682,30 +4693,7 @@
debug_print_menuitem("SetMenuItemInfo_common from: ", menu, "");
- if (lpmii->fMask & MIIM_TYPE ) {
- if( lpmii->fMask & ( MIIM_STRING | MIIM_FTYPE | MIIM_BITMAP)) {
- WARN("invalid combination of fMask bits used\n");
- /* this does not happen on Win9x/ME */
- SetLastError( ERROR_INVALID_PARAMETER);
- return FALSE;
- }
-
- /* Remove the old type bits and replace them with the new ones */
- menu->fType &= ~MENUITEMINFO_TYPE_MASK;
- menu->fType |= lpmii->fType & MENUITEMINFO_TYPE_MASK;
-
- if (IS_STRING_ITEM(menu->fType)) {
- HeapFree(GetProcessHeap(), 0, menu->text);
- set_menu_item_text( menu, lpmii->dwTypeData, unicode );
- } else if( (menu->fType) & MFT_BITMAP)
- menu->hbmpItem = (HBITMAP)(ULONG_PTR)(LOWORD(lpmii->dwTypeData));
- }
-
if (lpmii->fMask & MIIM_FTYPE ) {
- if(( lpmii->fType & MFT_BITMAP)) {
- SetLastError( ERROR_INVALID_PARAMETER);
- return FALSE;
- }
menu->fType &= ~MENUITEMINFO_TYPE_MASK;
menu->fType |= lpmii->fType & MENUITEMINFO_TYPE_MASK;
}
@@ -4716,11 +4704,9 @@
}
if (lpmii->fMask & MIIM_STATE)
- {
/* Other menu items having MFS_DEFAULT are not converted
to normal items */
menu->fState = lpmii->fState & MENUITEMINFO_STATE_MASK;
- }
if (lpmii->fMask & MIIM_ID)
menu->wID = lpmii->wID;
@@ -4730,10 +4716,14 @@
if (menu->hSubMenu) {
POPUPMENU *subMenu = MENU_GetMenu(menu->hSubMenu);
if (subMenu) {
+ if( MENU_depth( subMenu, 0) > MAXMENUDEPTH) {
+ ERR( "Loop detected in menu hierarchy or maximum menu depth
exceeded!\n");
+ menu->hSubMenu = 0;
+ return FALSE;
+ }
subMenu->wFlags |= MF_POPUP;
menu->fType |= MF_POPUP;
- }
- else {
+ } else {
SetLastError( ERROR_INVALID_PARAMETER);
return FALSE;
}
@@ -4761,27 +4751,63 @@
}
/**********************************************************************
+ * MENU_NormalizeMenuItemInfoStruct
+ *
+ * Helper for SetMenuItemInfo and InsertMenuItemInfo:
+ * check, copy and extend the MENUITEMINFO struct from the version that the application
+ * supplied to the version used by wine source. */
+static BOOL MENU_NormalizeMenuItemInfoStruct( const MENUITEMINFOW *pmii_in,
+ MENUITEMINFOW *pmii_out )
+{
+ /* do we recognize the size? */
+ if( pmii_in->cbSize != sizeof( MENUITEMINFOW) &&
+ pmii_in->cbSize != sizeof( MENUITEMINFOW) - sizeof( pmii_in->hbmpItem))
{
+ SetLastError( ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ /* copy the fields that we have */
+ memcpy( pmii_out, pmii_in, pmii_in->cbSize);
+ /* if the hbmpItem member is missing then extend */
+ if( pmii_in->cbSize != sizeof( MENUITEMINFOW)) {
+ pmii_out->cbSize = sizeof( MENUITEMINFOW);
+ pmii_out->hbmpItem = NULL;
+ }
+ /* test for invalid bit combinations */
+ if( (pmii_out->fMask & MIIM_TYPE &&
+ pmii_out->fMask & (MIIM_STRING | MIIM_FTYPE | MIIM_BITMAP)) ||
+ (pmii_out->fMask & MIIM_FTYPE && pmii_out->fType &
MFT_BITMAP)) {
+ WARN("invalid combination of fMask bits used\n");
+ /* this does not happen on Win9x/ME */
+ SetLastError( ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ /* convert old style (MIIM_TYPE) to the new */
+ if( pmii_out->fMask & MIIM_TYPE){
+ pmii_out->fMask |= MIIM_FTYPE;
+ if( IS_STRING_ITEM(pmii_out->fType)){
+ pmii_out->fMask |= MIIM_STRING;
+ } else if( (pmii_out->fType) & MFT_BITMAP){
+ pmii_out->fMask |= MIIM_BITMAP;
+ pmii_out->hbmpItem =
(HBITMAP)(ULONG_PTR)(LOWORD(pmii_out->dwTypeData));
+ }
+ }
+ return TRUE;
+}
+
+/**********************************************************************
* SetMenuItemInfoA (USER32.@)
*/
BOOL WINAPI SetMenuItemInfoA(HMENU hmenu, UINT item, BOOL bypos,
const MENUITEMINFOA *lpmii)
{
- MENUITEMINFOA mii;
+ MENUITEMINFOW mii;
TRACE("hmenu %p, item %u, by pos %d, info %p\n", hmenu, item, bypos,
lpmii);
- if( lpmii->cbSize != sizeof( mii) &&
- lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) {
- SetLastError( ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- memcpy( &mii, lpmii, lpmii->cbSize);
- if( lpmii->cbSize != sizeof( mii)) {
- mii.cbSize = sizeof( mii);
- mii.hbmpItem = NULL;
- }
+ if (!MENU_NormalizeMenuItemInfoStruct( (MENUITEMINFOW *)lpmii, &mii )) return
FALSE;
+
return SetMenuItemInfo_common(MENU_FindItem(&hmenu, &item, bypos?
MF_BYPOSITION : 0),
- (const MENUITEMINFOW *)&mii, FALSE);
+ &mii, FALSE);
}
/**********************************************************************
@@ -4794,16 +4820,7 @@
TRACE("hmenu %p, item %u, by pos %d, info %p\n", hmenu, item, bypos,
lpmii);
- if( lpmii->cbSize != sizeof( mii) &&
- lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) {
- SetLastError( ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- memcpy( &mii, lpmii, lpmii->cbSize);
- if( lpmii->cbSize != sizeof( mii)) {
- mii.cbSize = sizeof( mii);
- mii.hbmpItem = NULL;
- }
+ if (!MENU_NormalizeMenuItemInfoStruct( lpmii, &mii )) return FALSE;
return SetMenuItemInfo_common(MENU_FindItem(&hmenu,
&item, bypos? MF_BYPOSITION : 0), &mii, TRUE);
}
@@ -4906,23 +4923,14 @@
const MENUITEMINFOA *lpmii)
{
MENUITEM *item;
- MENUITEMINFOA mii;
+ MENUITEMINFOW mii;
TRACE("hmenu %p, item %04x, by pos %d, info %p\n", hMenu, uItem, bypos,
lpmii);
- if( lpmii->cbSize != sizeof( mii) &&
- lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) {
- SetLastError( ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- memcpy( &mii, lpmii, lpmii->cbSize);
- if( lpmii->cbSize != sizeof( mii)) {
- mii.cbSize = sizeof( mii);
- mii.hbmpItem = NULL;
- }
+ if (!MENU_NormalizeMenuItemInfoStruct( (MENUITEMINFOW *)lpmii, &mii )) return
FALSE;
item = MENU_InsertItem(hMenu, uItem, bypos ? MF_BYPOSITION : 0 );
- return SetMenuItemInfo_common(item, (const MENUITEMINFOW *)&mii, FALSE);
+ return SetMenuItemInfo_common(item, &mii, FALSE);
}
@@ -4937,16 +4945,7 @@
TRACE("hmenu %p, item %04x, by pos %d, info %p\n", hMenu, uItem, bypos,
lpmii);
- if( lpmii->cbSize != sizeof( mii) &&
- lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) {
- SetLastError( ERROR_INVALID_PARAMETER);
- return FALSE;
- }
- memcpy( &mii, lpmii, lpmii->cbSize);
- if( lpmii->cbSize != sizeof( mii)) {
- mii.cbSize = sizeof( mii);
- mii.hbmpItem = NULL;
- }
+ if (!MENU_NormalizeMenuItemInfoStruct( lpmii, &mii )) return FALSE;
item = MENU_InsertItem(hMenu, uItem, bypos ? MF_BYPOSITION : 0 );
return SetMenuItemInfo_common(item, &mii, TRUE);
Modified: branches/arwinss/reactos/dll/win32/user32/message.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -3016,12 +3016,23 @@
if (msg->message < WM_KEYFIRST || msg->message > WM_KEYLAST) return
FALSE;
if (msg->message != WM_KEYDOWN && msg->message != WM_SYSKEYDOWN) return
TRUE;
- TRACE_(key)("Translating key %s (%04lx), scancode %02x\n",
- SPY_GetVKeyName(msg->wParam), msg->wParam,
LOBYTE(HIWORD(msg->lParam)));
+ TRACE_(key)("Translating key %s (%04lx), scancode %04x\n",
+ SPY_GetVKeyName(msg->wParam), msg->wParam,
HIWORD(msg->lParam));
+
+ switch (msg->wParam)
+ {
+ case VK_PACKET:
+ message = (msg->message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR;
+ TRACE_(key)("PostMessageW(%p,%s,%04x,%08x)\n",
+ msg->hwnd, SPY_GetMsgName(message, msg->hwnd),
HIWORD(msg->lParam), LOWORD(msg->lParam));
+ PostMessageW( msg->hwnd, message, HIWORD(msg->lParam),
LOWORD(msg->lParam));
+ return TRUE;
#if 0
- if ( msg->wParam == VK_PROCESSKEY )
+ case VK_PROCESSKEY:
return ImmTranslateMessage(msg->hwnd, msg->message, msg->wParam,
msg->lParam);
#endif
+ }
+
GetKeyboardState( state );
/* FIXME : should handle ToUnicode yielding 2 */
switch (ToUnicode(msg->wParam, HIWORD(msg->lParam), state, wp, 2, 0))
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32.rc
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/resources/user32.rc [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/resources/user32.rc [iso-8859-1] Fri Sep 25
20:24:36 2009
@@ -53,13 +53,13 @@
#include "resources/user32_Da.rc"
#include "resources/user32_De.rc"
#include "resources/user32_En.rc"
-#include "resources/user32_Eo.rc"
-#include "resources/user32_Es.rc"
-#include "resources/user32_Fi.rc"
+//#include "resources/user32_Eo.rc"
+//#include "resources/user32_Es.rc"
+//#include "resources/user32_Fi.rc"
#include "resources/user32_Fr.rc"
-#include "resources/user32_Hu.rc"
-#include "resources/user32_It.rc"
-#include "resources/user32_Ko.rc"
+//#include "resources/user32_Hu.rc"
+//#include "resources/user32_It.rc"
+//#include "resources/user32_Ko.rc"
#include "resources/user32_Lt.rc"
#include "resources/user32_Nl.rc"
//#include "resources/user32_No.rc"
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc [iso-8859-1]
(original)
+++ branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc [iso-8859-1] Fri Sep
25 20:24:36 2009
@@ -19,31 +19,33 @@
#include "resources.h"
+#pragma code_page(65001)
+
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
MENUITEM "&Wiederherstellen", 61728
MENUITEM "&Verschieben", 61456
- MENUITEM "&Größe", 61440
+ MENUITEM "&GröÃe", 61440
MENUITEM "Mi&nimieren", 61472
MENUITEM "Ma&ximieren", 61488
MENUITEM SEPARATOR
- MENUITEM "&Schließen\tAlt-F4", 61536
+ MENUITEM "&SchlieÃen\tAlt-F4", 61536
MENUITEM SEPARATOR
- MENUITEM "&Über Wine...", 61761
+ MENUITEM "&Ãber Wine...", 61761
}
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
POPUP ""
BEGIN
- MENUITEM "&Rückgängig", EM_UNDO
+ MENUITEM "&Rückgängig", EM_UNDO
MENUITEM SEPARATOR
MENUITEM "&Ausschneiden", WM_CUT
MENUITEM "&Kopieren", WM_COPY
- MENUITEM "&Einfügen", WM_PASTE
- MENUITEM "&Löschen", WM_CLEAR
+ MENUITEM "&Einfügen", WM_PASTE
+ MENUITEM "&Löschen", WM_CLEAR
MENUITEM SEPARATOR
MENUITEM "&Alles markieren", EM_SETSEL
END
@@ -54,21 +56,21 @@
BEGIN
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP |
SS_NOPREFIX
- PUSHBUTTON "&OK", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "&Abbrechen", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "Abbr&uch", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "&Wiederholen", 4, 160, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
- 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
+ PUSHBUTTON "&OK", 1, 16, 56, 60, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Abbrechen", 2, 84, 56, 60, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "Abbr&uch", 3, 152, 56, 60, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Wiederholen", 4, 220, 56, 60, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&Ignorieren", 5, 288, 56, 60, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
+ PUSHBUTTON "&Ja", 6, 356, 56, 60, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Nein", 7, 424, 56, 60, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Erneut versuchen", 10, 492, 56, 60, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&Fortsetzen", 11, 560, 56, 60, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "Hilfe", 9, 628, 56, 60, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Fenster auswählen"
+CAPTION "Fenster auswählen"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in
mdi.h */
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc [iso-8859-1]
(original)
+++ branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc [iso-8859-1] Fri Sep
25 20:24:36 2009
@@ -1,5 +1,5 @@
/*
- * User
+ * User32
* French language support
*
* Copyright 1995 Alexandre Julliard
@@ -21,19 +21,22 @@
#include "resources.h"
+/* UTF-8 */
+#pragma code_page(65001)
+
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
MENUITEM "&Restauration", 61728
- MENUITEM "&Déplacement", 61456
+ MENUITEM "&Déplacement", 61456
MENUITEM "Di&mension", 61440
- MENUITEM "Réduct&ion", 61472
+ MENUITEM "Réduct&ion", 61472
MENUITEM "&Agrandissement", 61488
MENUITEM SEPARATOR
MENUITEM "&Fermeture\tAlt-F4", 61536
MENUITEM SEPARATOR
- MENUITEM "À propos de &Wine...", 61761
+ MENUITEM "Ã propos de &Wine...", 61761
}
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE
@@ -42,12 +45,12 @@
BEGIN
MENUITEM "&Annuler", EM_UNDO
MENUITEM SEPARATOR
- MENUITEM "Coupe&r", WM_CUT
- MENUITEM "&Copier", WM_COPY
+ MENUITEM "&Couper", WM_CUT
+ MENUITEM "Co&pier", WM_COPY
MENUITEM "C&oller", WM_PASTE
MENUITEM "E&ffacer", WM_CLEAR
MENUITEM SEPARATOR
- MENUITEM "Tout &sélectionner", EM_SETSEL
+ MENUITEM "&Tout sélectionner", EM_SETSEL
END
}
@@ -58,19 +61,19 @@
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP |
SS_NOPREFIX
PUSHBUTTON "&Ok", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
PUSHBUTTON "&Annuler", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "&Annuler", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "&Répéter", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "A&bandonner", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
+ PUSHBUTTON "Ré&péter", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
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
+ PUSHBUTTON "&Réessayer", 10, 352, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&Continuer", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
+ PUSHBUTTON "Aide", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Sélection de fenêtre"
+CAPTION "Sélection de fenêtre"
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in
mdi.h */
@@ -82,5 +85,5 @@
STRINGTABLE DISCARDABLE
{
IDS_ERROR "Erreur"
- IDS_MDI_MOREWINDOWS "&Plus de fenêtres..."
+ IDS_MDI_MOREWINDOWS "&Plus de fenêtres..."
}
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc [iso-8859-1]
(original)
+++ branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc [iso-8859-1] Fri Sep
25 20:24:36 2009
@@ -1,6 +1,7 @@
/*
* Copyright 1997 Ricardo R. Massaro
- * Copyright 2006 Américo José Melo
+ * Copyright 2006 Américo José Melo
+ * Copyright 2009 Ricardo Filipe
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -18,6 +19,8 @@
*/
#include "resources.h"
+
+#pragma code_page(65001)
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
@@ -85,23 +88,23 @@
}
-LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
+LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
MSGBOX DIALOG 100, 80, 216, 168
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
BEGIN
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP |
SS_NOPREFIX
- PUSHBUTTON "&Ok", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&OK", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
PUSHBUTTON "&Cancelar", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
PUSHBUTTON "&Abortar", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
PUSHBUTTON "&Repetir", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
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
+ PUSHBUTTON "&Não", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Tente Novamente", 10, 352, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&Continuar", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
+ PUSHBUTTON "Ajuda", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
END
@@ -130,7 +133,7 @@
END
-LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
+LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc [iso-8859-1]
(original)
+++ branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc [iso-8859-1] Fri Sep
25 20:24:36 2009
@@ -18,33 +18,36 @@
#include "resources.h"
+/* UTF-8 */
+#pragma code_page(65001)
+
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
- MENUITEM "&Âîññòàíîâèòü", 61728
- MENUITEM "&Ïåðåìåñòèòü", 61456
- MENUITEM "Ðàç&ìåð", 61440
- MENUITEM "&Ñâåðíóòü", 61472
- MENUITEM "&Ðàçâåðíóòü", 61488
+ MENUITEM "&ÐоÑÑÑановиÑÑ", 61728
+ MENUITEM "&ÐеÑемеÑÑиÑÑ", 61456
+ MENUITEM "Раз&меÑ", 61440
+ MENUITEM "&СвеÑнÑÑÑ", 61472
+ MENUITEM "&РазвеÑнÑÑÑ", 61488
MENUITEM SEPARATOR
- MENUITEM "&Çàêðûòü\tAlt-F4", 61536
+ MENUITEM "&ÐакÑÑÑÑ\tAlt-F4", 61536
MENUITEM SEPARATOR
- MENUITEM "&Î ïðîåêòå Wine...", 61761
+ MENUITEM "&РпÑоекÑе Wine...", 61761
}
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE
{
POPUP ""
BEGIN
- MENUITEM "&Îòìåíèòü", EM_UNDO
+ MENUITEM "&ÐÑмениÑÑ", EM_UNDO
MENUITEM SEPARATOR
- MENUITEM "&Âûðåçàòü", WM_CUT
- MENUITEM "&Êîïèðîâàòü", WM_COPY
- MENUITEM "Âñò&àâèòü", WM_PASTE
- MENUITEM "&Óäàëèòü", WM_CLEAR
+ MENUITEM "&ÐÑÑезаÑÑ", WM_CUT
+ MENUITEM "&ÐопиÑоваÑÑ", WM_COPY
+ MENUITEM "ÐÑÑ&авиÑÑ", WM_PASTE
+ MENUITEM "&УдалиÑÑ", WM_CLEAR
MENUITEM SEPARATOR
- MENUITEM "Âûäåëèòü â&ñå", EM_SETSEL
+ MENUITEM "ÐÑделиÑÑ Ð²&Ñе", EM_SETSEL
END
}
@@ -54,15 +57,15 @@
ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP |
SS_NOPREFIX
PUSHBUTTON "&OK", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "Î&òìåíà", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "&Îòìåíèòü", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- PUSHBUTTON "Ïî&âòîð", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
- 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 "Ïî&âòîðèòü", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
- PUSHBUTTON "Ï&ðîëîæèòü", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE
| WS_TABSTOP
- PUSHBUTTON "Ïîìîùü", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "Ð&Ñмена", 2, 64, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "&ÐÑмениÑÑ", 3, 112, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "Ðо&вÑоÑ", 4, 160, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ 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 "Ðо&вÑоÑиÑÑ", 10, 352, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "Ð&ÑоложиÑÑ", 11, 400, 56, 40, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "ÐомоÑÑ", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122
@@ -72,12 +75,12 @@
BEGIN
LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in
mdi.h */
DEFPUSHBUTTON "OK", IDOK, 75, 100, 35, 14
- PUSHBUTTON "Îòìåíèòü", IDCANCEL, 120, 100, 35, 14
+ PUSHBUTTON "ÐÑмениÑÑ", IDCANCEL, 120, 100, 35, 14
END
STRINGTABLE DISCARDABLE
{
- IDS_ERROR "ÎØÈÁÊÀ"
- IDS_MDI_MOREWINDOWS "&Åù¸ îêíà..."
+ IDS_ERROR "ÐШÐÐÐÐ"
+ IDS_MDI_MOREWINDOWS "&ÐÑÑ Ð¾ÐºÐ½Ð°..."
}
Modified: branches/arwinss/reactos/dll/win32/user32/spy.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/spy.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/spy.c [iso-8859-1] Fri Sep 25 20:24:36 2009
@@ -731,7 +731,7 @@
};
-#define SPY_MAX_LVMMSGNUM 140
+#define SPY_MAX_LVMMSGNUM 182
static const char * const LVMMessageTypeNames[SPY_MAX_LVMMSGNUM + 1] =
{
"LVM_GETBKCOLOR", /* 1000 */
@@ -872,9 +872,51 @@
NULL,
NULL,
NULL,
- NULL,
"LVM_SETBKIMAGEW",
- "LVM_GETBKIMAGEW" /* 0x108B */
+ "LVM_GETBKIMAGEW", /* 0x108B */
+ "LVM_SETSELECTEDCOLUMN",
+ "LVM_SETTILEWIDTH",
+ "LVM_SETVIEW",
+ "LVM_GETVIEW",
+ NULL,
+ "LVM_INSERTGROUP",
+ NULL,
+ "LVM_SETGROUPINFO",
+ NULL,
+ "LVM_GETGROUPINFO",
+ "LVM_REMOVEGROUP",
+ "LVM_MOVEGROUP",
+ NULL,
+ NULL,
+ "LVM_MOVEITEMTOGROUP",
+ "LVM_SETGROUPMETRICS",
+ "LVM_GETGROUPMETRICS",
+ "LVM_ENABLEGROUPVIEW",
+ "LVM_SORTGROUPS",
+ "LVM_INSERTGROUPSORTED",
+ "LVM_REMOVEALLGROUPS",
+ "LVM_HASGROUP",
+ "LVM_SETTILEVIEWINFO",
+ "LVM_GETTILEVIEWINFO",
+ "LVM_SETTILEINFO",
+ "LVM_GETTILEINFO",
+ "LVM_SETINSERTMARK",
+ "LVM_GETINSERTMARK",
+ "LVM_INSERTMARKHITTEST",
+ "LVM_GETINSERTMARKRECT",
+ "LVM_SETINSERTMARKCOLOR",
+ "LVM_GETINSERTMARKCOLOR",
+ NULL,
+ "LVM_SETINFOTIP",
+ "LVM_GETSELECTEDCOLUMN",
+ "LVM_ISGROUPVIEWENABLED",
+ "LVM_GETOUTLINECOLOR",
+ "LVM_SETOUTLINECOLOR",
+ NULL,
+ "LVM_CANCELEDITLABEL",
+ "LVM_MAPINDEXTOID",
+ "LVM_MAPIDTOINDEX",
+ "LVM_ISITEMVISIBLE"
};
@@ -1328,7 +1370,7 @@
"VK_ICO_00", /* 0xE4 */
"VK_PROCESSKEY", /* 0xE5 */
NULL, /* 0xE6 */
- NULL, /* 0xE7 */
+ "VK_PACKET", /* 0xE7 */
NULL, /* 0xE8 */
NULL, /* 0xE9 */
NULL, /* 0xEA */
Modified: branches/arwinss/reactos/dll/win32/user32/win.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] Fri Sep 25 20:24:36 2009
@@ -1780,6 +1780,7 @@
static const WCHAR command_line[] =
{'\\','e','x','p','l','o','r','e','r','.','e','x','e','
','/','d','e','s','k','t','o','p',0};
STARTUPINFOW si;
PROCESS_INFORMATION pi;
+ WCHAR systemdir[MAX_PATH];
WCHAR cmdline[MAX_PATH + sizeof(command_line)/sizeof(WCHAR)];
memset( &si, 0, sizeof(si) );
@@ -1789,10 +1790,11 @@
si.hStdOutput = 0;
si.hStdError = GetStdHandle( STD_ERROR_HANDLE );
- GetSystemDirectoryW( cmdline, MAX_PATH );
+ GetSystemDirectoryW( systemdir, MAX_PATH );
+ lstrcpyW( cmdline, systemdir );
lstrcatW( cmdline, command_line );
if (CreateProcessW( NULL, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS,
- NULL, NULL, &si, &pi ))
+ NULL, systemdir, &si, &pi ))
{
TRACE( "started explorer pid %04x tid %04x\n", pi.dwProcessId,
pi.dwThreadId );
WaitForInputIdle( pi.hProcess, 10000 );
Modified: branches/arwinss/reactos/dll/win32/user32/winpos.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/winpos.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/winpos.c [iso-8859-1] Fri Sep 25 20:24:36
2009
@@ -86,9 +86,10 @@
/***********************************************************************
* SwitchToThisWindow (USER32.@)
*/
-void WINAPI SwitchToThisWindow( HWND hwnd, BOOL restore )
-{
- ShowWindow( hwnd, restore ? SW_RESTORE : SW_SHOWMINIMIZED );
+void WINAPI SwitchToThisWindow( HWND hwnd, BOOL alt_tab )
+{
+ if (IsIconic( hwnd )) ShowWindow( hwnd, SW_RESTORE );
+ else BringWindowToTop( hwnd );
}
@@ -1078,14 +1079,18 @@
/* should happen only in CreateWindowEx() */
int wParam = SIZE_RESTORED;
RECT client = wndPtr->rectClient;
+ LPARAM lparam = MAKELONG( client.right - client.left, client.bottom - client.top
);
wndPtr->flags &= ~WIN_NEED_SIZE;
if (wndPtr->dwStyle & WS_MAXIMIZE) wParam = SIZE_MAXIMIZED;
- else if (wndPtr->dwStyle & WS_MINIMIZE) wParam = SIZE_MINIMIZED;
+ else if (wndPtr->dwStyle & WS_MINIMIZE)
+ {
+ wParam = SIZE_MINIMIZED;
+ lparam = 0;
+ }
WIN_ReleasePtr( wndPtr );
- SendMessageW( hwnd, WM_SIZE, wParam,
- MAKELONG( client.right - client.left, client.bottom - client.top
));
+ SendMessageW( hwnd, WM_SIZE, wParam, lparam );
SendMessageW( hwnd, WM_MOVE, 0, MAKELONG( client.left, client.top ));
}
else WIN_ReleasePtr( wndPtr );
Modified: branches/arwinss/reactos/include/reactos/wine/server_protocol.h
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos…
==============================================================================
--- branches/arwinss/reactos/include/reactos/wine/server_protocol.h [iso-8859-1]
(original)
+++ branches/arwinss/reactos/include/reactos/wine/server_protocol.h [iso-8859-1] Fri Sep
25 20:24:36 2009
@@ -140,7 +140,7 @@
{
struct { unsigned int eip, ebp, esp, eflags, cs, ss; } i386_regs;
struct { unsigned __int64 rip, rbp, rsp;
- unsigned int cs, ss, flags, mxcsr; } x86_64_regs;
+ unsigned int cs, ss, flags; } x86_64_regs;
struct { unsigned __int64 fir;
unsigned int psr; } alpha_regs;
struct { unsigned int iar, msr, ctr, lr, dar, dsisr, trap; } powerpc_regs;
@@ -206,6 +206,42 @@
typedef __int64 timeout_t;
#define TIMEOUT_INFINITE (((timeout_t)0x7fffffff) << 32 | 0xffffffff)
+
+
+typedef struct
+{
+ unsigned int debug_flags;
+ unsigned int console_flags;
+ obj_handle_t console;
+ obj_handle_t hstdin;
+ obj_handle_t hstdout;
+ obj_handle_t hstderr;
+ unsigned int x;
+ unsigned int y;
+ unsigned int xsize;
+ unsigned int ysize;
+ unsigned int xchars;
+ unsigned int ychars;
+ unsigned int attribute;
+ unsigned int flags;
+ unsigned int show;
+ data_size_t curdir_len;
+ data_size_t dllpath_len;
+ data_size_t imagepath_len;
+ data_size_t cmdline_len;
+ data_size_t title_len;
+ data_size_t desktop_len;
+ data_size_t shellinfo_len;
+ data_size_t runtime_len;
+
+
+
+
+
+
+
+
+} startup_info_t;
typedef struct
@@ -532,14 +568,12 @@
unsigned int create_flags;
int socket_fd;
obj_handle_t exe_file;
- obj_handle_t hstdin;
- obj_handle_t hstdout;
- obj_handle_t hstderr;
unsigned int process_access;
unsigned int process_attr;
unsigned int thread_access;
unsigned int thread_attr;
- /* VARARG(info,startup_info); */
+ data_size_t info_size;
+ /* VARARG(info,startup_info,info_size); */
/* VARARG(env,unicode_str); */
};
struct new_process_reply
@@ -594,10 +628,8 @@
{
struct reply_header __header;
obj_handle_t exe_file;
- obj_handle_t hstdin;
- obj_handle_t hstdout;
- obj_handle_t hstderr;
- /* VARARG(info,startup_info); */
+ data_size_t info_size;
+ /* VARARG(info,startup_info,info_size); */
/* VARARG(env,unicode_str); */
};
@@ -690,6 +722,8 @@
timeout_t end_time;
int exit_code;
int priority;
+ cpu_type_t cpu;
+ char __pad_60[4];
};
@@ -2854,6 +2888,9 @@
{
struct request_header __header;
obj_handle_t handle;
+ client_ptr_t iosb;
+ int only_thread;
+ char __pad_28[4];
};
struct cancel_async_reply
{
@@ -5307,6 +5344,6 @@
struct set_window_layered_info_reply set_window_layered_info_reply;
};
-#define SERVER_PROTOCOL_VERSION 386
+#define SERVER_PROTOCOL_VERSION 390
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
Modified: branches/arwinss/reactos/subsystems/win32/win32k/include/request.h
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win3…
==============================================================================
--- branches/arwinss/reactos/subsystems/win32/win32k/include/request.h [iso-8859-1]
(original)
+++ branches/arwinss/reactos/subsystems/win32/win32k/include/request.h [iso-8859-1] Fri
Sep 25 20:24:36 2009
@@ -589,13 +589,11 @@
C_ASSERT( FIELD_OFFSET(struct new_process_request, create_flags) == 16 );
C_ASSERT( FIELD_OFFSET(struct new_process_request, socket_fd) == 20 );
C_ASSERT( FIELD_OFFSET(struct new_process_request, exe_file) == 24 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, hstdin) == 28 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, hstdout) == 32 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, hstderr) == 36 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, process_access) == 40 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, process_attr) == 44 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_access) == 48 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_attr) == 52 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, process_access) == 28 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, process_attr) == 32 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_access) == 36 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_attr) == 40 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, info_size) == 44 );
C_ASSERT( FIELD_OFFSET(struct new_process_reply, info) == 8 );
C_ASSERT( FIELD_OFFSET(struct new_process_reply, pid) == 12 );
C_ASSERT( FIELD_OFFSET(struct new_process_reply, phandle) == 16 );
@@ -614,10 +612,8 @@
C_ASSERT( FIELD_OFFSET(struct new_thread_reply, handle) == 12 );
C_ASSERT( sizeof(struct new_thread_reply) == 16 );
C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, exe_file) == 8 );
-C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, hstdin) == 12 );
-C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, hstdout) == 16 );
-C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, hstderr) == 20 );
-C_ASSERT( sizeof(struct get_startup_info_reply) == 24 );
+C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, info_size) == 12 );
+C_ASSERT( sizeof(struct get_startup_info_reply) == 16 );
C_ASSERT( FIELD_OFFSET(struct init_process_done_request, gui) == 12 );
C_ASSERT( FIELD_OFFSET(struct init_process_done_request, module) == 16 );
C_ASSERT( FIELD_OFFSET(struct init_process_done_request, ldt_copy) == 24 );
@@ -656,7 +652,8 @@
C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, end_time) == 40 );
C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, exit_code) == 48 );
C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, priority) == 52 );
-C_ASSERT( sizeof(struct get_process_info_reply) == 56 );
+C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, cpu) == 56 );
+C_ASSERT( sizeof(struct get_process_info_reply) == 64 );
C_ASSERT( FIELD_OFFSET(struct set_process_info_request, handle) == 12 );
C_ASSERT( FIELD_OFFSET(struct set_process_info_request, mask) == 16 );
C_ASSERT( FIELD_OFFSET(struct set_process_info_request, priority) == 20 );
@@ -1312,7 +1309,9 @@
C_ASSERT( FIELD_OFFSET(struct register_async_request, count) == 56 );
C_ASSERT( sizeof(struct register_async_request) == 64 );
C_ASSERT( FIELD_OFFSET(struct cancel_async_request, handle) == 12 );
-C_ASSERT( sizeof(struct cancel_async_request) == 16 );
+C_ASSERT( FIELD_OFFSET(struct cancel_async_request, iosb) == 16 );
+C_ASSERT( FIELD_OFFSET(struct cancel_async_request, only_thread) == 24 );
+C_ASSERT( sizeof(struct cancel_async_request) == 32 );
C_ASSERT( FIELD_OFFSET(struct ioctl_request, code) == 12 );
C_ASSERT( FIELD_OFFSET(struct ioctl_request, async) == 16 );
C_ASSERT( FIELD_OFFSET(struct ioctl_request, blocking) == 56 );
Propchange: branches/arwinss/reactos/subsystems/win32/win32k/include/request.h
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Sep 25 20:24:36 2009
@@ -1,0 +1,3 @@
+/branches/ros-amd64-bringup/reactos/subsystems/win32/win32k/include/request.h:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080
+/trunk/reactos/subsystems/win32/win32k/include/request.h:42000-43126
+/vendor/wine/server/current/request.h:43136