Index: shell32_Cs.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Cs.rc,v
retrieving revision 1.9
diff -u -r1.9 shell32_Cs.rc
--- shell32_Cs.rc	9 Dec 2004 11:39:31 -0000	1.9
+++ shell32_Cs.rc	22 Jun 2005 03:23:56 -0000
@@ -76,6 +76,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "&Vybrat",			FCIDM_SHVIEW_OPEN
 	  MENUITEM "P&rozkoumat",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "O&tev����t",			FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -85,7 +86,6 @@
 	  MENUITEM "Vytvo��it z��stupc&e",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "O&dstranit",		FCIDM_SHVIEW_DELETE
 	  MENUITEM "&P��ejmenovat",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&Vlastnosti",		FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_De.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_De.rc,v
retrieving revision 1.17
diff -u -r1.17 shell32_De.rc
--- shell32_De.rc	25 Apr 2005 10:56:29 -0000	1.17
+++ shell32_De.rc	22 Jun 2005 03:23:56 -0000
@@ -76,8 +76,9 @@
 BEGIN
 	POPUP ""
 	BEGIN
-	  MENUITEM "E&rkunden",		FCIDM_SHVIEW_EXPLORE
-	  MENUITEM "&��ffnen",		FCIDM_SHVIEW_OPEN
+	  MENUITEM "&Ausw��hlen",		FCIDM_SHVIEW_OPEN
+	  MENUITEM "&Explorer",		FCIDM_SHVIEW_EXPLORE
+	  MENUITEM "��&ffnen",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
 	  MENUITEM "&Ausschneiden",		FCIDM_SHVIEW_CUT
 	  MENUITEM "&Kopieren",		FCIDM_SHVIEW_COPY
@@ -85,7 +86,6 @@
 	  MENUITEM "Erstelle Ver&weis",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "&L��schen",		FCIDM_SHVIEW_DELETE
 	  MENUITEM "&Umbenennen",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&Eigenschaften",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_En.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_En.rc,v
retrieving revision 1.21
diff -u -r1.21 shell32_En.rc
--- shell32_En.rc	6 May 2005 15:44:32 -0000	1.21
+++ shell32_En.rc	22 Jun 2005 03:23:56 -0000
@@ -75,6 +75,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "&Select",		FCIDM_SHVIEW_OPEN
 	  MENUITEM "E&xplore",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "&Open",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -84,7 +85,6 @@
 	  MENUITEM "Create &Link",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "&Delete",		FCIDM_SHVIEW_DELETE
 	  MENUITEM "&Rename",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&Properties",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_Es.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Es.rc,v
retrieving revision 1.14
diff -u -r1.14 shell32_Es.rc
--- shell32_Es.rc	16 Feb 2005 21:11:00 -0000	1.14
+++ shell32_Es.rc	22 Jun 2005 03:23:56 -0000
@@ -76,6 +76,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "&Seleccionar",              FCIDM_SHVIEW_OPEN
 	  MENUITEM "E&xplorar",			FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "&Abrir",			FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -85,7 +86,6 @@
 	  MENUITEM "C&rear acceso directo",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "&Eliminar",			FCIDM_SHVIEW_DELETE
 	  MENUITEM "Re&nombrar",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&Propiedades",		FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_Fr.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Fr.rc,v
retrieving revision 1.14
diff -u -r1.14 shell32_Fr.rc
--- shell32_Fr.rc	9 Dec 2004 11:39:31 -0000	1.14
+++ shell32_Fr.rc	22 Jun 2005 03:23:57 -0000
@@ -78,6 +78,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "&S��lectionner",      FCIDM_SHVIEW_OPEN
 	  MENUITEM "E&xplorer",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "&Ouvrir",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -87,7 +88,6 @@
 	  MENUITEM "Cr��er un &lien",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "&Supprimer",	FCIDM_SHVIEW_DELETE
 	  MENUITEM "&Renommer",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&Propri��t��s",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_It.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_It.rc,v
retrieving revision 1.14
diff -u -r1.14 shell32_It.rc
--- shell32_It.rc	9 Dec 2004 11:39:31 -0000	1.14
+++ shell32_It.rc	22 Jun 2005 03:23:57 -0000
@@ -76,6 +76,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "&Selezione",        FCIDM_SHVIEW_OPEN
 	  MENUITEM "E&splora",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "&Apri",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -85,7 +86,6 @@
 	  MENUITEM "&Crea Collegamento",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "&Cancella",		FCIDM_SHVIEW_DELETE
 	  MENUITEM "&Rinomina",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&Propriet��",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_Ja.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Ja.rc,v
