Sync to Wine-0_9_5:

Vitaliy Margolen <wine-patch@kievinfo.com>
- shell32: Create Local AppData for user profile.
  Move history and internet tmp files to Local Settings.
- shell32: Update Russian resources.
Michael Jung <mjung@iss.tu-darmstadt.de>
- shell32: Helper function for unicode support in folder and file pidls.
- shell32/unixfs: Added unicode support in folder and file pidls.

svn path=/trunk/; revision=20625
This commit is contained in:
Gé van Geldorp 2006-01-06 20:30:08 +00:00
parent 8f6437a0a0
commit 4d95d3c87c
12 changed files with 241 additions and 20 deletions

View file

@ -1811,15 +1811,21 @@ DWORD _ILSimpleGetText (LPCITEMIDLIST pidl, LPSTR szOut, UINT uOutSize)
*/
DWORD _ILSimpleGetTextW (LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
{
DWORD dwReturn;
DWORD dwReturn;
char szTemp[MAX_PATH];
FileStructW *pFileStructW = _ILGetFileStructW(pidl);
TRACE("(%p %p %x)\n",pidl,szOut,uOutSize);
dwReturn = _ILSimpleGetText(pidl, szTemp, uOutSize);
if (pFileStructW) {
lstrcpynW(szOut, pFileStructW->wszName, uOutSize);
dwReturn = lstrlenW(pFileStructW->wszName);
} else {
dwReturn = _ILSimpleGetText(pidl, szTemp, MAX_PATH);
if (!MultiByteToWideChar(CP_ACP, 0, szTemp, -1, szOut, MAX_PATH))
*szOut = 0;
if (!MultiByteToWideChar(CP_ACP, 0, szTemp, -1, szOut, uOutSize))
*szOut = 0;
}
TRACE("-- (%p=%s 0x%08lx)\n",szOut,debugstr_w(szOut),dwReturn);
return dwReturn;
@ -1938,6 +1944,45 @@ IID* _ILGetGUIDPointer(LPCITEMIDLIST pidl)
return NULL;
}
/******************************************************************************
* _ILGetFileStructW [Internal]
*
* Get pointer the a SHITEMID's FileStructW field if present
*
* PARAMS
* pidl [I] The SHITEMID
*
* RETURNS
* Success: Pointer to pidl's FileStructW field.
* Failure: NULL
*/
FileStructW* _ILGetFileStructW(LPCITEMIDLIST pidl) {
FileStructW *pFileStructW;
WORD cbOffset;
if (!(_ILIsValue(pidl) || _ILIsFolder(pidl)))
return NULL;
cbOffset = *(WORD*)((LPBYTE)pidl + pidl->mkid.cb - sizeof(WORD));
pFileStructW = (FileStructW*)((LPBYTE)pidl + cbOffset);
/* Currently I don't see a fool prove way to figure out if a pidl is for sure of WinXP
* style with a FileStructW member. If we switch all our shellfolder-implementations to
* the new format, this won't be a problem. For now, we do as many sanity checks as possible. */
if (cbOffset & 0x1 || /* FileStructW member is word aligned in the pidl */
/* FileStructW is positioned after FileStruct */
cbOffset < sizeof(pidl->mkid.cb) + sizeof(PIDLTYPE) + sizeof(FileStruct) ||
/* There has to be enough space at cbOffset in the pidl to hold FileStructW and cbOffset */
cbOffset > pidl->mkid.cb - sizeof(cbOffset) - sizeof(FileStructW) ||
pidl->mkid.cb != cbOffset + pFileStructW->cbLen)
{
WARN("Invalid pidl format (cbOffset = %d)!\n", cbOffset);
return NULL;
}
return pFileStructW;
}
/*************************************************************************
* _ILGetFileDateTime
*

View file

@ -143,6 +143,20 @@ typedef struct tagFileStruct
The second the dos name when needed or just 0x00 */
} FileStruct;
/* At least on WinXP, this struct is appended with 2-byte-alignment to FileStruct. There follows
* a WORD member after the wszName string, which gives the offset from the beginning of the PIDL
* to the FileStructW member. */
typedef struct tagFileStructW {
WORD cbLen;
BYTE dummy1[6];
WORD uCreationDate;
WORD uCreationTime;
WORD uLastAccessDate;
WORD uLastAccessTime;
BYTE dummy2[4];
WCHAR wszName[1];
} FileStructW;
typedef struct tagValueW
{
WCHAR name[1];
@ -240,6 +254,7 @@ LPPIDLDATA _ILGetDataPointer (LPCITEMIDLIST);
LPSTR _ILGetTextPointer (LPCITEMIDLIST);
LPSTR _ILGetSTextPointer (LPCITEMIDLIST);
IID *_ILGetGUIDPointer (LPCITEMIDLIST pidl);
FileStructW *_ILGetFileStructW (LPCITEMIDLIST pidl);
/*
* debug helper

View file

@ -190,9 +190,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "PrintHood"
IDS_LOCAL_APPDATA "Local Settings\\Application Data"
IDS_INTERNET_CACHE "Temporary Internet Files"
IDS_INTERNET_CACHE "Local Settings\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "History"
IDS_HISTORY "Local Settings\\History"
IDS_PROGRAM_FILES "Program Files"
IDS_MYPICTURES "My Documents\\My Pictures"
IDS_PROGRAM_FILES_COMMON "Program Files\\Common Files"

View file

@ -190,9 +190,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Anwendungsdaten"
IDS_PRINTHOOD "Druckumgebung"
IDS_LOCAL_APPDATA "Lokale Einstellungen\\Anwendungsdaten"
IDS_INTERNET_CACHE "Temporary Internet Files"
IDS_INTERNET_CACHE "Lokale Einstellungen\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "Verlauf"
IDS_HISTORY "Lokale Einstellungen\\Verlauf"
IDS_PROGRAM_FILES "Programme"
IDS_MYPICTURES "Eigene Dateien\\Eigene Bilder"
IDS_PROGRAM_FILES_COMMON "Programme\\Gemeinsame Dateien"

View file

@ -189,9 +189,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "PrintHood"
IDS_LOCAL_APPDATA "Local Settings\\Application Data"
IDS_INTERNET_CACHE "Temporary Internet Files"
IDS_INTERNET_CACHE "Local Settings\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "History"
IDS_HISTORY "Local Settings\\History"
IDS_PROGRAM_FILES "Program Files"
IDS_MYPICTURES "My Documents\\My Pictures"
IDS_PROGRAM_FILES_COMMON "Program Files\\Common Files"

View file

@ -207,9 +207,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "PrintHood"
IDS_LOCAL_APPDATA "Configuración local\\Datos de programa"
IDS_INTERNET_CACHE "Archivos temporales de Internet"
IDS_INTERNET_CACHE "Configuración local\\Archivos temporales de Internet"
IDS_COOKIES "Cookies"
IDS_HISTORY "Historial"
IDS_HISTORY "Configuración local\\Historial"
IDS_PROGRAM_FILES "Archivos de programa"
IDS_MYPICTURES "Mis documentos\\Mis imágenes"
IDS_PROGRAM_FILES_COMMON "Archivos de programa\\Archivos comunes"

View file

@ -189,9 +189,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Ohjelmien Tiedot"
IDS_PRINTHOOD "Tulostinympäristö"
IDS_LOCAL_APPDATA "Paikalliset Asetukset\\Ohjelmien Tiedot"
IDS_INTERNET_CACHE "Väliaikaiset Internet-tiedostot"
IDS_INTERNET_CACHE "Paikalliset Asetukset\\Väliaikaiset Internet-tiedostot"
IDS_COOKIES "Evästeet"
IDS_HISTORY "Historia"
IDS_HISTORY "Paikalliset Asetukset\\Historia"
IDS_PROGRAM_FILES "Ohjelmat"
IDS_MYPICTURES "Omat tiedostot\\Omat kuvatiedostot"
IDS_PROGRAM_FILES_COMMON "Ohjelmat\\Yhteiset Tiedostot"

View file

@ -209,9 +209,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "Voisinage d'impression"
IDS_LOCAL_APPDATA "Local Settings\\Application Data"
IDS_INTERNET_CACHE "Temporary Internet Files"
IDS_INTERNET_CACHE "Local Settings\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "Historique"
IDS_HISTORY "Local Settings\\Historique"
IDS_PROGRAM_FILES "Program Files"
IDS_MYPICTURES "Mes documents\\Mes images"
IDS_PROGRAM_FILES_COMMON "Program Files\\Fichiers communs"

View file

@ -189,9 +189,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "PrintHood"
IDS_LOCAL_APPDATA "Local Settings\\Application Data"
IDS_INTERNET_CACHE "Temporary Internet Files"
IDS_INTERNET_CACHE "Local Settings\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "History"
IDS_HISTORY "Local Settings\\History"
IDS_PROGRAM_FILES "Program Files"
IDS_MYPICTURES "Mine dokumenter\\Mine bilder"
IDS_PROGRAM_FILES_COMMON "Programfiler\\Fellesfiler"

View file

@ -190,9 +190,9 @@ STRINGTABLE DISCARDABLE
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "PrintHood"
IDS_LOCAL_APPDATA "Configurações locais\\Dados de aplicativos"
IDS_INTERNET_CACHE "Temporary Internet Files"
IDS_INTERNET_CACHE "Configurações locais\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "Histórico"
IDS_HISTORY "Configurações locais\\Histórico"
IDS_PROGRAM_FILES "Arquivos de programas"
IDS_MYPICTURES "Meus Documentos\\Minhas Imagens"
IDS_PROGRAM_FILES_COMMON "Arquivos de programas\\Arquivos comuns"

View file

@ -1,5 +1,6 @@
/*
* Copyright 1998 Juergen Schmied
* Copyright 2006 Vitaliy Margolen
*
* 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,92 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
MENU_001 MENU DISCARDABLE
BEGIN
MENUITEM "&Áîëüøèå Èêîíêè", FCIDM_SHVIEW_BIGICON
MENUITEM "&Ìåëêèå Èêîíêè", FCIDM_SHVIEW_SMALLICON
MENUITEM "&Ñïèñîê", FCIDM_SHVIEW_LISTVIEW
MENUITEM "&Ïîäðîáíî", FCIDM_SHVIEW_REPORTVIEW
END
/*
shellview background menu
*/
MENU_002 MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
POPUP "&Ïðîñìîòð"
BEGIN
MENUITEM "&Áîëüøèå Èêîíêè", FCIDM_SHVIEW_BIGICON
MENUITEM "&Ìåëêèå Èêîíêè", FCIDM_SHVIEW_SMALLICON
MENUITEM "&Ñïèñîê", FCIDM_SHVIEW_LISTVIEW
MENUITEM "&Ïîäðîáíî", FCIDM_SHVIEW_REPORTVIEW
END
MENUITEM SEPARATOR
POPUP "Arrange &Icons"
BEGIN
MENUITEM "Ïî &Èìåíè", 0x30 /* column 0 */
MENUITEM "Ïî &Òèïó", 0x32 /* column 2 */
MENUITEM "Ïî &Ðàçìåðó", 0x31 /* ... */
MENUITEM "Ïî &Äàòå", 0x33
MENUITEM SEPARATOR
MENUITEM "&Àâòîìàòè÷åñêè", FCIDM_SHVIEW_AUTOARRANGE
END
MENUITEM "Â&ûðîâíÿòü èêîíêè", FCIDM_SHVIEW_SNAPTOGRID
MENUITEM SEPARATOR
MENUITEM "Î&áíîâèòü", FCIDM_SHVIEW_REFRESH
MENUITEM SEPARATOR
MENUITEM "&Âñòàâèòü", FCIDM_SHVIEW_INSERT
MENUITEM "Âñòàâèòü &ÿðêëûê", FCIDM_SHVIEW_INSERTLINK
MENUITEM SEPARATOR
POPUP "Ñîçäàòü"
BEGIN
MENUITEM "&Ïàïêà", FCIDM_SHVIEW_NEWFOLDER
MENUITEM "&ßðëûê", FCIDM_SHVIEW_NEWLINK
MENUITEM SEPARATOR
END
MENUITEM SEPARATOR
MENUITEM "Ñâî&éñòâà", FCIDM_SHVIEW_PROPERTIES
END
END
/*
shellview item menu
*/
MENU_SHV_FILE MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Ïðîâîäíèê", FCIDM_SHVIEW_EXPLORE
MENUITEM "&Îòêðûòü", FCIDM_SHVIEW_OPEN
MENUITEM SEPARATOR
MENUITEM "&Âûðåçàòü", FCIDM_SHVIEW_CUT
MENUITEM "&Êîïèðîâàòü", FCIDM_SHVIEW_COPY
MENUITEM SEPARATOR
MENUITEM "Ñîçäàòü &ßîëûê", FCIDM_SHVIEW_CREATELINK
MENUITEM "&Óäàëìòü", FCIDM_SHVIEW_DELETE
MENUITEM "Ïåðåè&ìåíîâàòü", FCIDM_SHVIEW_RENAME
MENUITEM SEPARATOR
MENUITEM "Ñâî&éñòâà", 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 "Îáçîð"
FONT 8, "MS Shell Dlg"
{
DEFPUSHBUTTON "Äà", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Îòìåíèòü", 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 "Î %s"
@ -44,3 +131,75 @@ FONT 8, "MS Shell Dlg"
PUSHBUTTON "Îòìåíà", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
PUSHBUTTON "Îá&çîð...", 12288, 170, 63, 50, 14, WS_TABSTOP
}
STRINGTABLE DISCARDABLE
{
/* columns in the shellview */
IDS_SHV_COLUMN1 "Èìÿ"
IDS_SHV_COLUMN2 "Ðàçìåð"
IDS_SHV_COLUMN3 "Òèï"
IDS_SHV_COLUMN4 "Èçìåíåí"
IDS_SHV_COLUMN5 "Àòðèáóòû"
IDS_SHV_COLUMN6 "Ïîëíûé îáúåì"
IDS_SHV_COLUMN7 "Ñâîáîäíî"
IDS_SHV_COLUMN8 "Èìÿ"
IDS_SHV_COLUMN9 "Êîììåíòàðèé"
IDS_SHV_COLUMN10 "Âëàäåëåö"
IDS_SHV_COLUMN11 "Ãðóïïà"
/* special folders */
IDS_DESKTOP "Ðàáî÷èé ñòîë"
IDS_MYCOMPUTER "Ìîé êîìïüþòåð"
/* context menus */
IDS_VIEW_LARGE "&Áîëüøèå Èêîíêè"
IDS_VIEW_SMALL "&Ìåëêèå Èêîíêè"
IDS_VIEW_LIST "&Ñïèñîê"
IDS_VIEW_DETAILS "&Ïîäðîáíî"
IDS_SELECT "&Âûáðàòü"
IDS_OPEN "&Îòêðûòü"
IDS_CREATEFOLDER_DENIED "Íåâîçìîæíî ñîçäàòü ïàïêó - íåò ïîëíîìî÷èé."
IDS_CREATEFOLDER_CAPTION "Îøèáêà âî âðåìÿ ñîçäàíèÿ ïàïêè"
IDS_DELETEITEM_CAPTION "Ïîäòâåðæäåíèå óäàëåíèÿ ôàéëà"
IDS_DELETEFOLDER_CAPTION "Ïîäòâåðæäåíèå óäàëåíèÿ ïàïêè"
IDS_DELETEITEM_TEXT "Óäàëèòü '%1'?"
IDS_DELETEMULTIPLE_TEXT "Óäàëèòü ýòè îáüåêòû (%1?"
IDS_OVERWRITEFILE_TEXT "Çàìåíèòü ôàéë(û) %1?"
IDS_OVERWRITEFILE_CAPTION "Ïîäòâåðæäåíèå çàìåíû ôàéëà"
/* message box strings */
IDS_RESTART_TITLE "Ïåðåçàãðóçèòü"
IDS_RESTART_PROMPT "Âû õîòèòå ñèìóëèðîâàòü ïåðåçàïóñê Windows?"
IDS_SHUTDOWN_TITLE "Âûêëþ÷èòü ïèòàíèå"
IDS_SHUTDOWN_PROMPT "Âû õîòèòå çàêèí÷èòü ðàáîòó ñ Wine?"
/* shell folder path default values */
IDS_PROGRAMS "Ãëàâíîå ìåíþ\\Ïðîãðàììû"
IDS_PERSONAL "Ìîè äîêóìåíòû"
IDS_FAVORITES "Èçáðàííîå"
IDS_STARTUP "Ãëàâíîå ìåíþ\\Ïðîãðàììû\\Àâòîçàãðóçêà"
IDS_RECENT "Recent"
IDS_SENDTO "Îòïðââèòü"
IDS_STARTMENU "Ãëàâíîå ìåíþ"
IDS_MYMUSIC "Ìîè äîêóìåíòû\\Ìîÿ ìóçûêà"
IDS_MYVIDEO "Ìîè äîêóìåíòû\\Ìîè ôèëüìû"
IDS_DESKTOPDIRECTORY "Ðàáî÷èé ñòîë"
IDS_NETHOOD "NetHood"
IDS_TEMPLATES "Øàáëîíû"
IDS_APPDATA "Application Data"
IDS_PRINTHOOD "PrintHood"
IDS_LOCAL_APPDATA "Local Settings\\Application Data"
IDS_INTERNET_CACHE "Local Settings\\Temporary Internet Files"
IDS_COOKIES "Cookies"
IDS_HISTORY "Local Settings\\History"
IDS_PROGRAM_FILES "Program Files"
IDS_MYPICTURES "Ìîè äîêóìåíòû\\Ìîè ðèñóíêè"
IDS_PROGRAM_FILES_COMMON "Program Files\\Common Files"
IDS_COMMON_DOCUMENTS "Îáùèå äîêóìåíòû"
IDS_ADMINTOOLS "Ãëàâíîå ìåíþ\\Ïðîãðàììû\\Administrative Tools"
IDS_COMMON_MUSIC "Îáùèå äîêóìåíòû\\Ìîÿ ìóçûêà"
IDS_COMMON_PICTURES "Îáùèå äîêóìåíòû\\Ìîè ðèñóíêè"
IDS_COMMON_VIDEO "Îáùèå äîêóìåíòû\\Ìîè ôèëüìû"
IDS_CDBURN_AREA "Local Settings\\Application Data\\Microsoft\\CD Burning"
}

View file

@ -1816,6 +1816,8 @@ static HRESULT _SHRegisterUserShellFolders(BOOL bDefault)
CSIDL_NETHOOD,
CSIDL_TEMPLATES,
CSIDL_PRINTHOOD,
CSIDL_LOCAL_APPDATA,
CSIDL_INTERNET_CACHE,
CSIDL_COOKIES,
CSIDL_HISTORY,
CSIDL_MYPICTURES