shell32 [1]: path functions

Filip Navara xnavara at volny.cz
Wed Jan 14 10:44:28 CST 2004


This is mine part of the big shell32 diff that appered last week on this 
list.

Filip

Changelog:

    * dlls/shell32/shellpath.c, dlls/shell32/shell32_Cs.rc:
    Filip Navara <xnavara at volny.cz>
    - Moved actual code from SHGetSpecialFolderPathA to SHGetFolderPathW,
      adjusted and unicodified it.
    - Rewrote SHGetFolderPathA to call SHGetFolderPathW.
    - Rewrote SHGetSpecialFolderPath[AW] to call SHGetFolderPath[AW].
    - Complete Czech translation of shell32 resources.

-------------- next part --------------
--- dlls/shell32/shellpath.c	Wed Dec 31 15:08:48 2003
+++ dlls/shell32/shellpath.c	Wed Dec 31 14:46:00 2003
@@ -676,21 +676,16 @@
             PathSetDlgItemPathA(hDlg, id, pszPath);
 }
 
-
 /*************************************************************************
- * SHGetSpecialFolderPathA [SHELL32.@]
+ * SHGetFolderPathW			[SHELL32.@]
  *
  * converts csidl to path
  */
 
-static const char * const szSHFolders = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
-static const char * const szSHUserFolders = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders";
-static const char * const szSetup = "Software\\Microsoft\\Windows\\CurrentVersion\\Setup";
-static const char * const szCurrentVersion = "Software\\Microsoft\\Windows\\CurrentVersion";
-#if 0
-static const char * const szEnvUserProfile = "%USERPROFILE%";
-static const char * const szEnvSystemRoot = "%SYSTEMROOT%";
-#endif
+static const WCHAR szSHFolders[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l','o','r','e','r','\\','S','h','e','l','l',' ','F','o','l','d','e','r','s','\0'};
+static const WCHAR szSHUserFolders[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l','o','r','e','r','\\','U','s','e','r',' ','S','h','e','l','l',' ','F','o','l','d','e','r','s','\0'};
+static const WCHAR szSetup[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','E','x','p','l','o','r','e','r','\\','S','e','t','u','p','\0'};
+static const WCHAR szCurrentVersion[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\0'};
 
 typedef struct
 {
@@ -1013,104 +1008,102 @@
 #undef HKCU
 #undef HKLM
 
-/**********************************************************************/
-
-BOOL WINAPI SHGetSpecialFolderPathA (
+HRESULT WINAPI SHGetFolderPathW(
 	HWND hwndOwner,
-	LPSTR szPath,
 	int csidl,
-	BOOL bCreate)
+	HANDLE hToken,	/* [in] FIXME: get paths for specific user */
+	DWORD dwFlags,	/* [in] FIXME: SHGFP_TYPE_CURRENT|SHGFP_TYPE_DEFAULT */
+	LPWSTR pszPath)
 {
-	CHAR	szValueName[MAX_PATH], szDefaultPath[MAX_PATH], szBuildPath[MAX_PATH];
+	WCHAR	szValueName[MAX_PATH], szDefaultPath[MAX_PATH], szBuildPath[MAX_PATH];
 	HKEY	hRootKey, hKey;
-	DWORD	dwFlags;
+	DWORD	dwCsidlFlags;
 	DWORD	dwType, dwDisp, dwPathLen = MAX_PATH;
 	DWORD	folder = csidl & CSIDL_FOLDER_MASK;
-	CHAR	*p;
+	WCHAR	*p;
 
-	TRACE("%p,%p,csidl=%d,0x%04x\n", hwndOwner,szPath,csidl,bCreate);
+	TRACE("%p,%p,csidl=0x%04x\n", hwndOwner,pszPath,csidl);
 
 	if ((folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) ||
 	    (CSIDL_Data[folder].hRootKey == 0))
 	{
 	    ERR("folder 0x%04lx unknown or not allowed\n", folder);
-	    return FALSE;
+	    return E_FAIL;
 	}
 	if (CSIDL_Data[folder].hRootKey == (HKEY)1)
 	{
 	    FIXME("folder 0x%04lx unknown, please add.\n", folder);
-	    return FALSE;
+	    return E_FAIL;
 	}
 
-	dwFlags = CSIDL_Data[folder].dwFlags;
+	dwCsidlFlags = CSIDL_Data[folder].dwFlags;
 	hRootKey = CSIDL_Data[folder].hRootKey;
-	strcpy(szValueName, CSIDL_Data[folder].szValueName);
-	strcpy(szDefaultPath, CSIDL_Data[folder].szDefaultPath);
+	MultiByteToWideChar(CP_ACP, 0, CSIDL_Data[folder].szValueName, -1, szValueName, MAX_PATH);
+	MultiByteToWideChar(CP_ACP, 0, CSIDL_Data[folder].szDefaultPath, -1, szDefaultPath, MAX_PATH);
 
-	if (dwFlags & CSIDL_MYFLAG_SHFOLDER)
+	if (dwCsidlFlags & CSIDL_MYFLAG_SHFOLDER)
 	{
 	  /*   user shell folders */
-	  if   (RegCreateKeyExA(hRootKey,szSHUserFolders,0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,&dwDisp)) return FALSE;
+	  if   (RegCreateKeyExW(hRootKey,szSHUserFolders,0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,&dwDisp)) return E_FAIL;
 
-	  if   (RegQueryValueExA(hKey,szValueName,NULL,&dwType,(LPBYTE)szPath,&dwPathLen))
+	  if   (RegQueryValueExW(hKey,szValueName,NULL,&dwType,(LPBYTE)pszPath,&dwPathLen))
 	  {
 	    RegCloseKey(hKey);
 
 	    /* shell folders */
-	    if (RegCreateKeyExA(hRootKey,szSHFolders,0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,&dwDisp)) return FALSE;
+	    if (RegCreateKeyExW(hRootKey,szSHFolders,0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,&dwDisp)) return E_FAIL;
 
-	    if (RegQueryValueExA(hKey,szValueName,NULL,&dwType,(LPBYTE)szPath,&dwPathLen))
+	    if (RegQueryValueExW(hKey,szValueName,NULL,&dwType,(LPBYTE)pszPath,&dwPathLen))
 	    {
 	      /* value not existing */
-	      if (dwFlags & CSIDL_MYFLAG_RELATIVE)
+	      if (dwCsidlFlags & CSIDL_MYFLAG_RELATIVE)
 	      {
-	        GetWindowsDirectoryA(szPath, MAX_PATH);
-	        PathAddBackslashA(szPath);
-	        strcat(szPath, szDefaultPath);
+	        GetWindowsDirectoryW(pszPath, MAX_PATH);
+	        PathAddBackslashW(pszPath);
+	        strcatW(pszPath, szDefaultPath);
 	      }
 	      else
 	      {
-	        strcpy(szPath, "C:\\");	/* FIXME - should by System Drive Root */
-	        strcat(szPath, szDefaultPath);
+	        GetSystemDirectoryW(pszPath, MAX_PATH);
+	        strcpyW(pszPath + 3, szDefaultPath);
 	      }
               dwType=REG_SZ;
-	      RegSetValueExA(hKey,szValueName,0,REG_SZ,(LPBYTE)szPath,strlen(szPath)+1);
+	      RegSetValueExW(hKey,szValueName,0,REG_SZ,(LPBYTE)pszPath,strlenW(pszPath)+1);
 	    }
 	  }
 	  RegCloseKey(hKey);
         }
 	else
 	{
-	  LPCSTR pRegPath;
+	  LPCWSTR pRegPath;
 
-	  if (dwFlags & CSIDL_MYFLAG_SETUP)
+	  if (dwCsidlFlags & CSIDL_MYFLAG_SETUP)
 	    pRegPath = szSetup;
-	  else if (dwFlags & CSIDL_MYFLAG_CURRVER)
+	  else if (dwCsidlFlags & CSIDL_MYFLAG_CURRVER)
 	    pRegPath = szCurrentVersion;
 	  else
 	  {
 	    ERR("folder settings broken, please correct !\n");
-	    return FALSE;
+	    return E_FAIL;
 	  }
 
-	  if   (RegCreateKeyExA(hRootKey,pRegPath,0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,&dwDisp)) return FALSE;
+	  if   (RegCreateKeyExW(hRootKey,pRegPath,0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,&dwDisp)) return E_FAIL;
 
-	  if   (RegQueryValueExA(hKey,szValueName,NULL,&dwType,(LPBYTE)szPath,&dwPathLen))
+	  if   (RegQueryValueExW(hKey,szValueName,NULL,&dwType,(LPBYTE)pszPath,&dwPathLen))
 	  {
 	    /* value not existing */
-	    if (dwFlags & CSIDL_MYFLAG_RELATIVE)
+	    if (dwCsidlFlags & CSIDL_MYFLAG_RELATIVE)
 	    {
-	      GetWindowsDirectoryA(szPath, MAX_PATH);
-	      PathAddBackslashA(szPath);
-	      strcat(szPath, szDefaultPath);
+	      GetWindowsDirectoryW(pszPath, MAX_PATH);
+	      PathAddBackslashW(pszPath);
+	      strcatW(pszPath, szDefaultPath);
 	    }
 	    else
 	    {
-	      strcpy(szPath, "C:\\");	/* FIXME ??? */
-	      strcat(szPath, szDefaultPath);
+	      GetSystemDirectoryW(pszPath, MAX_PATH);
+	      strcpyW(pszPath + 3, szDefaultPath);
 	    }
             dwType=REG_SZ;
-	    RegSetValueExA(hKey,szValueName,0,REG_SZ,(LPBYTE)szPath,strlen(szPath)+1);
+	    RegSetValueExW(hKey,szValueName,0,REG_SZ,(LPBYTE)pszPath,strlenW(pszPath)+1);
 	  }
 	  RegCloseKey(hKey);
 	}
@@ -1118,116 +1117,119 @@
 	/* expand paths like %USERPROFILE% */
 	if (dwType == REG_EXPAND_SZ)
 	{
-	  ExpandEnvironmentStringsA(szPath, szDefaultPath, MAX_PATH);
-	  strcpy(szPath, szDefaultPath);
+	  ExpandEnvironmentStringsW(pszPath, szDefaultPath, MAX_PATH);
+	  strcpyW(pszPath, szDefaultPath);
 	}
 
 	/* if we don't care about existing directories we are ready */
-	if(csidl & CSIDL_FLAG_DONT_VERIFY) return TRUE;
+	if(csidl & CSIDL_FLAG_DONT_VERIFY) return S_OK;
 
-	if (PathFileExistsA(szPath)) return TRUE;
+	if (PathFileExistsW(pszPath)) return S_OK;
 
 	/* not existing but we are not allowed to create it */
-	if (!bCreate) return FALSE;
+	if (!(csidl & CSIDL_FLAG_CREATE)) return E_FAIL;
 
 	/* create directory/directories */
-	strcpy(szBuildPath, szPath);
-	p = strchr(szBuildPath, '\\');
+	strcpyW(szBuildPath, pszPath);
+	p = strchrW(szBuildPath, '\\');
 	while (p)
 	{
 	    *p = 0;
-	    if (!PathFileExistsA(szBuildPath))
+	    if (!PathFileExistsW(szBuildPath))
 	    {
-		if (!CreateDirectoryA(szBuildPath,NULL))
+		if (!CreateDirectoryW(szBuildPath,NULL))
 		{
-		    ERR("Failed to create directory '%s'.\n", szPath);
-		    return FALSE;
+		    ERR("Failed to create directory '%s'.\n", debugstr_w(pszPath));
+		    return E_FAIL;
 		}
 	    }
 	    *p = '\\';
-	    p = strchr(p+1, '\\');
+	    p = strchrW(p+1, '\\');
 	}
 	/* last component must be created too. */
-	if (!PathFileExistsA(szBuildPath))
+	if (!PathFileExistsW(szBuildPath))
 	{
-	    if (!CreateDirectoryA(szBuildPath,NULL))
+	    if (!CreateDirectoryW(szBuildPath,NULL))
 	    {
-		ERR("Failed to create directory '%s'.\n", szPath);
-		return FALSE;
+		ERR("Failed to create directory '%s'.\n", debugstr_w(pszPath));
+		return E_FAIL;
 	    }
 	}
 
-	TRACE("Created missing system directory '%s'\n", szPath);
-	return TRUE;
+	TRACE("Created missing system directory '%s'\n", debugstr_w(pszPath));
+	return S_OK;
 }
 
 /*************************************************************************
- * SHGetSpecialFolderPathW
+ * SHGetFolderPathA			[SHELL32.@]
  */
-BOOL WINAPI SHGetSpecialFolderPathW (
+HRESULT WINAPI SHGetFolderPathA(
 	HWND hwndOwner,
-	LPWSTR szPath,
 	int csidl,
-	BOOL bCreate)
+	HANDLE hToken,
+	DWORD dwFlags,
+	LPSTR pszPath)
 {
-	char szTemp[MAX_PATH];
+	WCHAR szTemp[MAX_PATH];
+	HRESULT hr;
 
-	if (SHGetSpecialFolderPathA(hwndOwner, szTemp, csidl, bCreate))
+	hr = SHGetFolderPathW(hwndOwner, csidl, hToken, dwFlags, szTemp);
+	if (hr == S_OK)
 	{
-            if (!MultiByteToWideChar( CP_ACP, 0, szTemp, -1, szPath, MAX_PATH ))
-                szPath[MAX_PATH-1] = 0;
+            if (!WideCharToMultiByte( CP_ACP, 0, szTemp, -1, pszPath, MAX_PATH, NULL, NULL ))
+                pszPath[MAX_PATH - 1] = 0;
         }
 
-	TRACE("%p,%p,csidl=%d,0x%04x\n", hwndOwner,szPath,csidl,bCreate);
+	TRACE("%p,%p,csidl=0x%04x\n",hwndOwner,pszPath,csidl);
 
-	return TRUE;
+	return hr;
 }
 
 /*************************************************************************
- * SHGetSpecialFolderPath (SHELL32.175)
+ * SHGetSpecialFolderPathA [SHELL32.@]
  */
-BOOL WINAPI SHGetSpecialFolderPathAW (
+BOOL WINAPI SHGetSpecialFolderPathA (
 	HWND hwndOwner,
-	LPVOID szPath,
+	LPSTR szPath,
 	int csidl,
 	BOOL bCreate)
-
 {
-	if (SHELL_OsIsUnicode())
-	  return SHGetSpecialFolderPathW (hwndOwner, szPath, csidl, bCreate);
-	return SHGetSpecialFolderPathA (hwndOwner, szPath, csidl, bCreate);
+	return (SHGetFolderPathA(
+		hwndOwner,
+		csidl + (bCreate ? CSIDL_FLAG_CREATE : 0),
+		NULL,
+		0,
+		szPath)) == S_OK ? TRUE : FALSE;
 }
 
 /*************************************************************************
- * SHGetFolderPathA			[SHELL32.@]
+ * SHGetSpecialFolderPathW
  */
-HRESULT WINAPI SHGetFolderPathA(
+BOOL WINAPI SHGetSpecialFolderPathW (
 	HWND hwndOwner,
-	int nFolder,
-	HANDLE hToken,	/* [in] FIXME: get paths for specific user */
-	DWORD dwFlags,	/* [in] FIXME: SHGFP_TYPE_CURRENT|SHGFP_TYPE_DEFAULT */
-	LPSTR pszPath)
+	LPWSTR szPath,
+	int csidl,
+	BOOL bCreate)
 {
-	return (SHGetSpecialFolderPathA(
+	return (SHGetFolderPathW(
 		hwndOwner,
-		pszPath,
-		CSIDL_FOLDER_MASK & nFolder,
-		CSIDL_FLAG_CREATE & nFolder )) ? S_OK : E_FAIL;
+		csidl + (bCreate ? CSIDL_FLAG_CREATE : 0),
+		NULL,
+		0,
+		szPath)) == S_OK ? TRUE : FALSE;
 }
 
 /*************************************************************************
- * SHGetFolderPathW			[SHELL32.@]
+ * SHGetSpecialFolderPath (SHELL32.175)
  */
-HRESULT WINAPI SHGetFolderPathW(
+BOOL WINAPI SHGetSpecialFolderPathAW (
 	HWND hwndOwner,
-	int nFolder,
-	HANDLE hToken,
-	DWORD dwFlags,
-	LPWSTR pszPath)
+	LPVOID szPath,
+	int csidl,
+	BOOL bCreate)
+
 {
-	return (SHGetSpecialFolderPathW(
-		hwndOwner,
-		pszPath,
-		CSIDL_FOLDER_MASK & nFolder,
-		CSIDL_FLAG_CREATE & nFolder )) ? S_OK : E_FAIL;
+	if (SHELL_OsIsUnicode())
+	  return SHGetSpecialFolderPathW (hwndOwner, szPath, csidl, bCreate);
+	return SHGetSpecialFolderPathA (hwndOwner, szPath, csidl, bCreate);
 }
--- dlls/shell32/shell32_Cs.rc	Mon Jun 10 02:34:36 2002
+++ dlls/shell32/shell32_Cs.rc	Wed Jan 14 16:33:28 2004
@@ -1,45 +1,180 @@
-/*
- * Copyright 1998 Juergen Schmied
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
-
-SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 210, 152
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "O aplikaci %s"
-FONT 10, "Helv"
-{
- DEFPUSHBUTTON "OK", IDOK, 153, 130, 50, 12
- LISTBOX 99, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
- ICON "", 1088, 189, 10, 14, 16
- LTEXT "", 100, 8, 10, 137, 33
- LTEXT "Wine was brought to you by:", 98, 8, 55, 137, 10
-}
-
-SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION ""
-FONT 8, "Helv"
-{
- ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
- LTEXT "Type the name of a program, folder, document, or Internet resource, and Wine will open it for you.", 12289, 36, 11, 182, 18
- LTEXT "&Open:", 12305, 7, 39, 24, 10
- CONTROL "", 12298, "COMBOBOX", WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
- DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
- PUSHBUTTON "Cancel", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
- PUSHBUTTON "&Browse...", 12288, 170, 63, 50, 14, WS_TABSTOP
-}
+/*
+ * Copyright 1998 Juergen Schmied
+ * Copyright 2003 Filip Navara
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
+
+MENU_001 MENU DISCARDABLE
+BEGIN
+	MENUITEM "&Vedle sebe",		FCIDM_SHVIEW_BIGICON
+	MENUITEM "&Ikony",		FCIDM_SHVIEW_SMALLICON
+	MENUITEM "&Seznam",		FCIDM_SHVIEW_LISTVIEW
+	MENUITEM "&Podrobnosti",	FCIDM_SHVIEW_REPORTVIEW
+END
+
+/*
+ shellview background menu
+*/
+MENU_002 MENU DISCARDABLE
+BEGIN
+	POPUP ""
+	BEGIN
+	  POPUP "Z&obrazit"
+	  BEGIN
+	    MENUITEM "&Vedle sebe",	FCIDM_SHVIEW_BIGICON
+	    MENUITEM "&Ikony",		FCIDM_SHVIEW_SMALLICON
+	    MENUITEM "&Seznam",		FCIDM_SHVIEW_LISTVIEW
+	    MENUITEM "&Podrobnosti",	FCIDM_SHVIEW_REPORTVIEW
+	  END
+	  MENUITEM SEPARATOR
+	  POPUP "Seøadit &ikony"
+	  BEGIN
+	    MENUITEM "Podle &Názvu",	0x30	/* column 0 */
+	    MENUITEM "Podle &Typu",	0x32	/* column 2 */
+	    MENUITEM "Podle &Velikosti",	0x31	/* ... */
+	    MENUITEM "Podle &Data",	0x33
+	    MENUITEM SEPARATOR
+	    MENUITEM "&Rovnat automaticky",	FCIDM_SHVIEW_AUTOARRANGE
+	  END
+	  MENUITEM "Zarovnat ikony",	FCIDM_SHVIEW_SNAPTOGRID
+	  MENUITEM SEPARATOR
+	  MENUITEM "A&ktualizovat",	FCIDM_SHVIEW_REFRESH
+	  MENUITEM SEPARATOR
+	  MENUITEM "V&ložit",		FCIDM_SHVIEW_INSERT
+	  MENUITEM "Vložit zást&upce",	FCIDM_SHVIEW_INSERTLINK
+	  MENUITEM SEPARATOR
+	  POPUP "&Nový"
+	  BEGIN
+	    MENUITEM "Nová &složka",	FCIDM_SHVIEW_NEWFOLDER
+	    MENUITEM "Nový &zástupce",	FCIDM_SHVIEW_NEWLINK
+	    MENUITEM SEPARATOR
+	  END
+	  MENUITEM SEPARATOR
+	  MENUITEM "&Vlastnosti",	FCIDM_SHVIEW_PROPERTIES
+	END
+END
+
+/*
+ shellview item menu
+*/
+MENU_SHV_FILE MENU DISCARDABLE
+BEGIN
+	POPUP ""
+	BEGIN
+	  MENUITEM "P&rozkoumat",		FCIDM_SHVIEW_EXPLORE
+	  MENUITEM "O&tevøít",			FCIDM_SHVIEW_OPEN
+	  MENUITEM SEPARATOR
+	  MENUITEM "Vyj&mout",			FCIDM_SHVIEW_CUT
+	  MENUITEM "&Kopírovat",		FCIDM_SHVIEW_COPY
+	  MENUITEM SEPARATOR
+	  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
+
+SHBRSFORFOLDER_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 188, 192
+STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
+CAPTION "Procházet..."
+FONT 8, "Helv"
+{
+ DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
+ PUSHBUTTON "Storno", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP
+ LTEXT "", IDD_TITLE, 4, 4, 180, 12
+ LTEXT "", IDD_STATUS, 4, 25, 180, 12
+ CONTROL "", IDD_TREEVIEW, "SysTreeView32",
+ 	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+	WS_BORDER | WS_TABSTOP,
+	4, 40, 180, 120
+}
+
+SHELL_ABOUT_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 210, 152
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "O aplikaci %s"
+FONT 10, "Helv"
+{
+ DEFPUSHBUTTON "OK", IDOK, 153, 130, 50, 12
+ LISTBOX 99, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
+ ICON "", 1088, 189, 10, 14, 16
+ LTEXT "", 100, 8, 10, 137, 33
+ LTEXT "Wine je d¡lem:", 98, 8, 55, 137, 10
+}
+
+SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION ""
+FONT 8, "Helv"
+{
+ ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
+ LTEXT "Zadejte název programu, složky, dokumentu, nebo zdroje v síti Internet a Wine jej pro vás otevøe.", 12289, 36, 11, 182, 18
+ LTEXT "&Otevøít:", 12305, 7, 39, 24, 10
+ CONTROL "", 12298, "COMBOBOX", WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
+ DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
+ PUSHBUTTON "Storno", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
+ PUSHBUTTON "&Procházet...", 12288, 170, 63, 50, 14, WS_TABSTOP
+}
+
+/*
+	special folders
+*/
+STRINGTABLE DISCARDABLE
+{
+	IDS_DESKTOP		"Plocha"
+	IDS_MYCOMPUTER		"Tento poèítaè"
+}
+
+/*
+	context menus
+*/
+STRINGTABLE DISCARDABLE
+{
+	IDS_VIEW_LARGE		"&Vedle sebe"
+	IDS_VIEW_SMALL		"&Ikony"
+	IDS_VIEW_LIST		"&Seznam"
+	IDS_VIEW_DETAILS	"&Podrobnosti"
+	IDS_SELECT		"Vybrat"
+	IDS_OPEN		"Otevøít"
+}
+
+STRINGTABLE DISCARDABLE
+{
+	IDS_CREATEFOLDER_DENIED "Nelze vytvoøit novou složku protože pøistup byl odepøen."
+	IDS_CREATEFOLDER_CAPTION "Chyba pøi pokusu vytvoøit nový adresáø"
+	IDS_DELETEITEM_CAPTION "Potvrdit odstranìní souboru"
+	IDS_DELETEFOLDER_CAPTION "Potvrdit odstranìní adresáøe"
+	IDS_OVERWRITEFILE_CAPTION "Potvrdit pøepsání souboru"
+	IDS_DELETEITEM_TEXT "Opravdu chcete odstranit '%1'?"
+	IDS_DELETEMULTIPLE_TEXT "Opravdu chcete odstranit tìchto %1 položek?"
+	IDS_OVERWRITEFILE_TEXT "Pøejete si pøepsat soubor '%1'?"
+}
+
+/*	columns in the shellview	*/
+STRINGTABLE
+BEGIN
+	IDS_SHV_COLUMN1		"Název"
+	IDS_SHV_COLUMN2		"Velikost"
+	IDS_SHV_COLUMN3		"Typ"
+	IDS_SHV_COLUMN4		"Zmìnìno"
+	IDS_SHV_COLUMN5		"Atributy"
+	IDS_SHV_COLUMN6		"Velikost"
+	IDS_SHV_COLUMN7		"Volné místo"
+	IDS_SHV_COLUMN8		"Jméno"
+	IDS_SHV_COLUMN9		"Komentáø"
+END


More information about the wine-patches mailing list