From f65e491668573cfbcd8932385619ca702527ea65 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 9 Dec 2008 17:10:10 +0100 Subject: [PATCH] shell32: Disable the Unix folder for the Windows build. --- dlls/shell32/shell32_main.h | 1 - dlls/shell32/shfldr_unixfs.c | 83 +++++++++++++++++++++++++++----------------- 2 files changed, 52 insertions(+), 32 deletions(-) diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index 1ad4d6e75ea..920625feb53 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -99,7 +99,6 @@ HRESULT WINAPI UnixDosFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVO HRESULT WINAPI FolderShortcut_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv); HRESULT WINAPI MyDocuments_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv); HRESULT WINAPI RecycleBin_Constructor(IUnknown * pUnkOuter, REFIID riif, LPVOID *ppv); -HRESULT WINAPI ShellFSFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv); extern HRESULT CPanel_GetIconLocationW(LPCITEMIDLIST, LPWSTR, UINT, int*); HRESULT WINAPI CPanel_ExtractIconA(LPITEMIDLIST pidl, LPCSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize); HRESULT WINAPI CPanel_ExtractIconW(LPITEMIDLIST pidl, LPCWSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize); diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c index 582a98065c0..a560397ca25 100644 --- a/dlls/shell32/shfldr_unixfs.c +++ b/dlls/shell32/shfldr_unixfs.c @@ -166,6 +166,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); +#if !defined(__MINGW32__) && !defined(_MSC_VER) + #define ADJUST_THIS(c,m,p) ((c*)(((long)p)-(long)&(((c*)0)->lp##m##Vtbl))) #define STATIC_CAST(i,p) ((i*)&p->lp##i##Vtbl) @@ -202,32 +204,6 @@ typedef struct _UnixFolder { static UINT cfShellIDList = 0; /****************************************************************************** - * UNIXFS_is_rooted_at_desktop [Internal] - * - * Checks if the unixfs namespace extension is rooted at desktop level. - * - * RETURNS - * TRUE, if unixfs is rooted at desktop level - * FALSE, if not. - */ -BOOL UNIXFS_is_rooted_at_desktop(void) { - HKEY hKey; - WCHAR wszRootedAtDesktop[69 + CHARS_IN_GUID] = { - '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','\\','D','e','s','k','t','o','p','\\', - 'N','a','m','e','S','p','a','c','e','\\',0 }; - - if (StringFromGUID2(&CLSID_UnixDosFolder, wszRootedAtDesktop + 69, CHARS_IN_GUID) && - RegOpenKeyExW(HKEY_LOCAL_MACHINE, wszRootedAtDesktop, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - RegCloseKey(hKey); - return TRUE; - } - return FALSE; -} - -/****************************************************************************** * UNIXFS_filename_from_shitemid [Internal] * * Get CP_UNIXCP encoded filename corresponding to the first item of a pidl @@ -2224,11 +2200,6 @@ HRESULT WINAPI MyDocuments_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID return CreateUnixFolder(pUnkOuter, riid, ppv, &CLSID_MyDocuments); } -HRESULT WINAPI ShellFSFolder_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) { - TRACE("(pUnkOuter=%p, riid=%p, ppv=%p)\n", pUnkOuter, riid, ppv); - return CreateUnixFolder(pUnkOuter, riid, ppv, &CLSID_ShellFSFolder); -} - /****************************************************************************** * UnixSubFolderIterator * @@ -2402,3 +2373,53 @@ static IUnknown *UnixSubFolderIterator_Constructor(UnixFolder *pUnixFolder, SHCO return (IUnknown*)iterator; } + +#else /* __MINGW32__ || _MSC_VER */ + +HRESULT WINAPI UnixFolder_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) +{ + return E_NOTIMPL; +} + +HRESULT WINAPI UnixDosFolder_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) +{ + return E_NOTIMPL; +} + +HRESULT WINAPI FolderShortcut_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) +{ + return E_NOTIMPL; +} + +HRESULT WINAPI MyDocuments_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv) +{ + return E_NOTIMPL; +} + +#endif /* __MINGW32__ || _MSC_VER */ + +/****************************************************************************** + * UNIXFS_is_rooted_at_desktop [Internal] + * + * Checks if the unixfs namespace extension is rooted at desktop level. + * + * RETURNS + * TRUE, if unixfs is rooted at desktop level + * FALSE, if not. + */ +BOOL UNIXFS_is_rooted_at_desktop(void) { + HKEY hKey; + WCHAR wszRootedAtDesktop[69 + CHARS_IN_GUID] = { + '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','\\','D','e','s','k','t','o','p','\\', + 'N','a','m','e','S','p','a','c','e','\\',0 }; + + if (StringFromGUID2(&CLSID_UnixDosFolder, wszRootedAtDesktop + 69, CHARS_IN_GUID) && + RegOpenKeyExW(HKEY_LOCAL_MACHINE, wszRootedAtDesktop, 0, KEY_READ, &hKey) == ERROR_SUCCESS) + { + RegCloseKey(hKey); + return TRUE; + } + return FALSE; +} -- 2.11.4.GIT