retrieving revision 1.10
diff -u -r1.10 shell32_Ja.rc
--- shell32_Ja.rc	9 Dec 2004 11:39:31 -0000	1.10
+++ shell32_Ja.rc	22 Jun 2005 03:23:57 -0000
@@ -65,13 +65,15 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "��I���� (&S)",		FCIDM_SHVIEW_OPEN
+	  MENUITEM "��J����"				FCIDM_SHVIEW_OPEN
+	  MENUITEM SEPARATOR
 	  MENUITEM "����������������(&U)",		FCIDM_SHVIEW_CUT
 	  MENUITEM "��R��s��[(&C)",	FCIDM_SHVIEW_COPY
 	  MENUITEM SEPARATOR
 	  MENUITEM "��V������[��g��J��b��g������������(&L)",	0x7051
 	  MENUITEM "��������(&D)",	FCIDM_SHVIEW_DELETE
 	  MENUITEM "������O����������X(&R)",	0x7050
-	  MENUITEM SEPARATOR
 	  MENUITEM "��v������p��e��B(&P)",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_Pl.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Pl.rc,v
retrieving revision 1.9
diff -u -r1.9 shell32_Pl.rc
--- shell32_Pl.rc	9 Dec 2004 11:39:31 -0000	1.9
+++ shell32_Pl.rc	22 Jun 2005 03:23:57 -0000
@@ -76,6 +76,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+          MENUITEM "&Zaznacz",          FCIDM_SHVIEW_OPEN
 	  MENUITEM "&Eksploruj",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "&Otw��rz",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -85,7 +86,6 @@
 	  MENUITEM "Utw��rz &Skr��t",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "&Usu��",		FCIDM_SHVIEW_DELETE
 	  MENUITEM "&Zmie�� nazw��",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "W��&a��ciwo��ci",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shell32_Pt.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Pt.rc,v
retrieving revision 1.17
diff -u -r1.17 shell32_Pt.rc
--- shell32_Pt.rc	14 Feb 2005 11:12:30 -0000	1.17
+++ shell32_Pt.rc	22 Jun 2005 03:23:57 -0000
@@ -76,6 +76,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+          MENUITEM "&Selecionar",        FCIDM_SHVIEW_OPEN
 	  MENUITEM "&Explorar",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "A&brir",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -84,7 +85,6 @@
 	  MENUITEM SEPARATOR
 	  MENUITEM "Criar a&talho",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "E&xcluir",		FCIDM_SHVIEW_DELETE
-	  MENUITEM "&Renomear",		FCIDM_SHVIEW_RENAME
 	  MENUITEM SEPARATOR
 	  MENUITEM "&Propriedades",	FCIDM_SHVIEW_PROPERTIES
 	END
Index: shell32_Uk.rc
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_Uk.rc,v
retrieving revision 1.7
diff -u -r1.7 shell32_Uk.rc
--- shell32_Uk.rc	9 Dec 2004 11:39:31 -0000	1.7
+++ shell32_Uk.rc	22 Jun 2005 03:23:58 -0000
@@ -75,6 +75,7 @@
 BEGIN
 	POPUP ""
 	BEGIN
+	  MENUITEM "&����&����������",		FCIDM_SHVIEW_OPEN
 	  MENUITEM "&������������������",		FCIDM_SHVIEW_EXPLORE
 	  MENUITEM "&����������������",		FCIDM_SHVIEW_OPEN
 	  MENUITEM SEPARATOR
@@ -84,7 +85,6 @@
 	  MENUITEM "&���������������� ������������������",	FCIDM_SHVIEW_CREATELINK
 	  MENUITEM "����&������������",		FCIDM_SHVIEW_DELETE
 	  MENUITEM "��������&������������������",		FCIDM_SHVIEW_RENAME
-	  MENUITEM SEPARATOR
 	  MENUITEM "&����������������������",	FCIDM_SHVIEW_PROPERTIES
 	END
 END
Index: shv_item_cmenu.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shv_item_cmenu.c,v
retrieving revision 1.33
diff -u -r1.33 shv_item_cmenu.c
--- shv_item_cmenu.c	9 Jun 2005 09:46:23 -0000	1.33
+++ shv_item_cmenu.c	22 Jun 2005 03:23:58 -0000
@@ -36,6 +36,7 @@
 
 #include "shell32_main.h"
 #include "shellfolder.h"
