Authors: Michael Lin <mlin@corvu.com.au>, Michael Jung <mjung@iss.tu-darmstadt.de>

ISFHelper interface support for UnixFolder (currently only stubs).
This commit is contained in:
Alexandre Julliard 2005-07-05 20:55:43 +00:00
parent a195890bb9
commit d201828370
1 changed files with 63 additions and 0 deletions

View File

@ -49,6 +49,7 @@
#include "wine/debug.h"
#include "shell32_main.h"
#include "shellfolder.h"
#include "shfldr.h"
#include "shresdef.h"
#include "pidl.h"
@ -98,6 +99,7 @@ typedef struct tagStatStruct {
typedef struct _UnixFolder {
const IShellFolder2Vtbl *lpIShellFolder2Vtbl;
const IPersistFolder2Vtbl *lpIPersistFolder2Vtbl;
const ISFHelperVtbl *lpISFHelperVtbl;
LONG m_cRef;
CHAR *m_pszPath;
LPITEMIDLIST m_pidlLocation;
@ -729,6 +731,8 @@ static HRESULT WINAPI UnixFolder_IShellFolder2_QueryInterface(IShellFolder2 *ifa
IsEqualIID(&IID_IPersist, riid))
{
*ppv = &This->lpIPersistFolder2Vtbl;
} else if (IsEqualIID(&IID_ISFHelper, riid)) {
*ppv = &This->lpISFHelperVtbl;
} else {
*ppv = NULL;
return E_NOINTERFACE;
@ -1302,6 +1306,64 @@ static const IPersistFolder2Vtbl UnixFolder_IPersistFolder2_Vtbl = {
UnixFolder_IPersistFolder2_GetCurFolder
};
static HRESULT WINAPI UnixFolder_ISFHelper_QueryInterface(ISFHelper* iface, REFIID riid,
void** ppvObject)
{
return UnixFolder_IShellFolder2_QueryInterface(
(IShellFolder2*)ADJUST_THIS(UnixFolder, ISFHelper, iface), riid, ppvObject);
}
static ULONG WINAPI UnixFolder_ISFHelper_AddRef(ISFHelper* iface)
{
return UnixFolder_IShellFolder2_AddRef(
(IShellFolder2*)ADJUST_THIS(UnixFolder, ISFHelper, iface));
}
static ULONG WINAPI UnixFolder_ISFHelper_Release(ISFHelper* iface)
{
return UnixFolder_IShellFolder2_Release(
(IShellFolder2*)ADJUST_THIS(UnixFolder, ISFHelper, iface));
}
static HRESULT WINAPI UnixFolder_ISFHelper_GetUniqueName(ISFHelper* iface, LPSTR lpName, UINT uLen)
{
FIXME("stub\n");
return E_NOTIMPL;
}
static HRESULT WINAPI UnixFolder_ISFHelper_AddFolder(ISFHelper* iface, HWND hwnd, LPCSTR lpName,
LPITEMIDLIST* ppidlOut)
{
FIXME("stub\n");
return E_NOTIMPL;
}
static HRESULT WINAPI UnixFolder_ISFHelper_DeleteItems(ISFHelper* iface, UINT cidl,
LPCITEMIDLIST* apidl)
{
FIXME("stub\n");
return E_NOTIMPL;
}
static HRESULT WINAPI UnixFolder_ISFHelper_CopyItems(ISFHelper* iface, IShellFolder *psfFrom,
UINT cidl, LPCITEMIDLIST *apidl)
{
FIXME("stub\n");
return E_NOTIMPL;
}
/* VTable for UnixFolder's ISFHelper interface
*/
static const ISFHelperVtbl UnixFolder_ISFHelper_Vtbl = {
UnixFolder_ISFHelper_QueryInterface,
UnixFolder_ISFHelper_AddRef,
UnixFolder_ISFHelper_Release,
UnixFolder_ISFHelper_GetUniqueName,
UnixFolder_ISFHelper_AddFolder,
UnixFolder_ISFHelper_DeleteItems,
UnixFolder_ISFHelper_CopyItems
};
/******************************************************************************
* Unix[Dos]Folder_Constructor [Internal]
*
@ -1325,6 +1387,7 @@ static HRESULT CreateUnixFolder(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, D
if(pUnixFolder) {
pUnixFolder->lpIShellFolder2Vtbl = &UnixFolder_IShellFolder2_Vtbl;
pUnixFolder->lpIPersistFolder2Vtbl = &UnixFolder_IPersistFolder2_Vtbl;
pUnixFolder->lpISFHelperVtbl = &UnixFolder_ISFHelper_Vtbl;
pUnixFolder->m_cRef = 0;
pUnixFolder->m_pszPath = NULL;
pUnixFolder->m_apidlSubDirs = NULL;