*/
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;
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
*
/*
* 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
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"
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"
+}