+#include "shresdef.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
@@ -210,55 +211,75 @@
 
 /**************************************************************************
 * ISvItemCm_fnQueryContextMenu()
-* FIXME: load menu MENU_SHV_FILE out of resources instead if creating
-*		 each menu item by calling _InsertMenuItem()
 */
 static HRESULT WINAPI ISvItemCm_fnQueryContextMenu(
 	IContextMenu2 *iface,
-	HMENU hmenu,
+	HMENU hMenu,
 	UINT indexMenu,
 	UINT idCmdFirst,
 	UINT idCmdLast,
 	UINT uFlags)
 {
+	LPWSTR szString;
+	HMENU hMyMenu, hMySubMenu;
+	HRESULT hr;
+	UINT idMax;
+	MENUITEMINFOW mii;
+
 	ItemCmImpl *This = (ItemCmImpl *)iface;
 
-	TRACE("(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n",This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
+	TRACE("(%p)->(hMenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n",
+	      This, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
 
 	if (idCmdFirst != 0)
-	  FIXME("We should use idCmdFirst=%d and idCmdLast=%d for command ids\n", idCmdFirst, idCmdLast);
+		FIXME("We should use idCmdFirst=%d and idCmdLast=%d for command ids\n", idCmdFirst, idCmdLast);
 
 	if(!(CMF_DEFAULTONLY & uFlags) && This->cidl>0)
 	{
-	  if(!(uFlags & CMF_EXPLORE))
-	    _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_OPEN, MFT_STRING, "&Select", MFS_ENABLED);
-
-	  if(This->bAllValues)
-	  {
-	    _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_OPEN, MFT_STRING, "&Open", MFS_ENABLED);
-	    _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_EXPLORE, MFT_STRING, "&Explore", MFS_ENABLED);
-	  }
-	  else
-	  {
-	    _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_EXPLORE, MFT_STRING, "&Explore", MFS_ENABLED);
-	    _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_OPEN, MFT_STRING, "&Open", MFS_ENABLED);
-	  }
-
-	  SetMenuDefaultItem(hmenu, 0, MF_BYPOSITION);
-
-	  _InsertMenuItem(hmenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
-	  _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_COPY, MFT_STRING, "&Copy", MFS_ENABLED);
-	  _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_CUT, MFT_STRING, "&Cut", MFS_ENABLED);
+		hMyMenu = LoadMenuA(shell32_hInstance, "MENU_SHV_FILE");
+		hMySubMenu = GetSubMenu(hMyMenu, 0);
 
-	  _InsertMenuItem(hmenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
-	  _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_DELETE, MFT_STRING, "&Delete", MFS_ENABLED);
-
-	  if(uFlags & CMF_CANRENAME)
-	    _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_RENAME, MFT_STRING, "&Rename", ISvItemCm_CanRenameItems(This) ? MFS_ENABLED : MFS_DISABLED);
-
-	  return MAKE_HRESULT(SEVERITY_SUCCESS, 0, (FCIDM_SHVIEWLAST));
+		if(!This->bAllValues) { /* Change order of OPEN and EXPLORE */
+			ZeroMemory(&mii, sizeof(mii));
+			mii.fMask  = MIIM_STRING | MIIM_STATE | MIIM_ID | MIIM_BITMAP | MIIM_FTYPE | MIIM_TYPE;
+			mii.cbSize = sizeof(mii);
+			GetMenuItemInfoW(hMySubMenu, 2, TRUE, &mii); /* 2 = Open */
+			mii.cch++;
+			mii.dwTypeData = (LPWSTR)LocalAlloc(LPTR, mii.cch * sizeof(WCHAR));
+			GetMenuItemInfoW(hMySubMenu, 2, TRUE, &mii); /* 2 = Open */
+			RemoveMenu(hMySubMenu, 2, MF_BYPOSITION);
+			InsertMenuItemW(hMySubMenu,  1, TRUE, &mii); /* 1 = Explore */  
+		}
+
+		if(uFlags | CMF_EXPLORE) { /* Remove Select */
+			RemoveMenu(hMySubMenu, 0, MF_BYPOSITION);
+		}
+
+		if(ISvItemCm_CanRenameItems(This) == MFS_DISABLED) {
+			EnableMenuItem(hMyMenu, FCIDM_SHVIEW_RENAME, MFS_DISABLED);
+		}
+
+		if(!(uFlags & SFGAO_CANLINK)) { /* Remove Create Link */
+			RemoveMenu(hMySubMenu, FCIDM_SHVIEW_CREATELINK, MF_BYCOMMAND);
+		}
+
+		if(!(uFlags & SFGAO_HASPROPSHEET)) { /* Remove Properties */
+			RemoveMenu(hMySubMenu, FCIDM_SHVIEW_PROPERTIES, MF_BYCOMMAND);
+		} else { /* add separator before Properties */
+			_InsertMenuItem(hMySubMenu, FCIDM_SHVIEW_PROPERTIES, FALSE, 0, MFT_SEPARATOR, NULL, 0);
+		}
+
+		idMax = Shell_MergeMenus (hMenu, GetSubMenu(hMyMenu,0), indexMenu,
+		                          idCmdFirst, idCmdLast, MM_SUBMENUSHAVEIDS);
+		hr =  MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, idMax-idCmdFirst+1);
+		SetMenuDefaultItem(hMenu, 0, MF_BYPOSITION);
+
+		DestroyMenu(hMyMenu);
+	} else {
+		return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);
 	}
-	return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);
+	TRACE("(%p)->returning 0x%lx\n",This,hr);
+	return hr;
 }
 
 /**************************************************************************
