shell32: Implement SHCreateShellFolderView (ordinal 256).
Used by IE7's Add On management dialog.
This commit is contained in:
parent
9224609589
commit
a6c81e0754
|
@ -210,7 +210,7 @@
|
|||
249 stdcall -noname PathParseIconLocation(ptr) PathParseIconLocationAW
|
||||
250 stdcall -noname PathRemoveExtension(ptr) PathRemoveExtensionAW
|
||||
251 stdcall -noname PathRemoveArgs(ptr) PathRemoveArgsAW
|
||||
256 stdcall @(ptr ptr) SHELL32_256
|
||||
256 stdcall SHCreateShellFolderView(ptr ptr)
|
||||
258 stdcall -noname LinkWindow_RegisterClass()
|
||||
259 stdcall -noname LinkWindow_UnregisterClass()
|
||||
#299 stub Shl1632_ThunkData32
|
||||
|
|
|
@ -1893,33 +1893,6 @@ HRESULT WINAPI SHCreateStdEnumFmtEtc(
|
|||
return hRes;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* SHELL32_256 (SHELL32.256)
|
||||
*/
|
||||
HRESULT WINAPI SHELL32_256(LPDWORD lpdw0, LPDWORD lpdw1)
|
||||
{
|
||||
HRESULT ret = S_OK;
|
||||
|
||||
FIXME("stub %p 0x%08x %p\n", lpdw0, lpdw0 ? *lpdw0 : 0, lpdw1);
|
||||
|
||||
if (!lpdw0 || *lpdw0 != 0x10)
|
||||
ret = E_INVALIDARG;
|
||||
else
|
||||
{
|
||||
LPVOID lpdata = 0;/*LocalAlloc(LMEM_ZEROINIT, 0x4E4);*/
|
||||
|
||||
if (!lpdata)
|
||||
ret = E_OUTOFMEMORY;
|
||||
else
|
||||
{
|
||||
/* Initialize and return unknown lpdata structure */
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* SHFindFiles (SHELL32.90)
|
||||
*/
|
||||
|
@ -2140,3 +2113,36 @@ HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
|
|||
FIXME("STUB: %i %s\n",iImageList,debugstr_guid(riid));
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* SHCreateShellFolderView [SHELL32.256]
|
||||
*
|
||||
* Create a new instance of the default Shell folder view object.
|
||||
*
|
||||
* RETURNS
|
||||
* Success: S_OK
|
||||
* Failure: error value
|
||||
*
|
||||
* NOTES
|
||||
* see IShellFolder::CreateViewObject
|
||||
*/
|
||||
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv,
|
||||
IShellView **ppsv)
|
||||
{
|
||||
IShellView * psf;
|
||||
HRESULT hRes;
|
||||
|
||||
TRACE("sf=%p outer=%p callback=%p\n",
|
||||
pcsfv->pshf, pcsfv->psvOuter, pcsfv->psfvcb);
|
||||
|
||||
psf = IShellView_Constructor(pcsfv->pshf);
|
||||
|
||||
if (!psf)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
IShellView_AddRef(psf);
|
||||
hRes = IShellView_QueryInterface(psf, &IID_IShellView, (LPVOID *)ppsv);
|
||||
IShellView_Release(psf);
|
||||
|
||||
return hRes;
|
||||
}
|
||||
|
|
|
@ -514,6 +514,31 @@ DECLARE_INTERFACE_(IACList2,IACList)
|
|||
#define IACList2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* IShellFolderViewCB interface
|
||||
*/
|
||||
|
||||
#define INTERFACE IShellFolderViewCB
|
||||
DECLARE_INTERFACE_(IShellFolderViewCB,IUnknown)
|
||||
{
|
||||
/*** IUnknown methods ***/
|
||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IShellFolderViewCB methods ***/
|
||||
STDMETHOD(MessageSFVCB)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#if !defined(__cplusplus) || defined(CINTERFACE)
|
||||
/*** IUnknown methods ***/
|
||||
#define IShellFolderViewCB_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
||||
#define IShellFolderViewCB_AddRef(p) (p)->lpVtbl->AddRef(p)
|
||||
#define IShellFolderViewCB_Release(p) (p)->lpVtbl->Release(p)
|
||||
/*** IShellFolderViewCB methods ***/
|
||||
#define IShellFolderViewCB_MessageSFVCB(p,a,b,c) (p)->lpVtbl->MessageSFVCB(p,a,b,c)
|
||||
#endif
|
||||
|
||||
/* IProgressDialog interface */
|
||||
#define PROGDLG_NORMAL 0x00000000
|
||||
#define PROGDLG_MODAL 0x00000001
|
||||
|
@ -737,6 +762,16 @@ HRESULT WINAPI SHCreateShellFolderViewEx(LPCSFV pshfvi, IShellView **ppshv);
|
|||
#define SFVM_GET_WEBVIEW_THEME 86 /* undocumented */
|
||||
#define SFVM_GETDEFERREDVIEWSETTINGS 92 /* undocumented */
|
||||
|
||||
typedef struct _SFV_CREATE
|
||||
{
|
||||
UINT cbSize;
|
||||
IShellFolder *pshf;
|
||||
IShellView *psvOuter;
|
||||
IShellFolderViewCB *psfvcb;
|
||||
} SFV_CREATE;
|
||||
|
||||
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pscfv, IShellView **ppsv);
|
||||
|
||||
/* Types and definitions for the SFM_* parameters */
|
||||
#include <pshpack8.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue