[SHELL32] - Remove Reactos only ISFHelper interface that is no longer used.

svn path=/trunk/; revision=68916
This commit is contained in:
Giannis Adamopoulos 2015-09-02 18:20:40 +00:00
parent b228db061a
commit a5b00b8271
7 changed files with 3 additions and 282 deletions

View file

@ -957,41 +957,6 @@ HRESULT WINAPI CDesktopFolder::GetCurFolder(LPITEMIDLIST * pidl)
return S_OK;
}
HRESULT WINAPI CDesktopFolder::GetUniqueName(LPWSTR pwszName, UINT uLen)
{
CComPtr<ISFHelper> psfHelper;
HRESULT hr = m_DesktopFSFolder->QueryInterface(IID_PPV_ARG(ISFHelper, &psfHelper));
if (FAILED(hr))
return hr;
return psfHelper->GetUniqueName(pwszName, uLen);
}
HRESULT WINAPI CDesktopFolder::AddFolder(HWND hwnd, LPCWSTR pwszName, LPITEMIDLIST *ppidlOut)
{
CComPtr<ISFHelper> psfHelper;
HRESULT hr = m_DesktopFSFolder->QueryInterface(IID_PPV_ARG(ISFHelper, &psfHelper));
if (FAILED(hr))
return hr;
return psfHelper->AddFolder(hwnd, pwszName, ppidlOut);
}
HRESULT WINAPI CDesktopFolder::DeleteItems(UINT cidl, LPCITEMIDLIST *apidl)
{
return E_NOTIMPL;
}
HRESULT WINAPI CDesktopFolder::CopyItems(IShellFolder *pSFFrom, UINT cidl, LPCITEMIDLIST *apidl, BOOL bCopy)
{
CComPtr<ISFHelper> psfHelper;
HRESULT hr = m_DesktopFSFolder->QueryInterface(IID_PPV_ARG(ISFHelper, &psfHelper));
if (FAILED(hr))
return hr;
return psfHelper->CopyItems(pSFFrom, cidl, apidl, bCopy);
}
HRESULT WINAPI CDesktopFolder::_GetDropTarget(LPCITEMIDLIST pidl, LPVOID *ppvOut) {
HRESULT hr;

View file

@ -27,8 +27,7 @@ class CDesktopFolder :
public CComCoClass<CDesktopFolder, &CLSID_ShellDesktop>,
public CComObjectRootEx<CComMultiThreadModelNoCS>,
public IShellFolder2,
public IPersistFolder2,
public ISFHelper
public IPersistFolder2
{
private:
/* both paths are parsible from the desktop */
@ -75,12 +74,6 @@ class CDesktopFolder :
// *** IPersistFolder2 methods ***
virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST * pidl);
// *** ISFHelper methods ***
virtual HRESULT WINAPI GetUniqueName(LPWSTR pwszName, UINT uLen);
virtual HRESULT WINAPI AddFolder(HWND hwnd, LPCWSTR pwszName, LPITEMIDLIST *ppidlOut);
virtual HRESULT WINAPI DeleteItems(UINT cidl, LPCITEMIDLIST *apidl);
virtual HRESULT WINAPI CopyItems(IShellFolder *pSFFrom, UINT cidl, LPCITEMIDLIST *apidl, BOOL bCopy);
DECLARE_REGISTRY_RESOURCEID(IDR_SHELLDESKTOP)
DECLARE_CENTRAL_INSTANCE_NOT_AGGREGATABLE(CDesktopFolder)
@ -92,7 +85,6 @@ class CDesktopFolder :
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
COM_INTERFACE_ENTRY_IID(IID_ISFHelper, ISFHelper)
END_COM_MAP()
};

View file

@ -820,108 +820,6 @@ HRESULT WINAPI CFSFolder::MapColumnToSCID (UINT column,
return E_NOTIMPL;
}
/****************************************************************************
* ISFHelper for IShellFolder implementation
*/
/****************************************************************************
* CFSFolder::GetUniqueName
*
* creates a unique folder name
*/
HRESULT WINAPI CFSFolder::GetUniqueName(LPWSTR pwszName, UINT uLen)
{
CComPtr<IEnumIDList> penum;
HRESULT hr;
WCHAR wszText[MAX_PATH];
WCHAR wszNewFolder[25];
const WCHAR wszFormat[] = L"%s %d";
LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, _countof(wszNewFolder));
TRACE ("(%p)(%p %u)\n", this, pwszName, uLen);
if (uLen < _countof(wszNewFolder) + 3)
return E_POINTER;
lstrcpynW (pwszName, wszNewFolder, uLen);
hr = EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &penum);
if (penum)
{
LPITEMIDLIST pidl;
DWORD dwFetched;
int i = 1;
next:
penum->Reset ();
while (S_OK == penum->Next(1, &pidl, &dwFetched) && dwFetched)
{
_ILSimpleGetTextW(pidl, wszText, MAX_PATH);
if (0 == lstrcmpiW(wszText, pwszName))
{
_snwprintf(pwszName, uLen, wszFormat, wszNewFolder, i++);
if (i > 99)
{
hr = E_FAIL;
break;
}
goto next;
}
}
}
return hr;
}
/****************************************************************************
* CFSFolder::AddFolder
*
* adds a new folder.
*/
HRESULT WINAPI CFSFolder::AddFolder(HWND hwnd, LPCWSTR pwszName,
LPITEMIDLIST * ppidlOut)
{
WCHAR wszNewDir[MAX_PATH];
DWORD bRes;
HRESULT hres = E_FAIL;
TRACE ("(%p)(%s %p)\n", this, debugstr_w(pwszName), ppidlOut);
wszNewDir[0] = 0;
if (sPathTarget)
lstrcpynW(wszNewDir, sPathTarget, MAX_PATH);
PathAppendW(wszNewDir, pwszName);
bRes = CreateDirectoryW(wszNewDir, NULL);
if (bRes)
{
SHChangeNotify(SHCNE_MKDIR, SHCNF_PATHW, wszNewDir, NULL);
hres = S_OK;
if (ppidlOut)
hres = _ILCreateFromPathW(wszNewDir, ppidlOut);
}
else
{
WCHAR wszText[128 + MAX_PATH];
WCHAR wszTempText[128];
WCHAR wszCaption[256];
/* Cannot Create folder because of permissions */
LoadStringW(shell32_hInstance, IDS_CREATEFOLDER_DENIED, wszTempText,
_countof(wszTempText));
LoadStringW(shell32_hInstance, IDS_CREATEFOLDER_CAPTION, wszCaption,
_countof(wszCaption));
swprintf(wszText, wszTempText, wszNewDir);
MessageBoxW(hwnd, wszText, wszCaption, MB_OK | MB_ICONEXCLAMATION);
}
return hres;
}
/****************************************************************************
* BuildPathsList
*
@ -954,70 +852,6 @@ BuildPathsList(LPCWSTR wszBasePath, int cidl, LPCITEMIDLIST *pidls)
return pwszPathsList;
}
/****************************************************************************
* CFSFolder::DeleteItems
*
* deletes items in folder
*/
HRESULT WINAPI CFSFolder::DeleteItems(UINT cidl, LPCITEMIDLIST *apidl)
{
UINT i;
SHFILEOPSTRUCTW op;
WCHAR wszPath[MAX_PATH];
WCHAR *wszPathsList;
HRESULT ret;
WCHAR *wszCurrentPath;
TRACE ("(%p)(%u %p)\n", this, cidl, apidl);
if (cidl == 0) return S_OK;
if (sPathTarget)
lstrcpynW(wszPath, sPathTarget, MAX_PATH);
else
wszPath[0] = '\0';
PathAddBackslashW(wszPath);
wszPathsList = BuildPathsList(wszPath, cidl, apidl);
ZeroMemory(&op, sizeof(op));
op.hwnd = GetActiveWindow();
op.wFunc = FO_DELETE;
op.pFrom = wszPathsList;
op.fFlags = FOF_ALLOWUNDO;
if (SHFileOperationW(&op))
{
WARN("SHFileOperation failed\n");
ret = E_FAIL;
}
else
ret = S_OK;
/* we currently need to manually send the notifies */
wszCurrentPath = wszPathsList;
for (i = 0; i < cidl; i++)
{
LONG wEventId;
if (_ILIsFolder(apidl[i]))
wEventId = SHCNE_RMDIR;
else if (_ILIsValue(apidl[i]))
wEventId = SHCNE_DELETE;
else
continue;
/* check if file exists */
if (GetFileAttributesW(wszCurrentPath) == INVALID_FILE_ATTRIBUTES)
{
LPITEMIDLIST pidl = ILCombine(pidlRoot, apidl[i]);
SHChangeNotify(wEventId, SHCNF_IDLIST, pidl, NULL);
SHFree(pidl);
}
wszCurrentPath += wcslen(wszCurrentPath) + 1;
}
HeapFree(GetProcessHeap(), 0, wszPathsList);
return ret;
}
/****************************************************************************
* CFSFolder::CopyItems
*

View file

@ -30,8 +30,7 @@ class CFSFolder :
public CComObjectRootEx<CComMultiThreadModelNoCS>,
public IShellFolder2,
public IPersistFolder3,
public IDropTarget,
public ISFHelper
public IDropTarget
{
private:
CLSID *pclsid;
@ -52,6 +51,7 @@ class CFSFolder :
virtual HRESULT WINAPI _GetDropTarget(LPCITEMIDLIST pidl, LPVOID *ppvOut);
virtual HRESULT WINAPI _LoadDynamicDropTargetHandlerForKey(HKEY hRootKey, LPCWSTR pwcsname, LPVOID *ppvOut);
virtual HRESULT WINAPI _LoadDynamicDropTargetHandler(const CLSID *pclsid, LPCWSTR pwcsname, LPVOID *ppvOut);
virtual HRESULT WINAPI CopyItems(IShellFolder *pSFFrom, UINT cidl, LPCITEMIDLIST *apidl, BOOL bCopy);
public:
CFSFolder();
@ -98,12 +98,6 @@ class CFSFolder :
virtual HRESULT WINAPI DragLeave();
virtual HRESULT WINAPI Drop(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
// ISFHelper
virtual HRESULT WINAPI GetUniqueName(LPWSTR pwszName, UINT uLen);
virtual HRESULT WINAPI AddFolder(HWND hwnd, LPCWSTR pwszName, LPITEMIDLIST *ppidlOut);
virtual HRESULT WINAPI DeleteItems(UINT cidl, LPCITEMIDLIST *apidl);
virtual HRESULT WINAPI CopyItems(IShellFolder *pSFFrom, UINT cidl, LPCITEMIDLIST *apidl, BOOL bCopy);
DECLARE_REGISTRY_RESOURCEID(IDR_SHELLFSFOLDER)
DECLARE_NOT_AGGREGATABLE(CFSFolder)
@ -117,7 +111,6 @@ class CFSFolder :
COM_INTERFACE_ENTRY_IID(IID_IPersistFolder3, IPersistFolder3)
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
COM_INTERFACE_ENTRY_IID(IID_IDropTarget, IDropTarget)
COM_INTERFACE_ENTRY_IID(IID_ISFHelper, ISFHelper)
END_COM_MAP()
};

View file

@ -45,7 +45,6 @@
#include "wine/cpanel.h"
#include "CEnumIDListBase.h"
#include "shfldr.h"
#include "shellfolder.h"
#include "CShellItem.h"
#include "CShellLink.h"
#include "CDropTargetHelper.h"

View file

@ -1,61 +0,0 @@
/*
* Defines helper functions to manipulate the contents of an IShellFolder
*
* Copyright 2000 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_SHELLFOLDER_HELP_H
#define __WINE_SHELLFOLDER_HELP_H
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID(IID_ISFHelper, 0x1fe68efbL, 0x1874, 0x9812, 0x56, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
/*****************************************************************************
* ISFHelper interface
*/
#undef INTERFACE
#define INTERFACE ISFHelper
DECLARE_INTERFACE_(ISFHelper,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** ISFHelper methods ***/
STDMETHOD(GetUniqueName)(THIS_ LPWSTR lpName, UINT uLen) PURE;
STDMETHOD(AddFolder)(THIS_ HWND hwnd, LPCWSTR lpName, LPITEMIDLIST * ppidlOut) PURE;
STDMETHOD(DeleteItems)(THIS_ UINT cidl, LPCITEMIDLIST * apidl) PURE;
STDMETHOD(CopyItems)(THIS_ IShellFolder * pSFFrom, UINT cidl, LPCITEMIDLIST * apidl, BOOL bCopy) PURE;
};
#undef INTERFACE
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISFHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISFHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISFHelper_Release(p) (p)->lpVtbl->Release(p)
/*** ISFHelper methods ***/
#define ISFHelper_GetUniqueName(p,a,b) (p)->lpVtbl->GetUniqueName(p,a,b)
#define ISFHelper_AddFolder(p,a,b,c) (p)->lpVtbl->AddFolder(p,a,b,c)
#define ISFHelper_DeleteItems(p,a,b) (p)->lpVtbl->DeleteItems(p,a,b)
#define ISFHelper_CopyItems(p,a,b,c) (p)->lpVtbl->CopyItems(p,a,b,c)
#endif
#endif /* __WINE_SHELLFOLDER_HELP_H */

View file

@ -38,7 +38,6 @@
#include "pidl.h"
#include "shell32_main.h"
#include "shresdef.h"
#include "shellfolder.h"
WINE_DEFAULT_DEBUG_CHANNEL(shell);