Commit 984f608c authored by Alexandre Julliard's avatar Alexandre Julliard

shell32: Use the standard shell folder implementation for Unix folders.

parent 336c37d5
...@@ -41,7 +41,6 @@ C_SRCS = \ ...@@ -41,7 +41,6 @@ C_SRCS = \
shfldr_mycomp.c \ shfldr_mycomp.c \
shfldr_netplaces.c \ shfldr_netplaces.c \
shfldr_printers.c \ shfldr_printers.c \
shfldr_unixfs.c \
shlexec.c \ shlexec.c \
shlfileop.c \ shlfileop.c \
shlfolder.c \ shlfolder.c \
......
...@@ -142,8 +142,6 @@ STRINGTABLE ...@@ -142,8 +142,6 @@ STRINGTABLE
IDS_SHV_COLUMN7 "Size available" IDS_SHV_COLUMN7 "Size available"
IDS_SHV_COLUMN8 "Name" IDS_SHV_COLUMN8 "Name"
IDS_SHV_COLUMN9 "Comments" IDS_SHV_COLUMN9 "Comments"
IDS_SHV_COLUMN10 "Owner"
IDS_SHV_COLUMN11 "Group"
IDS_SHV_COLUMN_DELFROM "Original location" IDS_SHV_COLUMN_DELFROM "Original location"
IDS_SHV_COLUMN_DELDATE "Date deleted" IDS_SHV_COLUMN_DELDATE "Date deleted"
IDS_SHV_COL_DOCS "Documents" IDS_SHV_COL_DOCS "Documents"
......
...@@ -178,7 +178,6 @@ static inline WCHAR * __SHCloneStrAtoW(WCHAR ** target, const char * source) ...@@ -178,7 +178,6 @@ static inline WCHAR * __SHCloneStrAtoW(WCHAR ** target, const char * source)
extern WCHAR swShell32Name[MAX_PATH] DECLSPEC_HIDDEN; extern WCHAR swShell32Name[MAX_PATH] DECLSPEC_HIDDEN;
BOOL UNIXFS_is_rooted_at_desktop(void) DECLSPEC_HIDDEN;
extern const GUID CLSID_UnixFolder DECLSPEC_HIDDEN; extern const GUID CLSID_UnixFolder DECLSPEC_HIDDEN;
extern const GUID CLSID_UnixDosFolder DECLSPEC_HIDDEN; extern const GUID CLSID_UnixDosFolder DECLSPEC_HIDDEN;
......
...@@ -56,8 +56,6 @@ HRESULT SHELL32_BindToChild (LPCITEMIDLIST pidlRoot, const CLSID *clsidChild, ...@@ -56,8 +56,6 @@ HRESULT SHELL32_BindToChild (LPCITEMIDLIST pidlRoot, const CLSID *clsidChild,
HRESULT SHELL32_CompareIDs(IShellFolder2 *iface, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) DECLSPEC_HIDDEN; HRESULT SHELL32_CompareIDs(IShellFolder2 *iface, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) DECLSPEC_HIDDEN;
LPITEMIDLIST SHELL32_CreatePidlFromBindCtx(IBindCtx *pbc, LPCWSTR path) DECLSPEC_HIDDEN; LPITEMIDLIST SHELL32_CreatePidlFromBindCtx(IBindCtx *pbc, LPCWSTR path) DECLSPEC_HIDDEN;
HRESULT SHELL32_CreateExtensionUIObject(IShellFolder2 *iface, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut) DECLSPEC_HIDDEN;
static inline int SHELL32_GUIDToStringA (REFGUID guid, LPSTR str) static inline int SHELL32_GUIDToStringA (REFGUID guid, LPSTR str)
{ {
return sprintf(str, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", return sprintf(str, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
...@@ -80,7 +78,6 @@ static inline int SHELL32_GUIDToStringW (REFGUID guid, LPWSTR str) ...@@ -80,7 +78,6 @@ static inline int SHELL32_GUIDToStringW (REFGUID guid, LPWSTR str)
} }
void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags) DECLSPEC_HIDDEN; void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags) DECLSPEC_HIDDEN;
BOOL SHELL_FS_HideExtension(LPCWSTR pwszPath) DECLSPEC_HIDDEN;
DEFINE_GUID( CLSID_UnixFolder, 0xcc702eb2, 0x7dc5, 0x11d9, 0xc6, 0x87, 0x00, 0x04, 0x23, 0x8a, 0x01, 0xcd ); DEFINE_GUID( CLSID_UnixFolder, 0xcc702eb2, 0x7dc5, 0x11d9, 0xc6, 0x87, 0x00, 0x04, 0x23, 0x8a, 0x01, 0xcd );
DEFINE_GUID( CLSID_UnixDosFolder, 0x9d20aae8, 0x0625, 0x44b0, 0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9 ); DEFINE_GUID( CLSID_UnixDosFolder, 0x9d20aae8, 0x0625, 0x44b0, 0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9 );
...@@ -153,6 +153,7 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, ...@@ -153,6 +153,7 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface,
HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName,
DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes) DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes)
{ {
static const WCHAR unix_root[] = {'\\','\\','?','\\','u','n','i','x','\\',0};
IDesktopFolderImpl *This = impl_from_IShellFolder2(iface); IDesktopFolderImpl *This = impl_from_IShellFolder2(iface);
WCHAR szElement[MAX_PATH]; WCHAR szElement[MAX_PATH];
LPCWSTR szNext = NULL; LPCWSTR szNext = NULL;
...@@ -185,12 +186,14 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, ...@@ -185,12 +186,14 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface,
else if (PathGetDriveNumberW (lpszDisplayName) >= 0) else if (PathGetDriveNumberW (lpszDisplayName) >= 0)
{ {
/* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */ /* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */
if (UNIXFS_is_rooted_at_desktop())
pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder);
else
pidlTemp = _ILCreateMyComputer (); pidlTemp = _ILCreateMyComputer ();
szNext = lpszDisplayName; szNext = lpszDisplayName;
} }
else if (!strncmpW( lpszDisplayName, unix_root, 9 ))
{
pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder);
szNext = lpszDisplayName;
}
else if (PathIsUNCW(lpszDisplayName)) else if (PathIsUNCW(lpszDisplayName))
{ {
pidlTemp = _ILCreateNetwork(); pidlTemp = _ILCreateNetwork();
......
...@@ -38,8 +38,6 @@ ...@@ -38,8 +38,6 @@
#define IDS_SHV_COLUMN7 13 #define IDS_SHV_COLUMN7 13
#define IDS_SHV_COLUMN8 14 #define IDS_SHV_COLUMN8 14
#define IDS_SHV_COLUMN9 15 #define IDS_SHV_COLUMN9 15
#define IDS_SHV_COLUMN10 16
#define IDS_SHV_COLUMN11 17
#define IDS_SHV_COLUMN_DELFROM 18 #define IDS_SHV_COLUMN_DELFROM 18
#define IDS_SHV_COLUMN_DELDATE 19 #define IDS_SHV_COLUMN_DELDATE 19
#define IDS_SHV_COL_DOCS 80 #define IDS_SHV_COL_DOCS 80
......
...@@ -702,11 +702,8 @@ static void test_items(void) ...@@ -702,11 +702,8 @@ static void test_items(void)
variant_set_string(&str_index2, cstr); variant_set_string(&str_index2, cstr);
item2 = (FolderItem*)0xdeadbeef; item2 = (FolderItem*)0xdeadbeef;
r = FolderItems_Item(items, str_index2, &item2); r = FolderItems_Item(items, str_index2, &item2);
todo_wine {
ok(r == S_FALSE, "file_defs[%d]: expected S_FALSE, got %08x\n", i, r); ok(r == S_FALSE, "file_defs[%d]: expected S_FALSE, got %08x\n", i, r);
ok(!item2, "file_defs[%d]: item is not null\n", i); ok(!item2, "file_defs[%d]: item is not null\n", i);
}
if (item2) FolderItem_Release(item2);
VariantClear(&str_index2); VariantClear(&str_index2);
/* remove the directory */ /* remove the directory */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment