mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 03:05:40 +00:00
Sync to Wine-20050830:
Michael Jung <mjung@iss.tu-darmstadt.de> - Initialize all members in UnixFolder constructor. Support NULL value pidls in GetDisplayNameOf method. - Implemented IPersist::GetClassID. - Use wine_get_dos_file_name instead of GetFullPathName. - Implemented 'My Documents' folder. - Added stubbed implementation of IPersistPropertyBag interface. Register unixfs as CLSID_FolderShortcut. - Clone pidlLast before free'ing pidl after call to SHBindToParent. - Use FIXME's in stubs instead of TRACE's. Infer pathmode from CLSID in UnixFolderConstructor. Fail in IShellFolder::BindToObject, if folder does not initialize. - Use StringFromGUID2 instead of StringFromCLSID in UNIXFS_is_rooted_at_desktop. Michael Jung <mjung@iss.tu-darmstadt.de> Ge van Geldorp <gvg@reactos.com> - Prepend Desktop folder path for files/directories stored in the filesystem Desktop folder when GetDisplayNameOf is called with the SHGDN_FORPARSING flags. - Add testcases. Ge van Geldorp <gvg@reactos.com> - Fix resource leak on error paths. - Do not load all shell32 icons during initialization, it wastes a lot of memory Alexandre Julliard <julliard@winehq.org> - Replace the _ICOM_THIS_From macros by inline functions the way it's already done in shelllink.c. - Use ERR instead of DPRINTF in dump_pidl_hex. - Don't prefix the functions DllCanUnloadNow, DllGetClassObject and Dll(Un)RegisterServer with the dll name so that the compiler can check the prototypes. - Uncomment the typedef in the DECLARE_INTERFACE macro, and get rid of duplicate typedefs. - Get rid of the _ICOM_THIS macros and call the inline function directly instead. - Removed the broken mmap64 configure check, and moved the _FILE_OFFSET_BITS define to wine/port.h. Made sure that all files that need the define include it. - Added missing ntdll imports. Francois Gouget <fgouget@codeweavers.com> - Fix ShellExecute("\"foo.doc\"") for Internet Explorer 6. - Update the conformance tests accordingly. - Tweak a trace because it's very confusing to see the path with no escaped quotes in ShellExecuteA() and then with escaped quotes in ShellExecuteExW32() (due to debugstr_w()). - Fix the return value of SHELL_Argify() so it once again returns true if a '%1' or equivalent placeholder was found. This fixes ShellExecuteEx(lpFile="foo.txt", lpClass="txtfile"). - Fix handling of SEE_MASK_CLASSNAME and SEE_MASK_CLASSKEY. They are not disjoint flags. Mike McCormack <mike@codeweavers.com> - Warning fixes for gcc 4.0. - Fix some gcc 4.0 warnings. Jozef Stefanka <jstefanka@codeweavers.com> - Fixed browsing to other directories in Word 2003 file open dialog. Double clicking on a folder in the File->Open dialog works now. Steven Edwards <steven_ed4153@yahoo.com> - Correct definition of SFGAO_STORAGEANCESTOR. Jason Edmeades <us@edmeades.me.uk> - Add the time to the file display dialog modified column. - Handle context menu->refresh, and F5 to initiate a refresh of the file dialog. svn path=/trunk/; revision=17714
This commit is contained in:
parent
07151bdc1a
commit
75b0c7ce6c
25 changed files with 411 additions and 428 deletions
|
@ -46,6 +46,8 @@ DEFINE_GUID(CLSID_RecycleBin, 0x645FF040, 0x5081, 0x101B, 0x9F, 0x08, 0x00, 0xAA
|
||||||
DEFINE_GUID(CLSID_ControlPanel, 0x21EC2020, 0x3AEA, 0x1069, 0xA2, 0xDD, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
|
DEFINE_GUID(CLSID_ControlPanel, 0x21EC2020, 0x3AEA, 0x1069, 0xA2, 0xDD, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
|
||||||
DEFINE_GUID(CLSID_Printers, 0x2227A280, 0x3AEA, 0x1069, 0xA2, 0xDE, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
|
DEFINE_GUID(CLSID_Printers, 0x2227A280, 0x3AEA, 0x1069, 0xA2, 0xDE, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
|
||||||
DEFINE_GUID(CLSID_MyDocuments, 0x450d8fba, 0xad25, 0x11d0, 0x98, 0xa8, 0x08, 0x00, 0x36, 0x1b, 0x11, 0x03);
|
DEFINE_GUID(CLSID_MyDocuments, 0x450d8fba, 0xad25, 0x11d0, 0x98, 0xa8, 0x08, 0x00, 0x36, 0x1b, 0x11, 0x03);
|
||||||
|
DEFINE_GUID(CLSID_FolderShortcut, 0x0AFACED1, 0xE828, 0x11D1, 0x91, 0x87, 0xB5, 0x32, 0xF1, 0xE9, 0x57, 0x5D);
|
||||||
|
|
||||||
|
|
||||||
DEFINE_GUID(IID_IQueryAssociations, 0xc46ca590, 0x3c3f, 0x11d2, 0xbe, 0xe6, 0x00, 0x00, 0xf8, 0x05, 0xca, 0x57);
|
DEFINE_GUID(IID_IQueryAssociations, 0xc46ca590, 0x3c3f, 0x11d2, 0xbe, 0xe6, 0x00, 0x00, 0xf8, 0x05, 0xca, 0x57);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ SRCDIR = @srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
MODULE = shell32.dll
|
MODULE = shell32.dll
|
||||||
IMPORTLIB = libshell32.$(IMPLIBEXT)
|
IMPORTLIB = libshell32.$(IMPLIBEXT)
|
||||||
IMPORTS = shlwapi comctl32 user32 gdi32 advapi32 kernel32
|
IMPORTS = shlwapi comctl32 user32 gdi32 advapi32 kernel32 ntdll
|
||||||
DELAYIMPORTS = ole32
|
DELAYIMPORTS = ole32
|
||||||
EXTRALIBS = -luuid $(LIBUNICODE)
|
EXTRALIBS = -luuid $(LIBUNICODE)
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ RC_BINARIES = \
|
||||||
folder.ico \
|
folder.ico \
|
||||||
folder_open.ico \
|
folder_open.ico \
|
||||||
mycomputer.ico \
|
mycomputer.ico \
|
||||||
|
mydocs.ico \
|
||||||
netdrive.ico \
|
netdrive.ico \
|
||||||
netdrive2.ico \
|
netdrive2.ico \
|
||||||
printer.ico \
|
printer.ico \
|
||||||
|
|
|
@ -79,8 +79,11 @@ typedef struct
|
||||||
static const IAutoCompleteVtbl acvt;
|
static const IAutoCompleteVtbl acvt;
|
||||||
static const IAutoComplete2Vtbl ac2vt;
|
static const IAutoComplete2Vtbl ac2vt;
|
||||||
|
|
||||||
#define _IAutoComplete2_Offset ((int)(&(((IAutoCompleteImpl*)0)->lpvtblAutoComplete2)))
|
static inline IAutoCompleteImpl *impl_from_IAutoComplete2( IAutoComplete2 *iface )
|
||||||
#define _ICOM_THIS_From_IAutoComplete2(class, name) class* This = (class*)(((char*)name)-_IAutoComplete2_Offset);
|
{
|
||||||
|
return (IAutoCompleteImpl *)((char*)iface - FIELD_OFFSET(IAutoCompleteImpl, lpvtblAutoComplete2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
converts This to an interface pointer
|
converts This to an interface pointer
|
||||||
|
@ -329,7 +332,7 @@ static HRESULT WINAPI IAutoComplete2_fnQueryInterface(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl, iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
|
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
|
||||||
|
|
||||||
|
@ -342,7 +345,7 @@ static HRESULT WINAPI IAutoComplete2_fnQueryInterface(
|
||||||
static ULONG WINAPI IAutoComplete2_fnAddRef(
|
static ULONG WINAPI IAutoComplete2_fnAddRef(
|
||||||
IAutoComplete2 * iface)
|
IAutoComplete2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl,iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -355,7 +358,7 @@ static ULONG WINAPI IAutoComplete2_fnAddRef(
|
||||||
static ULONG WINAPI IAutoComplete2_fnRelease(
|
static ULONG WINAPI IAutoComplete2_fnRelease(
|
||||||
IAutoComplete2 * iface)
|
IAutoComplete2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl,iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -369,7 +372,7 @@ static HRESULT WINAPI IAutoComplete2_fnEnable(
|
||||||
IAutoComplete2 * iface,
|
IAutoComplete2 * iface,
|
||||||
BOOL fEnable)
|
BOOL fEnable)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl, iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%s)\n", This, (fEnable)?"true":"false");
|
TRACE ("(%p)->(%s)\n", This, (fEnable)?"true":"false");
|
||||||
|
|
||||||
|
@ -386,7 +389,7 @@ static HRESULT WINAPI IAutoComplete2_fnInit(
|
||||||
LPCOLESTR pwzsRegKeyPath,
|
LPCOLESTR pwzsRegKeyPath,
|
||||||
LPCOLESTR pwszQuickComplete)
|
LPCOLESTR pwszQuickComplete)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl, iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -402,7 +405,7 @@ static HRESULT WINAPI IAutoComplete2_fnGetOptions(
|
||||||
{
|
{
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl, iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE("(%p) -> (%p)\n", This, pdwFlag);
|
TRACE("(%p) -> (%p)\n", This, pdwFlag);
|
||||||
|
|
||||||
|
@ -420,7 +423,7 @@ static HRESULT WINAPI IAutoComplete2_fnSetOptions(
|
||||||
{
|
{
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
_ICOM_THIS_From_IAutoComplete2(IAutoCompleteImpl, iface);
|
IAutoCompleteImpl *This = impl_from_IAutoComplete2(iface);
|
||||||
|
|
||||||
TRACE("(%p) -> (0x%lx)\n", This, dwFlag);
|
TRACE("(%p) -> (0x%lx)\n", This, dwFlag);
|
||||||
|
|
||||||
|
|
|
@ -76,14 +76,20 @@ static const IPersistFolder2Vtbl vt_PersistFolder2;
|
||||||
static const IShellExecuteHookWVtbl vt_ShellExecuteHookW;
|
static const IShellExecuteHookWVtbl vt_ShellExecuteHookW;
|
||||||
static const IShellExecuteHookAVtbl vt_ShellExecuteHookA;
|
static const IShellExecuteHookAVtbl vt_ShellExecuteHookA;
|
||||||
|
|
||||||
#define _IPersistFolder2_Offset ((int)(&(((ICPanelImpl*)0)->lpVtblPersistFolder2)))
|
static inline ICPanelImpl *impl_from_IPersistFolder2( IPersistFolder2 *iface )
|
||||||
#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset);
|
{
|
||||||
|
return (ICPanelImpl *)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblPersistFolder2));
|
||||||
|
}
|
||||||
|
|
||||||
#define IShellExecuteHookW_Offset ((int)(&(((ICPanelImpl*)0)->lpVtblShellExecuteHookW)))
|
static inline ICPanelImpl *impl_from_IShellExecuteHookW( IShellExecuteHookW *iface )
|
||||||
#define _ICOM_THIS_From_IShellExecuteHookW(class, name) class* This = (class*)(((char*)name)-IShellExecuteHookW_Offset);
|
{
|
||||||
|
return (ICPanelImpl *)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblShellExecuteHookW));
|
||||||
|
}
|
||||||
|
|
||||||
#define IShellExecuteHookA_Offset ((int)(&(((ICPanelImpl*)0)->lpVtblShellExecuteHookA)))
|
static inline ICPanelImpl *impl_from_IShellExecuteHookA( IShellExecuteHookA *iface )
|
||||||
#define _ICOM_THIS_From_IShellExecuteHookA(class, name) class* This = (class*)(((char*)name)-IShellExecuteHookA_Offset);
|
{
|
||||||
|
return (ICPanelImpl *)((char*)iface - FIELD_OFFSET(ICPanelImpl, lpVtblShellExecuteHookA));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -824,7 +830,7 @@ static const IShellFolder2Vtbl vt_ShellFolder2 =
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI ICPanel_PersistFolder2_QueryInterface(IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObject)
|
static HRESULT WINAPI ICPanel_PersistFolder2_QueryInterface(IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObject)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -836,7 +842,7 @@ static HRESULT WINAPI ICPanel_PersistFolder2_QueryInterface(IPersistFolder2 * if
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI ICPanel_PersistFolder2_AddRef(IPersistFolder2 * iface)
|
static ULONG WINAPI ICPanel_PersistFolder2_AddRef(IPersistFolder2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -848,7 +854,7 @@ static ULONG WINAPI ICPanel_PersistFolder2_AddRef(IPersistFolder2 * iface)
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI ICPanel_PersistFolder2_Release(IPersistFolder2 * iface)
|
static ULONG WINAPI ICPanel_PersistFolder2_Release(IPersistFolder2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -860,7 +866,7 @@ static ULONG WINAPI ICPanel_PersistFolder2_Release(IPersistFolder2 * iface)
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI ICPanel_PersistFolder2_GetClassID(IPersistFolder2 * iface, CLSID * lpClassId)
|
static HRESULT WINAPI ICPanel_PersistFolder2_GetClassID(IPersistFolder2 * iface, CLSID * lpClassId)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -878,7 +884,7 @@ static HRESULT WINAPI ICPanel_PersistFolder2_GetClassID(IPersistFolder2 * iface,
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI ICPanel_PersistFolder2_Initialize(IPersistFolder2 * iface, LPCITEMIDLIST pidl)
|
static HRESULT WINAPI ICPanel_PersistFolder2_Initialize(IPersistFolder2 * iface, LPCITEMIDLIST pidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
TRACE("(%p)->(%p)\n", This, pidl);
|
TRACE("(%p)->(%p)\n", This, pidl);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -888,7 +894,7 @@ static HRESULT WINAPI ICPanel_PersistFolder2_Initialize(IPersistFolder2 * iface,
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI ICPanel_PersistFolder2_GetCurFolder(IPersistFolder2 * iface, LPITEMIDLIST * pidl)
|
static HRESULT WINAPI ICPanel_PersistFolder2_GetCurFolder(IPersistFolder2 * iface, LPITEMIDLIST * pidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p)\n", This, pidl);
|
TRACE("(%p)->(%p)\n", This, pidl);
|
||||||
|
|
||||||
|
@ -931,7 +937,7 @@ HRESULT CPanel_GetIconLocationW(LPITEMIDLIST pidl,
|
||||||
static HRESULT WINAPI IShellExecuteHookW_fnQueryInterface(
|
static HRESULT WINAPI IShellExecuteHookW_fnQueryInterface(
|
||||||
IShellExecuteHookW* iface, REFIID riid, void** ppvObject)
|
IShellExecuteHookW* iface, REFIID riid, void** ppvObject)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExecuteHookW(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IShellExecuteHookW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -940,7 +946,7 @@ static HRESULT WINAPI IShellExecuteHookW_fnQueryInterface(
|
||||||
|
|
||||||
static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnAddRef(IShellExecuteHookW* iface)
|
static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnAddRef(IShellExecuteHookW* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExecuteHookW(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IShellExecuteHookW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -949,7 +955,7 @@ static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnAddRef(IShellExecuteHookW* i
|
||||||
|
|
||||||
static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnRelease(IShellExecuteHookW* iface)
|
static ULONG STDMETHODCALLTYPE IShellExecuteHookW_fnRelease(IShellExecuteHookW* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExecuteHookW(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IShellExecuteHookW(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1017,7 +1023,7 @@ static const IShellExecuteHookWVtbl vt_ShellExecuteHookW =
|
||||||
|
|
||||||
static HRESULT WINAPI IShellExecuteHookA_fnQueryInterface(IShellExecuteHookA* iface, REFIID riid, void** ppvObject)
|
static HRESULT WINAPI IShellExecuteHookA_fnQueryInterface(IShellExecuteHookA* iface, REFIID riid, void** ppvObject)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExecuteHookA(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IShellExecuteHookA(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -1026,7 +1032,7 @@ static HRESULT WINAPI IShellExecuteHookA_fnQueryInterface(IShellExecuteHookA* if
|
||||||
|
|
||||||
static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnAddRef(IShellExecuteHookA* iface)
|
static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnAddRef(IShellExecuteHookA* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExecuteHookA(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IShellExecuteHookA(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -1035,7 +1041,7 @@ static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnAddRef(IShellExecuteHookA* i
|
||||||
|
|
||||||
static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnRelease(IShellExecuteHookA* iface)
|
static ULONG STDMETHODCALLTYPE IShellExecuteHookA_fnRelease(IShellExecuteHookA* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExecuteHookA(ICPanelImpl, iface);
|
ICPanelImpl *This = impl_from_IShellExecuteHookA(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
|
|
@ -245,7 +245,7 @@ static void dump_pidl_hex( LPCITEMIDLIST pidl )
|
||||||
if( i!=(n-1) && (i%max_line) != (max_line-1) )
|
if( i!=(n-1) && (i%max_line) != (max_line-1) )
|
||||||
continue;
|
continue;
|
||||||
szAscii[ (i%max_line)+1 ] = 0;
|
szAscii[ (i%max_line)+1 ] = 0;
|
||||||
DPRINTF("%-*s %s\n", max_line*3, szHex, szAscii );
|
ERR("%-*s %s\n", max_line*3, szHex, szAscii );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,11 +60,16 @@ static const IExtractIconAVtbl eiavt;
|
||||||
static const IExtractIconWVtbl eivt;
|
static const IExtractIconWVtbl eivt;
|
||||||
static const IPersistFileVtbl pfvt;
|
static const IPersistFileVtbl pfvt;
|
||||||
|
|
||||||
#define _IPersistFile_Offset ((int)(&(((IExtractIconWImpl*)0)->lpvtblPersistFile)))
|
static inline IExtractIconW *impl_from_IPersistFile( IPersistFile *iface )
|
||||||
#define _ICOM_THIS_From_IPersistFile(class, name) class* This = (class*)(((char*)name)-_IPersistFile_Offset);
|
{
|
||||||
|
return (IExtractIconW *)((char*)iface - FIELD_OFFSET(IExtractIconWImpl, lpvtblPersistFile));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline IExtractIconW *impl_from_IExtractIconA( IExtractIconA *iface )
|
||||||
|
{
|
||||||
|
return (IExtractIconW *)((char*)iface - FIELD_OFFSET(IExtractIconWImpl, lpvtblExtractIconA));
|
||||||
|
}
|
||||||
|
|
||||||
#define _IExtractIconA_Offset ((int)(&(((IExtractIconWImpl*)0)->lpvtblExtractIconA)))
|
|
||||||
#define _ICOM_THIS_From_IExtractIconA(class, name) class* This = (class*)(((char*)name)-_IExtractIconA_Offset);
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* IExtractIconW_Constructor
|
* IExtractIconW_Constructor
|
||||||
|
@ -261,7 +266,7 @@ static HRESULT WINAPI IExtractIconW_fnGetIconLocation(
|
||||||
if(IsEqualGUID(riid, &CLSID_MyComputer))
|
if(IsEqualGUID(riid, &CLSID_MyComputer))
|
||||||
*piIndex = -IDI_SHELL_MY_COMPUTER;
|
*piIndex = -IDI_SHELL_MY_COMPUTER;
|
||||||
else if(IsEqualGUID(riid, &CLSID_MyDocuments))
|
else if(IsEqualGUID(riid, &CLSID_MyDocuments))
|
||||||
*piIndex = -IDI_SHELL_FOLDER;
|
*piIndex = -IDI_SHELL_MY_DOCUMENTS;
|
||||||
else if(IsEqualGUID(riid, &CLSID_NetworkPlaces))
|
else if(IsEqualGUID(riid, &CLSID_NetworkPlaces))
|
||||||
*piIndex = -IDI_SHELL_MY_NETWORK_PLACES;
|
*piIndex = -IDI_SHELL_MY_NETWORK_PLACES;
|
||||||
else
|
else
|
||||||
|
@ -419,7 +424,7 @@ IExtractIconA* IExtractIconA_Constructor(LPCITEMIDLIST pidl)
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI IExtractIconA_fnQueryInterface(IExtractIconA * iface, REFIID riid, LPVOID *ppvObj)
|
static HRESULT WINAPI IExtractIconA_fnQueryInterface(IExtractIconA * iface, REFIID riid, LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IExtractIconA(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IExtractIconA(iface);
|
||||||
|
|
||||||
return IExtractIconW_QueryInterface(This, riid, ppvObj);
|
return IExtractIconW_QueryInterface(This, riid, ppvObj);
|
||||||
}
|
}
|
||||||
|
@ -429,7 +434,7 @@ static HRESULT WINAPI IExtractIconA_fnQueryInterface(IExtractIconA * iface, REFI
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IExtractIconA_fnAddRef(IExtractIconA * iface)
|
static ULONG WINAPI IExtractIconA_fnAddRef(IExtractIconA * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IExtractIconA(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IExtractIconA(iface);
|
||||||
|
|
||||||
return IExtractIconW_AddRef(This);
|
return IExtractIconW_AddRef(This);
|
||||||
}
|
}
|
||||||
|
@ -438,7 +443,7 @@ static ULONG WINAPI IExtractIconA_fnAddRef(IExtractIconA * iface)
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IExtractIconA_fnRelease(IExtractIconA * iface)
|
static ULONG WINAPI IExtractIconA_fnRelease(IExtractIconA * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IExtractIconA(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IExtractIconA(iface);
|
||||||
|
|
||||||
return IExtractIconW_AddRef(This);
|
return IExtractIconW_AddRef(This);
|
||||||
}
|
}
|
||||||
|
@ -457,7 +462,7 @@ static HRESULT WINAPI IExtractIconA_fnGetIconLocation(
|
||||||
{
|
{
|
||||||
HRESULT ret;
|
HRESULT ret;
|
||||||
LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, cchMax * sizeof(WCHAR));
|
LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, cchMax * sizeof(WCHAR));
|
||||||
_ICOM_THIS_From_IExtractIconA(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IExtractIconA(iface);
|
||||||
|
|
||||||
TRACE("(%p) (flags=%u %p %u %p %p)\n", This, uFlags, szIconFile, cchMax, piIndex, pwFlags);
|
TRACE("(%p) (flags=%u %p %u %p %p)\n", This, uFlags, szIconFile, cchMax, piIndex, pwFlags);
|
||||||
|
|
||||||
|
@ -476,7 +481,7 @@ static HRESULT WINAPI IExtractIconA_fnExtract(IExtractIconA * iface, LPCSTR pszF
|
||||||
HRESULT ret;
|
HRESULT ret;
|
||||||
INT len = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0);
|
INT len = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0);
|
||||||
LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
_ICOM_THIS_From_IExtractIconA(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IExtractIconA(iface);
|
||||||
|
|
||||||
TRACE("(%p) (file=%p index=%u %p %p size=%u)\n", This, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize);
|
TRACE("(%p) (file=%p index=%u %p %p size=%u)\n", This, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize);
|
||||||
|
|
||||||
|
@ -503,7 +508,7 @@ static HRESULT WINAPI IEIPersistFile_fnQueryInterface(
|
||||||
REFIID iid,
|
REFIID iid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IPersistFile(iface);
|
||||||
|
|
||||||
return IExtractIconW_QueryInterface(This, iid, ppvObj);
|
return IExtractIconW_QueryInterface(This, iid, ppvObj);
|
||||||
}
|
}
|
||||||
|
@ -514,7 +519,7 @@ static HRESULT WINAPI IEIPersistFile_fnQueryInterface(
|
||||||
static ULONG WINAPI IEIPersistFile_fnAddRef(
|
static ULONG WINAPI IEIPersistFile_fnAddRef(
|
||||||
IPersistFile *iface)
|
IPersistFile *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IPersistFile(iface);
|
||||||
|
|
||||||
return IExtractIconW_AddRef(This);
|
return IExtractIconW_AddRef(This);
|
||||||
}
|
}
|
||||||
|
@ -525,7 +530,7 @@ static ULONG WINAPI IEIPersistFile_fnAddRef(
|
||||||
static ULONG WINAPI IEIPersistFile_fnRelease(
|
static ULONG WINAPI IEIPersistFile_fnRelease(
|
||||||
IPersistFile *iface)
|
IPersistFile *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IPersistFile(iface);
|
||||||
|
|
||||||
return IExtractIconW_Release(This);
|
return IExtractIconW_Release(This);
|
||||||
}
|
}
|
||||||
|
@ -552,7 +557,7 @@ static HRESULT WINAPI IEIPersistFile_fnGetClassID(
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI IEIPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFileName, DWORD dwMode)
|
static HRESULT WINAPI IEIPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFileName, DWORD dwMode)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IExtractIconW, iface);
|
IExtractIconW *This = impl_from_IPersistFile(iface);
|
||||||
FIXME("%p\n", This);
|
FIXME("%p\n", This);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
|
|
||||||
|
|
|
@ -413,16 +413,19 @@ BOOL SIC_Initialize(void)
|
||||||
ImageList_SetBkColor(ShellSmallIconList, CLR_NONE);
|
ImageList_SetBkColor(ShellSmallIconList, CLR_NONE);
|
||||||
ImageList_SetBkColor(ShellBigIconList, CLR_NONE);
|
ImageList_SetBkColor(ShellBigIconList, CLR_NONE);
|
||||||
|
|
||||||
for (index=1; index<39; index++)
|
/*
|
||||||
{
|
* Wine will extract and cache all shell32 icons here. That's because
|
||||||
|
* they are unable to extract resources from their built-in DLLs.
|
||||||
|
* We don't need that, but we still want to make sure that the very
|
||||||
|
* first icon in the image lists is icon 1 from shell32.dll, since
|
||||||
|
* that's the default icon.
|
||||||
|
*/
|
||||||
|
index = 1;
|
||||||
hSm = (HICON)LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(index), IMAGE_ICON, cx_small, cy_small, LR_SHARED);
|
hSm = (HICON)LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(index), IMAGE_ICON, cx_small, cy_small, LR_SHARED);
|
||||||
hLg = (HICON)LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(index), IMAGE_ICON, cx_large, cy_large, LR_SHARED);
|
hLg = (HICON)LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(index), IMAGE_ICON, cx_large, cy_large, LR_SHARED);
|
||||||
|
|
||||||
if(!hSm)
|
if(hSm)
|
||||||
{
|
{
|
||||||
hSm = LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(1), IMAGE_ICON, cx_small, cy_small, LR_SHARED);
|
|
||||||
hLg = LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(1), IMAGE_ICON, cx_large, cy_large, LR_SHARED);
|
|
||||||
}
|
|
||||||
SIC_IconAppend (swShell32Name, index - 1, hSm, hLg, 0);
|
SIC_IconAppend (swShell32Name, index - 1, hSm, hLg, 0);
|
||||||
SIC_IconAppend (swShell32Name, -index, hSm, hLg, 0);
|
SIC_IconAppend (swShell32Name, -index, hSm, hLg, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1209,87 +1209,6 @@ HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl,
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
* SHELL_GetPathFromIDListA
|
|
||||||
*/
|
|
||||||
HRESULT SHELL_GetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath, UINT uOutSize)
|
|
||||||
{
|
|
||||||
HRESULT hr = S_OK;
|
|
||||||
|
|
||||||
pszPath[0]=0;
|
|
||||||
|
|
||||||
/* One case is a PIDL rooted at desktop level */
|
|
||||||
if (_ILIsDesktop(pidl) || _ILIsValue(pidl) || _ILIsFolder(pidl))
|
|
||||||
{
|
|
||||||
hr = SHGetSpecialFolderPathA(0, pszPath, CSIDL_DESKTOP, FALSE);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
PathAddBackslashA(pszPath);
|
|
||||||
}
|
|
||||||
/* The only other valid case is an item ID list beginning at "My Computer" */
|
|
||||||
else if (_ILIsMyComputer(pidl))
|
|
||||||
pidl = ILGetNext(pidl);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
{
|
|
||||||
LPSTR txt;
|
|
||||||
|
|
||||||
while(pidl && pidl->mkid.cb)
|
|
||||||
{
|
|
||||||
if (_ILIsSpecialFolder(pidl))
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
txt = _ILGetTextPointer(pidl);
|
|
||||||
if (!txt)
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (lstrlenA(txt) > pidl->mkid.cb)
|
|
||||||
ERR("pidl %p is borked\n",pidl);
|
|
||||||
|
|
||||||
/* make sure there's enough space for the next segment */
|
|
||||||
if ((lstrlenA(txt) + lstrlenA(pszPath)) > uOutSize)
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
lstrcatA( pszPath, txt );
|
|
||||||
|
|
||||||
pidl = ILGetNext(pidl);
|
|
||||||
if (!pidl)
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Are we at the end and successfully converted the complete PIDL? */
|
|
||||||
if (!pidl->mkid.cb)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if ((lstrlenA(pszPath) + 1) > uOutSize)
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!PathAddBackslashA(pszPath))
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
|
|
||||||
TRACE_(shell)("-- %s, 0x%08lx\n", pszPath, hr);
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* SHGetPathFromIDListA [SHELL32.@][NT 4.0: SHELL32.220]
|
* SHGetPathFromIDListA [SHELL32.@][NT 4.0: SHELL32.220]
|
||||||
*
|
*
|
||||||
|
@ -1307,100 +1226,14 @@ HRESULT SHELL_GetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath, UINT uOutSiz
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath)
|
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
WCHAR wszPath[MAX_PATH];
|
||||||
|
BOOL bSuccess;
|
||||||
|
|
||||||
TRACE_(shell)("(pidl=%p,%p)\n",pidl,pszPath);
|
bSuccess = SHGetPathFromIDListW(pidl, wszPath);
|
||||||
pdump(pidl);
|
if (bSuccess)
|
||||||
|
WideCharToMultiByte(CP_ACP, 0, wszPath, -1, pszPath, MAX_PATH, NULL, NULL);
|
||||||
|
|
||||||
if (!pidl)
|
return bSuccess;
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
hr = SHELL_GetPathFromIDListA(pidl, pszPath, MAX_PATH);
|
|
||||||
|
|
||||||
return SUCCEEDED(hr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
* SHELL_GetPathFromIDListW
|
|
||||||
*/
|
|
||||||
HRESULT SHELL_GetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath, UINT uOutSize)
|
|
||||||
{
|
|
||||||
HRESULT hr = S_OK;
|
|
||||||
UINT len;
|
|
||||||
|
|
||||||
pszPath[0]=0;
|
|
||||||
|
|
||||||
/* One case is a PIDL rooted at desktop level */
|
|
||||||
if (_ILIsDesktop(pidl) ||_ILIsValue(pidl) || _ILIsFolder(pidl))
|
|
||||||
{
|
|
||||||
hr = SHGetSpecialFolderPathW(0, pszPath, CSIDL_DESKTOP, FALSE);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
PathAddBackslashW(pszPath);
|
|
||||||
}
|
|
||||||
/* The only other valid case is an item ID list beginning at "My Computer" */
|
|
||||||
else if (_ILIsMyComputer(pidl))
|
|
||||||
pidl = ILGetNext(pidl);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
{
|
|
||||||
LPSTR txt;
|
|
||||||
|
|
||||||
while(pidl && pidl->mkid.cb)
|
|
||||||
{
|
|
||||||
if (_ILIsSpecialFolder(pidl))
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
txt = _ILGetTextPointer(pidl);
|
|
||||||
if (!txt)
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (lstrlenA(txt) > pidl->mkid.cb)
|
|
||||||
ERR("pidl %p is borked\n",pidl);
|
|
||||||
len = MultiByteToWideChar(CP_ACP, 0, txt, -1, NULL, 0);
|
|
||||||
if ( (lstrlenW(pszPath) + len) > uOutSize )
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
MultiByteToWideChar(CP_ACP, 0, txt, -1,
|
|
||||||
&pszPath[lstrlenW(pszPath)], len);
|
|
||||||
|
|
||||||
pidl = ILGetNext(pidl);
|
|
||||||
if (!pidl)
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Are we at the end and successfully converted the complete PIDL? */
|
|
||||||
if (!pidl->mkid.cb)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if ((lstrlenW(pszPath) + 1) > uOutSize )
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!PathAddBackslashW(pszPath))
|
|
||||||
{
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
hr = E_INVALIDARG;
|
|
||||||
|
|
||||||
TRACE_(shell)("-- %s, 0x%08lx\n", debugstr_w(pszPath), hr);
|
|
||||||
return hr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
@ -1409,6 +1242,10 @@ HRESULT SHELL_GetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath, UINT uOutSi
|
||||||
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
|
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
LPCITEMIDLIST pidlLast;
|
||||||
|
LPSHELLFOLDER psfFolder;
|
||||||
|
DWORD dwAttributes;
|
||||||
|
STRRET strret;
|
||||||
|
|
||||||
TRACE_(shell)("(pidl=%p,%p)\n", pidl, debugstr_w(pszPath));
|
TRACE_(shell)("(pidl=%p,%p)\n", pidl, debugstr_w(pszPath));
|
||||||
pdump(pidl);
|
pdump(pidl);
|
||||||
|
@ -1416,7 +1253,21 @@ BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
|
||||||
if (!pidl)
|
if (!pidl)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
hr = SHELL_GetPathFromIDListW(pidl, pszPath, MAX_PATH);
|
hr = SHBindToParent(pidl, &IID_IShellFolder, (VOID**)&psfFolder, &pidlLast);
|
||||||
|
if (FAILED(hr)) return FALSE;
|
||||||
|
|
||||||
|
dwAttributes = SFGAO_FILESYSTEM;
|
||||||
|
hr = IShellFolder_GetAttributesOf(psfFolder, 1, &pidlLast, &dwAttributes);
|
||||||
|
if (FAILED(hr) || !(dwAttributes & SFGAO_FILESYSTEM)) {
|
||||||
|
IShellFolder_Release(psfFolder);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = IShellFolder_GetDisplayNameOf(psfFolder, pidlLast, SHGDN_FORPARSING, &strret);
|
||||||
|
IShellFolder_Release(psfFolder);
|
||||||
|
if (FAILED(hr)) return FALSE;
|
||||||
|
|
||||||
|
hr = StrRetToBufW(&strret, pidlLast, pszPath, MAX_PATH);
|
||||||
|
|
||||||
TRACE_(shell)("-- %s, 0x%08lx\n",debugstr_w(pszPath), hr);
|
TRACE_(shell)("-- %s, 0x%08lx\n",debugstr_w(pszPath), hr);
|
||||||
return SUCCEEDED(hr);
|
return SUCCEEDED(hr);
|
||||||
|
@ -2135,7 +1986,14 @@ BOOL _ILGetFileDate (LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
|
||||||
{
|
{
|
||||||
FileTimeToLocalFileTime(&ft, &lft);
|
FileTimeToLocalFileTime(&ft, &lft);
|
||||||
FileTimeToSystemTime (&lft, &time);
|
FileTimeToSystemTime (&lft, &time);
|
||||||
|
|
||||||
ret = GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&time, NULL, pOut, uOutSize);
|
ret = GetDateFormatA(LOCALE_USER_DEFAULT,DATE_SHORTDATE,&time, NULL, pOut, uOutSize);
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
/* Append space + time without seconds */
|
||||||
|
pOut[ret-1] = ' ';
|
||||||
|
GetTimeFormatA(LOCALE_USER_DEFAULT, TIME_NOSECONDS, &time, NULL, &pOut[ret], uOutSize - ret);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -313,7 +313,7 @@ static HRESULT register_coclasses(struct regsvr_coclass const *list)
|
||||||
&shellfolder_key, NULL);
|
&shellfolder_key, NULL);
|
||||||
if (res != ERROR_SUCCESS) goto error_close_clsid_key;
|
if (res != ERROR_SUCCESS) goto error_close_clsid_key;
|
||||||
if (list->flags & SHELLFOLDER_WANTSFORPARSING)
|
if (list->flags & SHELLFOLDER_WANTSFORPARSING)
|
||||||
res = RegSetValueExA(shellfolder_key, wfparsing_valuename, 0, REG_SZ, "", 1);
|
res = RegSetValueExA(shellfolder_key, wfparsing_valuename, 0, REG_SZ, (LPBYTE)"", 1);
|
||||||
if (list->flags & SHELLFOLDER_ATTRIBUTES)
|
if (list->flags & SHELLFOLDER_ATTRIBUTES)
|
||||||
res = RegSetValueExA(shellfolder_key, attributes_valuename, 0, REG_DWORD,
|
res = RegSetValueExA(shellfolder_key, attributes_valuename, 0, REG_DWORD,
|
||||||
(LPBYTE)&list->dwAttributes, sizeof(DWORD));
|
(LPBYTE)&list->dwAttributes, sizeof(DWORD));
|
||||||
|
@ -605,6 +605,24 @@ static struct regsvr_coclass const coclass_list[] = {
|
||||||
"shell32.dll",
|
"shell32.dll",
|
||||||
"Apartment",
|
"Apartment",
|
||||||
},
|
},
|
||||||
|
{ &CLSID_FolderShortcut,
|
||||||
|
"Foldershortcut",
|
||||||
|
NULL,
|
||||||
|
"shell32.dll",
|
||||||
|
"Apartment",
|
||||||
|
SHELLFOLDER_ATTRIBUTES|SHELLFOLDER_CALLFORATTRIBUTES,
|
||||||
|
SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_LINK,
|
||||||
|
SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR
|
||||||
|
},
|
||||||
|
{ &CLSID_MyDocuments,
|
||||||
|
"My Documents",
|
||||||
|
NULL,
|
||||||
|
"shell32.dll",
|
||||||
|
"Apartment",
|
||||||
|
SHELLFOLDER_WANTSFORPARSING|SHELLFOLDER_ATTRIBUTES|SHELLFOLDER_CALLFORATTRIBUTES,
|
||||||
|
SFGAO_FILESYSANCESTOR|SFGAO_FOLDER|SFGAO_HASSUBFOLDER,
|
||||||
|
SFGAO_FILESYSTEM
|
||||||
|
},
|
||||||
{ NULL } /* list terminator */
|
{ NULL } /* list terminator */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -621,15 +639,21 @@ static struct regsvr_interface const interface_list[] = {
|
||||||
*/
|
*/
|
||||||
static const WCHAR wszDesktop[] = { 'D','e','s','k','t','o','p',0 };
|
static const WCHAR wszDesktop[] = { 'D','e','s','k','t','o','p',0 };
|
||||||
static const WCHAR wszSlash[] = { '/', 0 };
|
static const WCHAR wszSlash[] = { '/', 0 };
|
||||||
|
static const WCHAR wszMyDocuments[] = { 'M','y',' ','D','o','c','u','m','e','n','t','s', 0 };
|
||||||
|
|
||||||
static struct regsvr_namespace const namespace_extensions_list[] = {
|
static struct regsvr_namespace const namespace_extensions_list[] = {
|
||||||
|
{
|
||||||
|
&CLSID_MyDocuments,
|
||||||
|
wszDesktop,
|
||||||
|
wszMyDocuments
|
||||||
|
},
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* DllRegisterServer (SHELL32.@)
|
* DllRegisterServer (SHELL32.@)
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI SHELL32_DllRegisterServer()
|
HRESULT WINAPI DllRegisterServer(void)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
|
@ -648,7 +672,7 @@ HRESULT WINAPI SHELL32_DllRegisterServer()
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* DllUnregisterServer (SHELL32.@)
|
* DllUnregisterServer (SHELL32.@)
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI SHELL32_DllUnregisterServer()
|
HRESULT WINAPI DllUnregisterServer(void)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
|
|
|
@ -574,7 +574,7 @@ DWORD WINAPI RegQueryValue16( HKEY hkey, LPCSTR name, LPSTR data, LPDWORD count
|
||||||
{
|
{
|
||||||
fix_win16_hkey( &hkey );
|
fix_win16_hkey( &hkey );
|
||||||
if (count) *count &= 0xffff;
|
if (count) *count &= 0xffff;
|
||||||
return RegQueryValueA( hkey, name, data, count );
|
return RegQueryValueA( hkey, name, data, (LONG*) count );
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
|
@ -260,12 +260,12 @@
|
||||||
@ stdcall Control_RunDLLA(ptr ptr str long)
|
@ stdcall Control_RunDLLA(ptr ptr str long)
|
||||||
@ stub Control_RunDLLAsUserW
|
@ stub Control_RunDLLAsUserW
|
||||||
@ stdcall Control_RunDLLW(ptr ptr wstr long)
|
@ stdcall Control_RunDLLW(ptr ptr wstr long)
|
||||||
@ stdcall -private DllCanUnloadNow() SHELL32_DllCanUnloadNow
|
@ stdcall -private DllCanUnloadNow()
|
||||||
@ stdcall -private DllGetClassObject(long long ptr) SHELL32_DllGetClassObject
|
@ stdcall -private DllGetClassObject(ptr ptr ptr)
|
||||||
@ stdcall DllGetVersion(ptr)SHELL32_DllGetVersion
|
@ stdcall -private DllGetVersion(ptr)
|
||||||
@ stdcall DllInstall(long wstr)SHELL32_DllInstall
|
@ stdcall -private DllInstall(long wstr)
|
||||||
@ stdcall -private DllRegisterServer() SHELL32_DllRegisterServer
|
@ stdcall -private DllRegisterServer()
|
||||||
@ stdcall -private DllUnregisterServer() SHELL32_DllUnregisterServer
|
@ stdcall -private DllUnregisterServer()
|
||||||
@ stdcall DoEnvironmentSubstA(str str)
|
@ stdcall DoEnvironmentSubstA(str str)
|
||||||
@ stdcall DoEnvironmentSubstW(wstr wstr)
|
@ stdcall DoEnvironmentSubstW(wstr wstr)
|
||||||
@ stdcall DragAcceptFiles(long long)
|
@ stdcall DragAcceptFiles(long long)
|
||||||
|
|
|
@ -386,6 +386,8 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
|
||||||
{
|
{
|
||||||
hr = SHBindToParent( pidl, &IID_IShellFolder, (LPVOID*)&psfParent,
|
hr = SHBindToParent( pidl, &IID_IShellFolder, (LPVOID*)&psfParent,
|
||||||
(LPCITEMIDLIST*)&pidlLast );
|
(LPCITEMIDLIST*)&pidlLast );
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
pidlLast = ILClone(pidlLast);
|
||||||
ILFree(pidl);
|
ILFree(pidl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1058,7 +1060,7 @@ void WINAPI FreeIconList( DWORD dw )
|
||||||
* Returns version of a shell32.dll from IE4.01 SP1.
|
* Returns version of a shell32.dll from IE4.01 SP1.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HRESULT WINAPI SHELL32_DllGetVersion (DLLVERSIONINFO *pdvi)
|
HRESULT WINAPI DllGetVersion (DLLVERSIONINFO *pdvi)
|
||||||
{
|
{
|
||||||
/* FIXME: shouldn't these values come from the version resource? */
|
/* FIXME: shouldn't these values come from the version resource? */
|
||||||
if (pdvi->cbSize == sizeof(DLLVERSIONINFO) ||
|
if (pdvi->cbSize == sizeof(DLLVERSIONINFO) ||
|
||||||
|
@ -1144,7 +1146,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
|
||||||
* LPCWSTR pszCmdLine - command line (unused by shell32?)
|
* LPCWSTR pszCmdLine - command line (unused by shell32?)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HRESULT WINAPI SHELL32_DllInstall(BOOL bInstall, LPCWSTR cmdline)
|
HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
|
||||||
{
|
{
|
||||||
FIXME("%s %s: stub\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline));
|
FIXME("%s %s: stub\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline));
|
||||||
return S_OK; /* indicate success */
|
return S_OK; /* indicate success */
|
||||||
|
@ -1153,7 +1155,7 @@ HRESULT WINAPI SHELL32_DllInstall(BOOL bInstall, LPCWSTR cmdline)
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* DllCanUnloadNow (SHELL32.@)
|
* DllCanUnloadNow (SHELL32.@)
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI SHELL32_DllCanUnloadNow(void)
|
HRESULT WINAPI DllCanUnloadNow(void)
|
||||||
{
|
{
|
||||||
FIXME("stub\n");
|
FIXME("stub\n");
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
|
|
|
@ -94,6 +94,8 @@ HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC
|
||||||
HRESULT WINAPI IControlPanel_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
|
HRESULT WINAPI IControlPanel_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
|
||||||
HRESULT WINAPI UnixFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
|
HRESULT WINAPI UnixFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
|
||||||
HRESULT WINAPI UnixDosFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
|
HRESULT WINAPI UnixDosFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
|
||||||
|
HRESULT WINAPI FolderShortcut_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
|
||||||
|
HRESULT WINAPI MyDocuments_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
|
||||||
extern HRESULT CPanel_GetIconLocationW(LPITEMIDLIST, LPWSTR, UINT, int*);
|
extern HRESULT CPanel_GetIconLocationW(LPITEMIDLIST, LPWSTR, UINT, int*);
|
||||||
HRESULT WINAPI CPanel_ExtractIconA(LPITEMIDLIST pidl, LPCSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize);
|
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);
|
HRESULT WINAPI CPanel_ExtractIconW(LPITEMIDLIST pidl, LPCWSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize);
|
||||||
|
@ -103,11 +105,6 @@ HRESULT WINAPI IAutoComplete_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVO
|
||||||
LPEXTRACTICONA IExtractIconA_Constructor(LPCITEMIDLIST);
|
LPEXTRACTICONA IExtractIconA_Constructor(LPCITEMIDLIST);
|
||||||
LPEXTRACTICONW IExtractIconW_Constructor(LPCITEMIDLIST);
|
LPEXTRACTICONW IExtractIconW_Constructor(LPCITEMIDLIST);
|
||||||
|
|
||||||
/* FIXME: rename the functions when the shell32.dll has it's own exports namespace */
|
|
||||||
HRESULT WINAPI SHELL32_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv);
|
|
||||||
HRESULT WINAPI SHELL32_DllCanUnloadNow(void);
|
|
||||||
|
|
||||||
|
|
||||||
/* menu merging */
|
/* menu merging */
|
||||||
#define MM_ADDSEPARATOR 0x00000001L
|
#define MM_ADDSEPARATOR 0x00000001L
|
||||||
#define MM_SUBMENUSHAVEIDS 0x00000002L
|
#define MM_SUBMENUSHAVEIDS 0x00000002L
|
||||||
|
|
|
@ -161,43 +161,31 @@ static inline IShellLinkImpl *impl_from_IShellLinkW( IShellLinkW *iface )
|
||||||
{
|
{
|
||||||
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblw));
|
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblw));
|
||||||
}
|
}
|
||||||
#define _ICOM_THIS_From_IShellLinkW(class, iface) \
|
|
||||||
class* This = impl_from_IShellLinkW( iface )
|
|
||||||
|
|
||||||
static inline IShellLinkImpl *impl_from_IPersistFile( IPersistFile *iface )
|
static inline IShellLinkImpl *impl_from_IPersistFile( IPersistFile *iface )
|
||||||
{
|
{
|
||||||
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPersistFile));
|
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPersistFile));
|
||||||
}
|
}
|
||||||
#define _ICOM_THIS_From_IPersistFile(class, iface) \
|
|
||||||
class* This = impl_from_IPersistFile( iface )
|
|
||||||
|
|
||||||
static inline IShellLinkImpl *impl_from_IPersistStream( IPersistStream *iface )
|
static inline IShellLinkImpl *impl_from_IPersistStream( IPersistStream *iface )
|
||||||
{
|
{
|
||||||
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPersistStream));
|
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblPersistStream));
|
||||||
}
|
}
|
||||||
#define _ICOM_THIS_From_IPersistStream(class, iface) \
|
|
||||||
class* This = impl_from_IPersistStream( iface )
|
|
||||||
|
|
||||||
static inline IShellLinkImpl *impl_from_IShellLinkDataList( IShellLinkDataList *iface )
|
static inline IShellLinkImpl *impl_from_IShellLinkDataList( IShellLinkDataList *iface )
|
||||||
{
|
{
|
||||||
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblShellLinkDataList));
|
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblShellLinkDataList));
|
||||||
}
|
}
|
||||||
#define _ICOM_THIS_From_IShellLinkDataList(class, iface) \
|
|
||||||
class* This = impl_from_IShellLinkDataList( iface )
|
|
||||||
|
|
||||||
static inline IShellLinkImpl *impl_from_IShellExtInit( IShellExtInit *iface )
|
static inline IShellLinkImpl *impl_from_IShellExtInit( IShellExtInit *iface )
|
||||||
{
|
{
|
||||||
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblShellExtInit));
|
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblShellExtInit));
|
||||||
}
|
}
|
||||||
#define _ICOM_THIS_From_IShellExtInit(class, iface) \
|
|
||||||
class* This = impl_from_IShellExtInit( iface )
|
|
||||||
|
|
||||||
static inline IShellLinkImpl *impl_from_IContextMenu( IContextMenu *iface )
|
static inline IShellLinkImpl *impl_from_IContextMenu( IContextMenu *iface )
|
||||||
{
|
{
|
||||||
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblContextMenu));
|
return (IShellLinkImpl *)((char*)iface - FIELD_OFFSET(IShellLinkImpl, lpvtblContextMenu));
|
||||||
}
|
}
|
||||||
#define _ICOM_THIS_From_IContextMenu(class, iface) \
|
|
||||||
class* This = impl_from_IContextMenu( iface )
|
|
||||||
|
|
||||||
static HRESULT ShellLink_UpdatePath(LPWSTR sPathRel, LPCWSTR path, LPCWSTR sWorkDir, LPWSTR* psPath);
|
static HRESULT ShellLink_UpdatePath(LPWSTR sPathRel, LPCWSTR path, LPCWSTR sWorkDir, LPWSTR* psPath);
|
||||||
|
|
||||||
|
@ -316,7 +304,7 @@ static HRESULT WINAPI IPersistFile_fnQueryInterface(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
return ShellLink_QueryInterface( This, riid, ppvObj );
|
return ShellLink_QueryInterface( This, riid, ppvObj );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -325,7 +313,7 @@ static HRESULT WINAPI IPersistFile_fnQueryInterface(
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile* iface)
|
static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
return ShellLink_AddRef( This );
|
return ShellLink_AddRef( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,19 +322,19 @@ static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile* iface)
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IPersistFile_fnRelease(IPersistFile* iface)
|
static ULONG WINAPI IPersistFile_fnRelease(IPersistFile* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
return IShellLinkA_Release((IShellLinkA*)This);
|
return IShellLinkA_Release((IShellLinkA*)This);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile* iface, CLSID *pClassID)
|
static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile* iface, CLSID *pClassID)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
return ShellLink_GetClassID( This, pClassID );
|
return ShellLink_GetClassID( This, pClassID );
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile* iface)
|
static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n",This);
|
TRACE("(%p)\n",This);
|
||||||
|
|
||||||
|
@ -358,7 +346,7 @@ static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile* iface)
|
||||||
|
|
||||||
static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFileName, DWORD dwMode)
|
static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFileName, DWORD dwMode)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
IPersistStream *StreamThis = (IPersistStream *)&This->lpvtblPersistStream;
|
IPersistStream *StreamThis = (IPersistStream *)&This->lpvtblPersistStream;
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
IStream *stm;
|
IStream *stm;
|
||||||
|
@ -414,7 +402,7 @@ static BOOL StartLinkProcessor( LPCOLESTR szLink )
|
||||||
|
|
||||||
static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFileName, BOOL fRemember)
|
static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFileName, BOOL fRemember)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
IPersistStream *StreamThis = (IPersistStream *)&This->lpvtblPersistStream;
|
IPersistStream *StreamThis = (IPersistStream *)&This->lpvtblPersistStream;
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
IStream *stm;
|
IStream *stm;
|
||||||
|
@ -448,14 +436,14 @@ static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFile
|
||||||
|
|
||||||
static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile* iface, LPCOLESTR pszFileName)
|
static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile* iface, LPCOLESTR pszFileName)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
FIXME("(%p)->(%s)\n",This,debugstr_w(pszFileName));
|
FIXME("(%p)->(%s)\n",This,debugstr_w(pszFileName));
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile* iface, LPOLESTR *ppszFileName)
|
static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile* iface, LPOLESTR *ppszFileName)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFile(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistFile(iface);
|
||||||
FIXME("(%p)\n",This);
|
FIXME("(%p)\n",This);
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
@ -481,7 +469,7 @@ static HRESULT WINAPI IPersistStream_fnQueryInterface(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
VOID** ppvObj)
|
VOID** ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
return ShellLink_QueryInterface( This, riid, ppvObj );
|
return ShellLink_QueryInterface( This, riid, ppvObj );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -491,7 +479,7 @@ static HRESULT WINAPI IPersistStream_fnQueryInterface(
|
||||||
static ULONG WINAPI IPersistStream_fnRelease(
|
static ULONG WINAPI IPersistStream_fnRelease(
|
||||||
IPersistStream* iface)
|
IPersistStream* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
return IShellLinkA_Release((IShellLinkA*)This);
|
return IShellLinkA_Release((IShellLinkA*)This);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -501,7 +489,7 @@ static ULONG WINAPI IPersistStream_fnRelease(
|
||||||
static ULONG WINAPI IPersistStream_fnAddRef(
|
static ULONG WINAPI IPersistStream_fnAddRef(
|
||||||
IPersistStream* iface)
|
IPersistStream* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
return ShellLink_AddRef( This );
|
return ShellLink_AddRef( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,7 +501,7 @@ static HRESULT WINAPI IPersistStream_fnGetClassID(
|
||||||
IPersistStream* iface,
|
IPersistStream* iface,
|
||||||
CLSID* pClassID)
|
CLSID* pClassID)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
return ShellLink_GetClassID( This, pClassID );
|
return ShellLink_GetClassID( This, pClassID );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -523,7 +511,7 @@ static HRESULT WINAPI IPersistStream_fnGetClassID(
|
||||||
static HRESULT WINAPI IPersistStream_fnIsDirty(
|
static HRESULT WINAPI IPersistStream_fnIsDirty(
|
||||||
IPersistStream* iface)
|
IPersistStream* iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -768,7 +756,7 @@ static HRESULT WINAPI IPersistStream_fnLoad(
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
DWORD zero;
|
DWORD zero;
|
||||||
|
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
|
|
||||||
TRACE("%p %p\n", This, stm);
|
TRACE("%p %p\n", This, stm);
|
||||||
|
|
||||||
|
@ -1032,7 +1020,7 @@ static HRESULT WINAPI IPersistStream_fnSave(
|
||||||
DWORD zero;
|
DWORD zero;
|
||||||
HRESULT r;
|
HRESULT r;
|
||||||
|
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
|
|
||||||
TRACE("%p %p %x\n", This, stm, fClearDirty);
|
TRACE("%p %p %x\n", This, stm, fClearDirty);
|
||||||
|
|
||||||
|
@ -1138,7 +1126,7 @@ static HRESULT WINAPI IPersistStream_fnGetSizeMax(
|
||||||
IPersistStream* iface,
|
IPersistStream* iface,
|
||||||
ULARGE_INTEGER* pcbSize)
|
ULARGE_INTEGER* pcbSize)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistStream(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IPersistStream(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1675,7 +1663,7 @@ static const IShellLinkAVtbl slvt =
|
||||||
static HRESULT WINAPI IShellLinkW_fnQueryInterface(
|
static HRESULT WINAPI IShellLinkW_fnQueryInterface(
|
||||||
IShellLinkW * iface, REFIID riid, LPVOID *ppvObj)
|
IShellLinkW * iface, REFIID riid, LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
return ShellLink_QueryInterface( This, riid, ppvObj );
|
return ShellLink_QueryInterface( This, riid, ppvObj );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1684,7 +1672,7 @@ static HRESULT WINAPI IShellLinkW_fnQueryInterface(
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IShellLinkW_fnAddRef(IShellLinkW * iface)
|
static ULONG WINAPI IShellLinkW_fnAddRef(IShellLinkW * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
return ShellLink_AddRef( This );
|
return ShellLink_AddRef( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1693,13 +1681,13 @@ static ULONG WINAPI IShellLinkW_fnAddRef(IShellLinkW * iface)
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IShellLinkW_fnRelease(IShellLinkW * iface)
|
static ULONG WINAPI IShellLinkW_fnRelease(IShellLinkW * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
return ShellLink_Release( This );
|
return ShellLink_Release( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags)
|
static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(pfile=%p len=%u find_data=%p flags=%lu)(%s)\n",
|
TRACE("(%p)->(pfile=%p len=%u find_data=%p flags=%lu)(%s)\n",
|
||||||
This, pszFile, cchMaxPath, pfd, fFlags, debugstr_w(This->sPath));
|
This, pszFile, cchMaxPath, pfd, fFlags, debugstr_w(This->sPath));
|
||||||
|
@ -1719,7 +1707,7 @@ static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetIDList(IShellLinkW * iface, LPITEMIDLIST * ppidl)
|
static HRESULT WINAPI IShellLinkW_fnGetIDList(IShellLinkW * iface, LPITEMIDLIST * ppidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(ppidl=%p)\n",This, ppidl);
|
TRACE("(%p)->(ppidl=%p)\n",This, ppidl);
|
||||||
|
|
||||||
|
@ -1731,7 +1719,7 @@ static HRESULT WINAPI IShellLinkW_fnGetIDList(IShellLinkW * iface, LPITEMIDLIST
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetIDList(IShellLinkW * iface, LPCITEMIDLIST pidl)
|
static HRESULT WINAPI IShellLinkW_fnSetIDList(IShellLinkW * iface, LPCITEMIDLIST pidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(pidl=%p)\n",This, pidl);
|
TRACE("(%p)->(pidl=%p)\n",This, pidl);
|
||||||
|
|
||||||
|
@ -1748,7 +1736,7 @@ static HRESULT WINAPI IShellLinkW_fnSetIDList(IShellLinkW * iface, LPCITEMIDLIST
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetDescription(IShellLinkW * iface, LPWSTR pszName,INT cchMaxName)
|
static HRESULT WINAPI IShellLinkW_fnGetDescription(IShellLinkW * iface, LPWSTR pszName,INT cchMaxName)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p len=%u)\n",This, pszName, cchMaxName);
|
TRACE("(%p)->(%p len=%u)\n",This, pszName, cchMaxName);
|
||||||
|
|
||||||
|
@ -1761,7 +1749,7 @@ static HRESULT WINAPI IShellLinkW_fnGetDescription(IShellLinkW * iface, LPWSTR p
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetDescription(IShellLinkW * iface, LPCWSTR pszName)
|
static HRESULT WINAPI IShellLinkW_fnSetDescription(IShellLinkW * iface, LPCWSTR pszName)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(desc=%s)\n",This, debugstr_w(pszName));
|
TRACE("(%p)->(desc=%s)\n",This, debugstr_w(pszName));
|
||||||
|
|
||||||
|
@ -1779,7 +1767,7 @@ static HRESULT WINAPI IShellLinkW_fnSetDescription(IShellLinkW * iface, LPCWSTR
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetWorkingDirectory(IShellLinkW * iface, LPWSTR pszDir,INT cchMaxPath)
|
static HRESULT WINAPI IShellLinkW_fnGetWorkingDirectory(IShellLinkW * iface, LPWSTR pszDir,INT cchMaxPath)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p len %u)\n", This, pszDir, cchMaxPath);
|
TRACE("(%p)->(%p len %u)\n", This, pszDir, cchMaxPath);
|
||||||
|
|
||||||
|
@ -1793,7 +1781,7 @@ static HRESULT WINAPI IShellLinkW_fnGetWorkingDirectory(IShellLinkW * iface, LPW
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetWorkingDirectory(IShellLinkW * iface, LPCWSTR pszDir)
|
static HRESULT WINAPI IShellLinkW_fnSetWorkingDirectory(IShellLinkW * iface, LPCWSTR pszDir)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(dir=%s)\n",This, debugstr_w(pszDir));
|
TRACE("(%p)->(dir=%s)\n",This, debugstr_w(pszDir));
|
||||||
|
|
||||||
|
@ -1810,7 +1798,7 @@ static HRESULT WINAPI IShellLinkW_fnSetWorkingDirectory(IShellLinkW * iface, LPC
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetArguments(IShellLinkW * iface, LPWSTR pszArgs,INT cchMaxPath)
|
static HRESULT WINAPI IShellLinkW_fnGetArguments(IShellLinkW * iface, LPWSTR pszArgs,INT cchMaxPath)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p len=%u)\n", This, pszArgs, cchMaxPath);
|
TRACE("(%p)->(%p len=%u)\n", This, pszArgs, cchMaxPath);
|
||||||
|
|
||||||
|
@ -1824,7 +1812,7 @@ static HRESULT WINAPI IShellLinkW_fnGetArguments(IShellLinkW * iface, LPWSTR psz
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetArguments(IShellLinkW * iface, LPCWSTR pszArgs)
|
static HRESULT WINAPI IShellLinkW_fnSetArguments(IShellLinkW * iface, LPCWSTR pszArgs)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(args=%s)\n",This, debugstr_w(pszArgs));
|
TRACE("(%p)->(args=%s)\n",This, debugstr_w(pszArgs));
|
||||||
|
|
||||||
|
@ -1841,7 +1829,7 @@ static HRESULT WINAPI IShellLinkW_fnSetArguments(IShellLinkW * iface, LPCWSTR ps
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetHotkey(IShellLinkW * iface, WORD *pwHotkey)
|
static HRESULT WINAPI IShellLinkW_fnGetHotkey(IShellLinkW * iface, WORD *pwHotkey)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p)\n",This, pwHotkey);
|
TRACE("(%p)->(%p)\n",This, pwHotkey);
|
||||||
|
|
||||||
|
@ -1852,7 +1840,7 @@ static HRESULT WINAPI IShellLinkW_fnGetHotkey(IShellLinkW * iface, WORD *pwHotke
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetHotkey(IShellLinkW * iface, WORD wHotkey)
|
static HRESULT WINAPI IShellLinkW_fnSetHotkey(IShellLinkW * iface, WORD wHotkey)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(hotkey=%x)\n",This, wHotkey);
|
TRACE("(%p)->(hotkey=%x)\n",This, wHotkey);
|
||||||
|
|
||||||
|
@ -1864,7 +1852,7 @@ static HRESULT WINAPI IShellLinkW_fnSetHotkey(IShellLinkW * iface, WORD wHotkey)
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetShowCmd(IShellLinkW * iface, INT *piShowCmd)
|
static HRESULT WINAPI IShellLinkW_fnGetShowCmd(IShellLinkW * iface, INT *piShowCmd)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p)\n",This, piShowCmd);
|
TRACE("(%p)->(%p)\n",This, piShowCmd);
|
||||||
|
|
||||||
|
@ -1875,7 +1863,7 @@ static HRESULT WINAPI IShellLinkW_fnGetShowCmd(IShellLinkW * iface, INT *piShowC
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetShowCmd(IShellLinkW * iface, INT iShowCmd)
|
static HRESULT WINAPI IShellLinkW_fnSetShowCmd(IShellLinkW * iface, INT iShowCmd)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
This->iShowCmd = iShowCmd;
|
This->iShowCmd = iShowCmd;
|
||||||
This->bDirty = TRUE;
|
This->bDirty = TRUE;
|
||||||
|
@ -1908,7 +1896,7 @@ static HRESULT SHELL_PidlGeticonLocationW(IShellFolder* psf, LPITEMIDLIST pidl,
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnGetIconLocation(IShellLinkW * iface, LPWSTR pszIconPath,INT cchIconPath,INT *piIcon)
|
static HRESULT WINAPI IShellLinkW_fnGetIconLocation(IShellLinkW * iface, LPWSTR pszIconPath,INT cchIconPath,INT *piIcon)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p len=%u iicon=%p)\n", This, pszIconPath, cchIconPath, piIcon);
|
TRACE("(%p)->(%p len=%u iicon=%p)\n", This, pszIconPath, cchIconPath, piIcon);
|
||||||
|
|
||||||
|
@ -1959,7 +1947,7 @@ static HRESULT WINAPI IShellLinkW_fnGetIconLocation(IShellLinkW * iface, LPWSTR
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetIconLocation(IShellLinkW * iface, LPCWSTR pszIconPath,INT iIcon)
|
static HRESULT WINAPI IShellLinkW_fnSetIconLocation(IShellLinkW * iface, LPCWSTR pszIconPath,INT iIcon)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(path=%s iicon=%u)\n",This, debugstr_w(pszIconPath), iIcon);
|
TRACE("(%p)->(path=%s iicon=%u)\n",This, debugstr_w(pszIconPath), iIcon);
|
||||||
|
|
||||||
|
@ -1978,7 +1966,7 @@ static HRESULT WINAPI IShellLinkW_fnSetIconLocation(IShellLinkW * iface, LPCWSTR
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetRelativePath(IShellLinkW * iface, LPCWSTR pszPathRel, DWORD dwReserved)
|
static HRESULT WINAPI IShellLinkW_fnSetRelativePath(IShellLinkW * iface, LPCWSTR pszPathRel, DWORD dwReserved)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(path=%s %lx)\n",This, debugstr_w(pszPathRel), dwReserved);
|
TRACE("(%p)->(path=%s %lx)\n",This, debugstr_w(pszPathRel), dwReserved);
|
||||||
|
|
||||||
|
@ -1998,7 +1986,7 @@ static HRESULT WINAPI IShellLinkW_fnResolve(IShellLinkW * iface, HWND hwnd, DWOR
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
BOOL bSuccess;
|
BOOL bSuccess;
|
||||||
|
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(hwnd=%p flags=%lx)\n",This, hwnd, fFlags);
|
TRACE("(%p)->(hwnd=%p flags=%lx)\n",This, hwnd, fFlags);
|
||||||
|
|
||||||
|
@ -2134,7 +2122,7 @@ static BOOL ShellLink_GetVolumeInfo(LPWSTR path, volume_info *volume)
|
||||||
|
|
||||||
static HRESULT WINAPI IShellLinkW_fnSetPath(IShellLinkW * iface, LPCWSTR pszFile)
|
static HRESULT WINAPI IShellLinkW_fnSetPath(IShellLinkW * iface, LPCWSTR pszFile)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkW(iface);
|
||||||
WCHAR buffer[MAX_PATH];
|
WCHAR buffer[MAX_PATH];
|
||||||
LPWSTR fname;
|
LPWSTR fname;
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
@ -2207,21 +2195,21 @@ static const IShellLinkWVtbl slvtw =
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ShellLink_DataList_QueryInterface( IShellLinkDataList* iface, REFIID riid, void** ppvObject)
|
ShellLink_DataList_QueryInterface( IShellLinkDataList* iface, REFIID riid, void** ppvObject)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkDataList(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkDataList(iface);
|
||||||
return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject);
|
return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
ShellLink_DataList_AddRef( IShellLinkDataList* iface )
|
ShellLink_DataList_AddRef( IShellLinkDataList* iface )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkDataList(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkDataList(iface);
|
||||||
return IShellLinkA_AddRef((IShellLinkA*)This);
|
return IShellLinkA_AddRef((IShellLinkA*)This);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
ShellLink_DataList_Release( IShellLinkDataList* iface )
|
ShellLink_DataList_Release( IShellLinkDataList* iface )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellLinkDataList(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellLinkDataList(iface);
|
||||||
return ShellLink_Release( This );
|
return ShellLink_Release( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2275,21 +2263,21 @@ static const IShellLinkDataListVtbl dlvt =
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ShellLink_ExtInit_QueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject )
|
ShellLink_ExtInit_QueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExtInit(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellExtInit(iface);
|
||||||
return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject);
|
return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
ShellLink_ExtInit_AddRef( IShellExtInit* iface )
|
ShellLink_ExtInit_AddRef( IShellExtInit* iface )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExtInit(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellExtInit(iface);
|
||||||
return IShellLinkA_AddRef((IShellLinkA*)This);
|
return IShellLinkA_AddRef((IShellLinkA*)This);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
ShellLink_ExtInit_Release( IShellExtInit* iface )
|
ShellLink_ExtInit_Release( IShellExtInit* iface )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExtInit(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellExtInit(iface);
|
||||||
return ShellLink_Release( This );
|
return ShellLink_Release( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2302,7 +2290,7 @@ static HRESULT WINAPI
|
||||||
ShellLink_ExtInit_Initialize( IShellExtInit* iface, LPCITEMIDLIST pidlFolder,
|
ShellLink_ExtInit_Initialize( IShellExtInit* iface, LPCITEMIDLIST pidlFolder,
|
||||||
IDataObject *pdtobj, HKEY hkeyProgID )
|
IDataObject *pdtobj, HKEY hkeyProgID )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellExtInit(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IShellExtInit(iface);
|
||||||
FORMATETC format;
|
FORMATETC format;
|
||||||
STGMEDIUM stgm;
|
STGMEDIUM stgm;
|
||||||
UINT count;
|
UINT count;
|
||||||
|
@ -2355,21 +2343,21 @@ static const IShellExtInitVtbl eivt =
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ShellLink_ContextMenu_QueryInterface( IContextMenu* iface, REFIID riid, void** ppvObject )
|
ShellLink_ContextMenu_QueryInterface( IContextMenu* iface, REFIID riid, void** ppvObject )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IContextMenu(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IContextMenu(iface);
|
||||||
return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject);
|
return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
ShellLink_ContextMenu_AddRef( IContextMenu* iface )
|
ShellLink_ContextMenu_AddRef( IContextMenu* iface )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IContextMenu(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IContextMenu(iface);
|
||||||
return IShellLinkA_AddRef((IShellLinkA*)This);
|
return IShellLinkA_AddRef((IShellLinkA*)This);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
ShellLink_ContextMenu_Release( IContextMenu* iface )
|
ShellLink_ContextMenu_Release( IContextMenu* iface )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IContextMenu(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IContextMenu(iface);
|
||||||
return ShellLink_Release( This );
|
return ShellLink_Release( This );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2377,7 +2365,7 @@ static HRESULT WINAPI
|
||||||
ShellLink_QueryContextMenu( IContextMenu* iface, HMENU hmenu, UINT indexMenu,
|
ShellLink_QueryContextMenu( IContextMenu* iface, HMENU hmenu, UINT indexMenu,
|
||||||
UINT idCmdFirst, UINT idCmdLast, UINT uFlags )
|
UINT idCmdFirst, UINT idCmdLast, UINT uFlags )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IContextMenu(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IContextMenu(iface);
|
||||||
|
|
||||||
FIXME("%p %p %u %u %u %u\n", This,
|
FIXME("%p %p %u %u %u %u\n", This,
|
||||||
hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags );
|
hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags );
|
||||||
|
@ -2388,7 +2376,7 @@ ShellLink_QueryContextMenu( IContextMenu* iface, HMENU hmenu, UINT indexMenu,
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ShellLink_InvokeCommand( IContextMenu* iface, LPCMINVOKECOMMANDINFO lpici )
|
ShellLink_InvokeCommand( IContextMenu* iface, LPCMINVOKECOMMANDINFO lpici )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IContextMenu(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IContextMenu(iface);
|
||||||
|
|
||||||
FIXME("%p %p\n", This, lpici );
|
FIXME("%p %p\n", This, lpici );
|
||||||
|
|
||||||
|
@ -2399,7 +2387,7 @@ static HRESULT WINAPI
|
||||||
ShellLink_GetCommandString( IContextMenu* iface, UINT idCmd, UINT uType,
|
ShellLink_GetCommandString( IContextMenu* iface, UINT idCmd, UINT uType,
|
||||||
UINT* pwReserved, LPSTR pszName, UINT cchMax )
|
UINT* pwReserved, LPSTR pszName, UINT cchMax )
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IContextMenu(IShellLinkImpl, iface);
|
IShellLinkImpl *This = impl_from_IContextMenu(iface);
|
||||||
|
|
||||||
FIXME("%p %u %u %p %p %u\n", This,
|
FIXME("%p %u %u %p %p %u\n", This,
|
||||||
idCmd, uType, pwReserved, pszName, cchMax );
|
idCmd, uType, pwReserved, pszName, cchMax );
|
||||||
|
|
|
@ -163,7 +163,7 @@ HRESULT WINAPI SHCoCreateInstance(
|
||||||
|
|
||||||
/* now we create an instance */
|
/* now we create an instance */
|
||||||
if (bLoadFromShell32) {
|
if (bLoadFromShell32) {
|
||||||
if (! SUCCEEDED(SHELL32_DllGetClassObject(myclsid, &IID_IClassFactory,(LPVOID*)&pcf))) {
|
if (! SUCCEEDED(DllGetClassObject(myclsid, &IID_IClassFactory,(LPVOID*)&pcf))) {
|
||||||
ERR("LoadFromShell failed for CLSID=%s\n", shdebugstr_guid(myclsid));
|
ERR("LoadFromShell failed for CLSID=%s\n", shdebugstr_guid(myclsid));
|
||||||
}
|
}
|
||||||
} else if (bLoadWithoutCOM) {
|
} else if (bLoadWithoutCOM) {
|
||||||
|
@ -214,7 +214,7 @@ end:
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* DllGetClassObject [SHELL32.@]
|
* DllGetClassObject [SHELL32.@]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI SHELL32_DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
|
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
|
||||||
{
|
{
|
||||||
HRESULT hres = E_OUTOFMEMORY;
|
HRESULT hres = E_OUTOFMEMORY;
|
||||||
IClassFactory * pcf = NULL;
|
IClassFactory * pcf = NULL;
|
||||||
|
@ -639,7 +639,7 @@ HRESULT WINAPI SHCreateDefClassObject(
|
||||||
shdebugstr_guid(riid), ppv, lpfnCI, pcRefDll, shdebugstr_guid(riidInst));
|
shdebugstr_guid(riid), ppv, lpfnCI, pcRefDll, shdebugstr_guid(riidInst));
|
||||||
|
|
||||||
if (! IsEqualCLSID(riid, &IID_IClassFactory) ) return E_NOINTERFACE;
|
if (! IsEqualCLSID(riid, &IID_IClassFactory) ) return E_NOINTERFACE;
|
||||||
if (! (pcf = IDefClF_fnConstructor(lpfnCI, pcRefDll, riidInst))) return E_OUTOFMEMORY;
|
if (! (pcf = IDefClF_fnConstructor(lpfnCI, (PLONG)pcRefDll, riidInst))) return E_OUTOFMEMORY;
|
||||||
*ppv = pcf;
|
*ppv = pcf;
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,7 @@ HRESULT WINAPI SHRegQueryValueW(
|
||||||
{
|
{
|
||||||
WARN("%p %s %p %p semi-stub\n",
|
WARN("%p %s %p %p semi-stub\n",
|
||||||
hkey, debugstr_w(lpszSubKey), lpszData, lpcbData);
|
hkey, debugstr_w(lpszSubKey), lpszData, lpcbData);
|
||||||
return RegQueryValueW( hkey, lpszSubKey, lpszData, lpcbData );
|
return RegQueryValueW( hkey, lpszSubKey, lpszData, (LONG*)lpcbData );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
|
@ -662,8 +662,19 @@ static HRESULT WINAPI ISF_Desktop_fnGetDisplayNameOf (IShellFolder2 * iface,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* file system folder */
|
int cLen = 0;
|
||||||
_ILSimpleGetText (pidl, strRet->u.cStr, MAX_PATH);
|
|
||||||
|
/* file system folder or file rooted at the desktop */
|
||||||
|
if ((GET_SHGDN_FOR(dwFlags) == SHGDN_FORPARSING) &&
|
||||||
|
(GET_SHGDN_RELATION(dwFlags) != SHGDN_INFOLDER))
|
||||||
|
{
|
||||||
|
WideCharToMultiByte(CP_ACP, 0, This->sPathTarget, -1, strRet->u.cStr, MAX_PATH,
|
||||||
|
NULL, NULL);
|
||||||
|
PathAddBackslashA(strRet->u.cStr);
|
||||||
|
cLen = lstrlenA(strRet->u.cStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
_ILSimpleGetText (pidl, strRet->u.cStr + cLen, MAX_PATH - cLen);
|
||||||
|
|
||||||
if (!_ILIsFolder(pidl))
|
if (!_ILIsFolder(pidl))
|
||||||
SHELL_FS_ProcessDisplayFilename(strRet->u.cStr, dwFlags);
|
SHELL_FS_ProcessDisplayFilename(strRet->u.cStr, dwFlags);
|
||||||
|
|
|
@ -86,20 +86,26 @@ static const IPersistFolder3Vtbl vt_FSFldr_PersistFolder3; /* IPersistFolder3 fo
|
||||||
static const IDropTargetVtbl dtvt;
|
static const IDropTargetVtbl dtvt;
|
||||||
static const ISFHelperVtbl shvt;
|
static const ISFHelperVtbl shvt;
|
||||||
|
|
||||||
#define _IShellFolder2_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblShellFolder)))
|
static inline IGenericSFImpl *impl_from_IShellFolder2( IShellFolder2 *iface )
|
||||||
#define _ICOM_THIS_From_IShellFolder2(class, name) class* This = (class*)(((char*)name)-_IShellFolder2_Offset);
|
{
|
||||||
|
return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblShellFolder));
|
||||||
|
}
|
||||||
|
|
||||||
#define _IPersistFolder2_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblPersistFolder3)))
|
static inline IGenericSFImpl *impl_from_IPersistFolder3( IPersistFolder3 *iface )
|
||||||
#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset);
|
{
|
||||||
|
return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblPersistFolder3));
|
||||||
|
}
|
||||||
|
|
||||||
#define _IPersistFolder3_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblPersistFolder3)))
|
static inline IGenericSFImpl *impl_from_IDropTarget( IDropTarget *iface )
|
||||||
#define _ICOM_THIS_From_IPersistFolder3(class, name) class* This = (class*)(((char*)name)-_IPersistFolder3_Offset);
|
{
|
||||||
|
return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblDropTarget));
|
||||||
|
}
|
||||||
|
|
||||||
#define _IDropTarget_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblDropTarget)))
|
static inline IGenericSFImpl *impl_from_ISFHelper( ISFHelper *iface )
|
||||||
#define _ICOM_THIS_From_IDropTarget(class, name) class* This = (class*)(((char*)name)-_IDropTarget_Offset);
|
{
|
||||||
|
return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpvtblSFHelper));
|
||||||
|
}
|
||||||
|
|
||||||
#define _ISFHelper_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblSFHelper)))
|
|
||||||
#define _ICOM_THIS_From_ISFHelper(class, name) class* This = (class*)(((char*)name)-_ISFHelper_Offset);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
converts This to an interface pointer
|
converts This to an interface pointer
|
||||||
|
@ -264,7 +270,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnQueryInterface (IShellFolder2 * iface, REFIID riid,
|
IShellFolder_fnQueryInterface (IShellFolder2 * iface, REFIID riid,
|
||||||
LPVOID * ppvObj)
|
LPVOID * ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
|
TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
|
||||||
|
|
||||||
|
@ -277,7 +283,7 @@ IShellFolder_fnQueryInterface (IShellFolder2 * iface, REFIID riid,
|
||||||
|
|
||||||
static ULONG WINAPI IShellFolder_fnAddRef (IShellFolder2 * iface)
|
static ULONG WINAPI IShellFolder_fnAddRef (IShellFolder2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -289,7 +295,7 @@ static ULONG WINAPI IShellFolder_fnAddRef (IShellFolder2 * iface)
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IShellFolder_fnRelease (IShellFolder2 * iface)
|
static ULONG WINAPI IShellFolder_fnRelease (IShellFolder2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -373,7 +379,7 @@ IShellFolder_fnParseDisplayName (IShellFolder2 * iface,
|
||||||
DWORD * pchEaten, LPITEMIDLIST * ppidl,
|
DWORD * pchEaten, LPITEMIDLIST * ppidl,
|
||||||
DWORD * pdwAttributes)
|
DWORD * pdwAttributes)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
HRESULT hr = E_INVALIDARG;
|
HRESULT hr = E_INVALIDARG;
|
||||||
LPCWSTR szNext = NULL;
|
LPCWSTR szNext = NULL;
|
||||||
|
@ -444,7 +450,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnEnumObjects (IShellFolder2 * iface, HWND hwndOwner,
|
IShellFolder_fnEnumObjects (IShellFolder2 * iface, HWND hwndOwner,
|
||||||
DWORD dwFlags, LPENUMIDLIST * ppEnumIDList)
|
DWORD dwFlags, LPENUMIDLIST * ppEnumIDList)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", This, hwndOwner,
|
TRACE ("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", This, hwndOwner,
|
||||||
dwFlags, ppEnumIDList);
|
dwFlags, ppEnumIDList);
|
||||||
|
@ -474,7 +480,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnBindToObject (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
IShellFolder_fnBindToObject (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
||||||
LPBC pbc, REFIID riid, LPVOID * ppvOut)
|
LPBC pbc, REFIID riid, LPVOID * ppvOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbc,
|
TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbc,
|
||||||
shdebugstr_guid (riid), ppvOut);
|
shdebugstr_guid (riid), ppvOut);
|
||||||
|
@ -495,7 +501,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnBindToStorage (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
IShellFolder_fnBindToStorage (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
||||||
LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
|
LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, pidl, pbcReserved,
|
FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, pidl, pbcReserved,
|
||||||
shdebugstr_guid (riid), ppvOut);
|
shdebugstr_guid (riid), ppvOut);
|
||||||
|
@ -512,7 +518,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnCompareIDs (IShellFolder2 * iface, LPARAM lParam,
|
IShellFolder_fnCompareIDs (IShellFolder2 * iface, LPARAM lParam,
|
||||||
LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
|
LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
int nReturn;
|
int nReturn;
|
||||||
|
|
||||||
|
@ -529,7 +535,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnCreateViewObject (IShellFolder2 * iface, HWND hwndOwner,
|
IShellFolder_fnCreateViewObject (IShellFolder2 * iface, HWND hwndOwner,
|
||||||
REFIID riid, LPVOID * ppvOut)
|
REFIID riid, LPVOID * ppvOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
LPSHELLVIEW pShellView;
|
LPSHELLVIEW pShellView;
|
||||||
HRESULT hr = E_INVALIDARG;
|
HRESULT hr = E_INVALIDARG;
|
||||||
|
@ -570,7 +576,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnGetAttributesOf (IShellFolder2 * iface, UINT cidl,
|
IShellFolder_fnGetAttributesOf (IShellFolder2 * iface, UINT cidl,
|
||||||
LPCITEMIDLIST * apidl, DWORD * rgfInOut)
|
LPCITEMIDLIST * apidl, DWORD * rgfInOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
|
@ -640,7 +646,7 @@ IShellFolder_fnGetUIObjectOf (IShellFolder2 * iface,
|
||||||
UINT cidl, LPCITEMIDLIST * apidl, REFIID riid,
|
UINT cidl, LPCITEMIDLIST * apidl, REFIID riid,
|
||||||
UINT * prgfInOut, LPVOID * ppvOut)
|
UINT * prgfInOut, LPVOID * ppvOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
LPITEMIDLIST pidl;
|
LPITEMIDLIST pidl;
|
||||||
IUnknown *pObj = NULL;
|
IUnknown *pObj = NULL;
|
||||||
|
@ -774,7 +780,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnGetDisplayNameOf (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
IShellFolder_fnGetDisplayNameOf (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
||||||
DWORD dwFlags, LPSTRRET strRet)
|
DWORD dwFlags, LPSTRRET strRet)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
|
@ -834,7 +840,7 @@ static HRESULT WINAPI IShellFolder_fnSetNameOf (IShellFolder2 * iface,
|
||||||
DWORD dwFlags,
|
DWORD dwFlags,
|
||||||
LPITEMIDLIST * pPidlOut)
|
LPITEMIDLIST * pPidlOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
WCHAR szSrc[MAX_PATH], szDest[MAX_PATH];
|
WCHAR szSrc[MAX_PATH], szDest[MAX_PATH];
|
||||||
LPWSTR ptr;
|
LPWSTR ptr;
|
||||||
BOOL bIsFolder = _ILIsFolder (ILFindLastID (pidl));
|
BOOL bIsFolder = _ILIsFolder (ILFindLastID (pidl));
|
||||||
|
@ -885,14 +891,14 @@ static HRESULT WINAPI IShellFolder_fnSetNameOf (IShellFolder2 * iface,
|
||||||
static HRESULT WINAPI IShellFolder_fnGetDefaultSearchGUID (IShellFolder2 *iface,
|
static HRESULT WINAPI IShellFolder_fnGetDefaultSearchGUID (IShellFolder2 *iface,
|
||||||
GUID * pguid)
|
GUID * pguid)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
FIXME ("(%p)\n", This);
|
FIXME ("(%p)\n", This);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
static HRESULT WINAPI IShellFolder_fnEnumSearches (IShellFolder2 * iface,
|
static HRESULT WINAPI IShellFolder_fnEnumSearches (IShellFolder2 * iface,
|
||||||
IEnumExtraSearch ** ppenum)
|
IEnumExtraSearch ** ppenum)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
FIXME ("(%p)\n", This);
|
FIXME ("(%p)\n", This);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -901,7 +907,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnGetDefaultColumn (IShellFolder2 * iface, DWORD dwRes,
|
IShellFolder_fnGetDefaultColumn (IShellFolder2 * iface, DWORD dwRes,
|
||||||
ULONG * pSort, ULONG * pDisplay)
|
ULONG * pSort, ULONG * pDisplay)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -917,7 +923,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnGetDefaultColumnState (IShellFolder2 * iface, UINT iColumn,
|
IShellFolder_fnGetDefaultColumnState (IShellFolder2 * iface, UINT iColumn,
|
||||||
DWORD * pcsFlags)
|
DWORD * pcsFlags)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -933,7 +939,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnGetDetailsEx (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
IShellFolder_fnGetDetailsEx (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
||||||
const SHCOLUMNID * pscid, VARIANT * pv)
|
const SHCOLUMNID * pscid, VARIANT * pv)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
FIXME ("(%p)\n", This);
|
FIXME ("(%p)\n", This);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
|
@ -943,7 +949,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
IShellFolder_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl,
|
||||||
UINT iColumn, SHELLDETAILS * psd)
|
UINT iColumn, SHELLDETAILS * psd)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
HRESULT hr = E_FAIL;
|
HRESULT hr = E_FAIL;
|
||||||
|
|
||||||
TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd);
|
TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd);
|
||||||
|
@ -990,7 +996,7 @@ static HRESULT WINAPI
|
||||||
IShellFolder_fnMapColumnToSCID (IShellFolder2 * iface, UINT column,
|
IShellFolder_fnMapColumnToSCID (IShellFolder2 * iface, UINT column,
|
||||||
SHCOLUMNID * pscid)
|
SHCOLUMNID * pscid)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_IShellFolder2(iface);
|
||||||
FIXME ("(%p)\n", This);
|
FIXME ("(%p)\n", This);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -1027,7 +1033,7 @@ static const IShellFolder2Vtbl sfvt =
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ISFHelper_fnQueryInterface (ISFHelper * iface, REFIID riid, LPVOID * ppvObj)
|
ISFHelper_fnQueryInterface (ISFHelper * iface, REFIID riid, LPVOID * ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -1036,7 +1042,7 @@ ISFHelper_fnQueryInterface (ISFHelper * iface, REFIID riid, LPVOID * ppvObj)
|
||||||
|
|
||||||
static ULONG WINAPI ISFHelper_fnAddRef (ISFHelper * iface)
|
static ULONG WINAPI ISFHelper_fnAddRef (ISFHelper * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -1045,7 +1051,7 @@ static ULONG WINAPI ISFHelper_fnAddRef (ISFHelper * iface)
|
||||||
|
|
||||||
static ULONG WINAPI ISFHelper_fnRelease (ISFHelper * iface)
|
static ULONG WINAPI ISFHelper_fnRelease (ISFHelper * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1061,7 +1067,7 @@ static ULONG WINAPI ISFHelper_fnRelease (ISFHelper * iface)
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ISFHelper_fnGetUniqueName (ISFHelper * iface, LPSTR lpName, UINT uLen)
|
ISFHelper_fnGetUniqueName (ISFHelper * iface, LPSTR lpName, UINT uLen)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
IEnumIDList *penum;
|
IEnumIDList *penum;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
char szText[MAX_PATH];
|
char szText[MAX_PATH];
|
||||||
|
@ -1111,7 +1117,7 @@ static HRESULT WINAPI
|
||||||
ISFHelper_fnAddFolder (ISFHelper * iface, HWND hwnd, LPCSTR lpName,
|
ISFHelper_fnAddFolder (ISFHelper * iface, HWND hwnd, LPCSTR lpName,
|
||||||
LPITEMIDLIST * ppidlOut)
|
LPITEMIDLIST * ppidlOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
char lpstrNewDir[MAX_PATH];
|
char lpstrNewDir[MAX_PATH];
|
||||||
DWORD bRes;
|
DWORD bRes;
|
||||||
HRESULT hres = E_FAIL;
|
HRESULT hres = E_FAIL;
|
||||||
|
@ -1154,7 +1160,7 @@ ISFHelper_fnAddFolder (ISFHelper * iface, HWND hwnd, LPCSTR lpName,
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ISFHelper_fnDeleteItems (ISFHelper * iface, UINT cidl, LPCITEMIDLIST * apidl)
|
ISFHelper_fnDeleteItems (ISFHelper * iface, UINT cidl, LPCITEMIDLIST * apidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface)
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
UINT i;
|
UINT i;
|
||||||
char szPath[MAX_PATH];
|
char szPath[MAX_PATH];
|
||||||
BOOL bConfirm = TRUE;
|
BOOL bConfirm = TRUE;
|
||||||
|
@ -1218,7 +1224,7 @@ ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UINT cidl,
|
||||||
char szSrcPath[MAX_PATH],
|
char szSrcPath[MAX_PATH],
|
||||||
szDstPath[MAX_PATH];
|
szDstPath[MAX_PATH];
|
||||||
|
|
||||||
_ICOM_THIS_From_ISFHelper (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl);
|
TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl);
|
||||||
|
|
||||||
|
@ -1266,7 +1272,7 @@ static HRESULT WINAPI
|
||||||
IFSFldr_PersistFolder3_QueryInterface (IPersistFolder3 * iface, REFIID iid,
|
IFSFldr_PersistFolder3_QueryInterface (IPersistFolder3 * iface, REFIID iid,
|
||||||
LPVOID * ppvObj)
|
LPVOID * ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1280,7 +1286,7 @@ IFSFldr_PersistFolder3_QueryInterface (IPersistFolder3 * iface, REFIID iid,
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
IFSFldr_PersistFolder3_AddRef (IPersistFolder3 * iface)
|
IFSFldr_PersistFolder3_AddRef (IPersistFolder3 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -1294,7 +1300,7 @@ IFSFldr_PersistFolder3_AddRef (IPersistFolder3 * iface)
|
||||||
static ULONG WINAPI
|
static ULONG WINAPI
|
||||||
IFSFldr_PersistFolder3_Release (IPersistFolder3 * iface)
|
IFSFldr_PersistFolder3_Release (IPersistFolder3 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -1307,7 +1313,7 @@ IFSFldr_PersistFolder3_Release (IPersistFolder3 * iface)
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
IFSFldr_PersistFolder3_GetClassID (IPersistFolder3 * iface, CLSID * lpClassId)
|
IFSFldr_PersistFolder3_GetClassID (IPersistFolder3 * iface, CLSID * lpClassId)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1329,7 +1335,7 @@ IFSFldr_PersistFolder3_Initialize (IPersistFolder3 * iface, LPCITEMIDLIST pidl)
|
||||||
{
|
{
|
||||||
char sTemp[MAX_PATH];
|
char sTemp[MAX_PATH];
|
||||||
|
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%p)\n", This, pidl);
|
TRACE ("(%p)->(%p)\n", This, pidl);
|
||||||
|
|
||||||
|
@ -1357,7 +1363,7 @@ static HRESULT WINAPI
|
||||||
IFSFldr_PersistFolder3_fnGetCurFolder (IPersistFolder3 * iface,
|
IFSFldr_PersistFolder3_fnGetCurFolder (IPersistFolder3 * iface,
|
||||||
LPITEMIDLIST * pidl)
|
LPITEMIDLIST * pidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%p)\n", This, pidl);
|
TRACE ("(%p)->(%p)\n", This, pidl);
|
||||||
|
|
||||||
|
@ -1378,7 +1384,7 @@ IFSFldr_PersistFolder3_InitializeEx (IPersistFolder3 * iface,
|
||||||
{
|
{
|
||||||
char sTemp[MAX_PATH];
|
char sTemp[MAX_PATH];
|
||||||
|
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%p,%p,%p)\n", This, pbc, pidlRoot, ppfti);
|
TRACE ("(%p)->(%p,%p,%p)\n", This, pbc, pidlRoot, ppfti);
|
||||||
if (ppfti)
|
if (ppfti)
|
||||||
|
@ -1429,7 +1435,7 @@ static HRESULT WINAPI
|
||||||
IFSFldr_PersistFolder3_GetFolderTargetInfo (IPersistFolder3 * iface,
|
IFSFldr_PersistFolder3_GetFolderTargetInfo (IPersistFolder3 * iface,
|
||||||
PERSIST_FOLDER_TARGET_INFO * ppfti)
|
PERSIST_FOLDER_TARGET_INFO * ppfti)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder3 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder3(iface);
|
||||||
FIXME ("(%p)->(%p)\n", This, ppfti);
|
FIXME ("(%p)->(%p)\n", This, ppfti);
|
||||||
ZeroMemory (ppfti, sizeof (ppfti));
|
ZeroMemory (ppfti, sizeof (ppfti));
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
|
@ -1456,7 +1462,7 @@ ISFDropTarget_QueryDrop (IDropTarget * iface, DWORD dwKeyState,
|
||||||
{
|
{
|
||||||
DWORD dwEffect = *pdwEffect;
|
DWORD dwEffect = *pdwEffect;
|
||||||
|
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
*pdwEffect = DROPEFFECT_NONE;
|
*pdwEffect = DROPEFFECT_NONE;
|
||||||
|
|
||||||
|
@ -1474,7 +1480,7 @@ ISFDropTarget_QueryDrop (IDropTarget * iface, DWORD dwKeyState,
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
ISFDropTarget_QueryInterface (IDropTarget * iface, REFIID riid, LPVOID * ppvObj)
|
ISFDropTarget_QueryInterface (IDropTarget * iface, REFIID riid, LPVOID * ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1483,7 +1489,7 @@ ISFDropTarget_QueryInterface (IDropTarget * iface, REFIID riid, LPVOID * ppvObj)
|
||||||
|
|
||||||
static ULONG WINAPI ISFDropTarget_AddRef (IDropTarget * iface)
|
static ULONG WINAPI ISFDropTarget_AddRef (IDropTarget * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1492,7 +1498,7 @@ static ULONG WINAPI ISFDropTarget_AddRef (IDropTarget * iface)
|
||||||
|
|
||||||
static ULONG WINAPI ISFDropTarget_Release (IDropTarget * iface)
|
static ULONG WINAPI ISFDropTarget_Release (IDropTarget * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1505,7 +1511,7 @@ ISFDropTarget_DragEnter (IDropTarget * iface, IDataObject * pDataObject,
|
||||||
{
|
{
|
||||||
FORMATETC fmt;
|
FORMATETC fmt;
|
||||||
|
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(DataObject=%p)\n", This, pDataObject);
|
TRACE ("(%p)->(DataObject=%p)\n", This, pDataObject);
|
||||||
|
|
||||||
|
@ -1523,7 +1529,7 @@ static HRESULT WINAPI
|
||||||
ISFDropTarget_DragOver (IDropTarget * iface, DWORD dwKeyState, POINTL pt,
|
ISFDropTarget_DragOver (IDropTarget * iface, DWORD dwKeyState, POINTL pt,
|
||||||
DWORD * pdwEffect)
|
DWORD * pdwEffect)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1537,7 +1543,7 @@ ISFDropTarget_DragOver (IDropTarget * iface, DWORD dwKeyState, POINTL pt,
|
||||||
|
|
||||||
static HRESULT WINAPI ISFDropTarget_DragLeave (IDropTarget * iface)
|
static HRESULT WINAPI ISFDropTarget_DragLeave (IDropTarget * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -1550,7 +1556,7 @@ static HRESULT WINAPI
|
||||||
ISFDropTarget_Drop (IDropTarget * iface, IDataObject * pDataObject,
|
ISFDropTarget_Drop (IDropTarget * iface, IDataObject * pDataObject,
|
||||||
DWORD dwKeyState, POINTL pt, DWORD * pdwEffect)
|
DWORD dwKeyState, POINTL pt, DWORD * pdwEffect)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
FIXME ("(%p) object dropped\n", This);
|
FIXME ("(%p) object dropped\n", This);
|
||||||
|
|
||||||
|
|
|
@ -66,8 +66,11 @@ typedef struct {
|
||||||
static const IShellFolder2Vtbl vt_ShellFolder2;
|
static const IShellFolder2Vtbl vt_ShellFolder2;
|
||||||
static const IPersistFolder2Vtbl vt_PersistFolder2;
|
static const IPersistFolder2Vtbl vt_PersistFolder2;
|
||||||
|
|
||||||
#define _IPersistFolder2_Offset ((int)(&(((IGenericSFImpl*)0)->lpVtblPersistFolder2)))
|
static inline IGenericSFImpl *impl_from_IPersistFolder2( IPersistFolder2 *iface )
|
||||||
#define _ICOM_THIS_From_IPersistFolder2(class, name) class* This = (class*)(((char*)name)-_IPersistFolder2_Offset);
|
{
|
||||||
|
return (IGenericSFImpl *)((char*)iface - FIELD_OFFSET(IGenericSFImpl, lpVtblPersistFolder2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
converts This to an interface pointer
|
converts This to an interface pointer
|
||||||
|
@ -855,7 +858,7 @@ static const IShellFolder2Vtbl vt_ShellFolder2 =
|
||||||
static HRESULT WINAPI IMCFldr_PersistFolder2_QueryInterface (
|
static HRESULT WINAPI IMCFldr_PersistFolder2_QueryInterface (
|
||||||
IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObj)
|
IPersistFolder2 * iface, REFIID iid, LPVOID * ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -867,7 +870,7 @@ static HRESULT WINAPI IMCFldr_PersistFolder2_QueryInterface (
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IMCFldr_PersistFolder2_AddRef (IPersistFolder2 * iface)
|
static ULONG WINAPI IMCFldr_PersistFolder2_AddRef (IPersistFolder2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -879,7 +882,7 @@ static ULONG WINAPI IMCFldr_PersistFolder2_AddRef (IPersistFolder2 * iface)
|
||||||
*/
|
*/
|
||||||
static ULONG WINAPI IMCFldr_PersistFolder2_Release (IPersistFolder2 * iface)
|
static ULONG WINAPI IMCFldr_PersistFolder2_Release (IPersistFolder2 * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
TRACE ("(%p)->(count=%lu)\n", This, This->ref);
|
||||||
|
|
||||||
|
@ -892,7 +895,7 @@ static ULONG WINAPI IMCFldr_PersistFolder2_Release (IPersistFolder2 * iface)
|
||||||
static HRESULT WINAPI IMCFldr_PersistFolder2_GetClassID (
|
static HRESULT WINAPI IMCFldr_PersistFolder2_GetClassID (
|
||||||
IPersistFolder2 * iface, CLSID * lpClassId)
|
IPersistFolder2 * iface, CLSID * lpClassId)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)\n", This);
|
TRACE ("(%p)\n", This);
|
||||||
|
|
||||||
|
@ -911,7 +914,7 @@ static HRESULT WINAPI IMCFldr_PersistFolder2_GetClassID (
|
||||||
static HRESULT WINAPI IMCFldr_PersistFolder2_Initialize (
|
static HRESULT WINAPI IMCFldr_PersistFolder2_Initialize (
|
||||||
IPersistFolder2 * iface, LPCITEMIDLIST pidl)
|
IPersistFolder2 * iface, LPCITEMIDLIST pidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
TRACE ("(%p)->(%p)\n", This, pidl);
|
TRACE ("(%p)->(%p)\n", This, pidl);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -922,7 +925,7 @@ static HRESULT WINAPI IMCFldr_PersistFolder2_Initialize (
|
||||||
static HRESULT WINAPI IMCFldr_PersistFolder2_GetCurFolder (
|
static HRESULT WINAPI IMCFldr_PersistFolder2_GetCurFolder (
|
||||||
IPersistFolder2 * iface, LPITEMIDLIST * pidl)
|
IPersistFolder2 * iface, LPITEMIDLIST * pidl)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IPersistFolder2 (IGenericSFImpl, iface);
|
IGenericSFImpl *This = impl_from_IPersistFolder2(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%p)\n", This, pidl);
|
TRACE ("(%p)->(%p)\n", This, pidl);
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,8 @@ static const WCHAR wszShell[] = {'\\','s','h','e','l','l','\\',0};
|
||||||
static const WCHAR wszFolder[] = {'F','o','l','d','e','r',0};
|
static const WCHAR wszFolder[] = {'F','o','l','d','e','r',0};
|
||||||
static const WCHAR wszEmpty[] = {0};
|
static const WCHAR wszEmpty[] = {0};
|
||||||
|
|
||||||
|
#define SEE_MASK_CLASSALL (SEE_MASK_CLASSNAME | SEE_MASK_CLASSKEY)
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* SHELL_ArgifyW [Internal]
|
* SHELL_ArgifyW [Internal]
|
||||||
|
@ -80,6 +82,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp
|
||||||
{
|
{
|
||||||
WCHAR xlpFile[1024];
|
WCHAR xlpFile[1024];
|
||||||
BOOL done = FALSE;
|
BOOL done = FALSE;
|
||||||
|
BOOL found_p1 = FALSE;
|
||||||
PWSTR res = out;
|
PWSTR res = out;
|
||||||
PCWSTR cmd;
|
PCWSTR cmd;
|
||||||
LPVOID pv;
|
LPVOID pv;
|
||||||
|
@ -153,6 +156,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp
|
||||||
res += strlenW(cmd);
|
res += strlenW(cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
found_p1 = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -166,6 +170,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp
|
||||||
strcpyW(res, lpFile);
|
strcpyW(res, lpFile);
|
||||||
res += strlenW(lpFile);
|
res += strlenW(lpFile);
|
||||||
}
|
}
|
||||||
|
found_p1 = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'i':
|
case 'i':
|
||||||
|
@ -176,6 +181,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp
|
||||||
res += sprintfW(res, wszILPtr, pv);
|
res += sprintfW(res, wszILPtr, pv);
|
||||||
SHUnlockShared(pv);
|
SHUnlockShared(pv);
|
||||||
}
|
}
|
||||||
|
found_p1 = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -219,7 +225,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp
|
||||||
|
|
||||||
*res = '\0';
|
*res = '\0';
|
||||||
|
|
||||||
return done;
|
return found_p1;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT SHELL_GetPathFromIDListForExecuteA(LPCITEMIDLIST pidl, LPSTR pszPath, UINT uOutSize)
|
HRESULT SHELL_GetPathFromIDListForExecuteA(LPCITEMIDLIST pidl, LPSTR pszPath, UINT uOutSize)
|
||||||
|
@ -996,15 +1002,25 @@ BOOL WINAPI ShellExecuteExW32 (LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfun
|
||||||
sei_tmp.fMask, sei_tmp.hwnd, debugstr_w(sei_tmp.lpVerb),
|
sei_tmp.fMask, sei_tmp.hwnd, debugstr_w(sei_tmp.lpVerb),
|
||||||
debugstr_w(sei_tmp.lpFile), debugstr_w(sei_tmp.lpParameters),
|
debugstr_w(sei_tmp.lpFile), debugstr_w(sei_tmp.lpParameters),
|
||||||
debugstr_w(sei_tmp.lpDirectory), sei_tmp.nShow,
|
debugstr_w(sei_tmp.lpDirectory), sei_tmp.nShow,
|
||||||
(sei_tmp.fMask & SEE_MASK_CLASSNAME) ? debugstr_w(sei_tmp.lpClass) : "not used");
|
((sei_tmp.fMask & SEE_MASK_CLASSALL) == SEE_MASK_CLASSNAME) ?
|
||||||
|
debugstr_w(sei_tmp.lpClass) : "not used");
|
||||||
|
|
||||||
sei->hProcess = NULL;
|
sei->hProcess = NULL;
|
||||||
|
|
||||||
/* make copies of all path/command strings */
|
/* make copies of all path/command strings */
|
||||||
if (sei_tmp.lpFile)
|
if (!sei_tmp.lpFile)
|
||||||
strcpyW(wszApplicationName, sei_tmp.lpFile);
|
|
||||||
else
|
|
||||||
*wszApplicationName = '\0';
|
*wszApplicationName = '\0';
|
||||||
|
else if (*sei_tmp.lpFile == '\"')
|
||||||
|
{
|
||||||
|
UINT l;
|
||||||
|
strcpyW(wszApplicationName, sei_tmp.lpFile+1);
|
||||||
|
l=lstrlenW(wszApplicationName);
|
||||||
|
if (wszApplicationName[l-1] == '\"')
|
||||||
|
wszApplicationName[l-1] = '\0';
|
||||||
|
TRACE("wszApplicationName=%s\n",debugstr_w(wszApplicationName));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strcpyW(wszApplicationName, sei_tmp.lpFile);
|
||||||
|
|
||||||
if (sei_tmp.lpParameters)
|
if (sei_tmp.lpParameters)
|
||||||
strcpyW(wszParameters, sei_tmp.lpParameters);
|
strcpyW(wszParameters, sei_tmp.lpParameters);
|
||||||
|
@ -1049,13 +1065,14 @@ BOOL WINAPI ShellExecuteExW32 (LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfun
|
||||||
TRACE("-- idlist=%p (%s)\n", sei_tmp.lpIDList, debugstr_w(wszApplicationName));
|
TRACE("-- idlist=%p (%s)\n", sei_tmp.lpIDList, debugstr_w(wszApplicationName));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sei_tmp.fMask & (SEE_MASK_CLASSNAME | SEE_MASK_CLASSKEY))
|
if (sei_tmp.fMask & SEE_MASK_CLASSALL)
|
||||||
{
|
{
|
||||||
/* launch a document by fileclass like 'WordPad.Document.1' */
|
/* launch a document by fileclass like 'WordPad.Document.1' */
|
||||||
/* the Commandline contains 'c:\Path\wordpad.exe "%1"' */
|
/* the Commandline contains 'c:\Path\wordpad.exe "%1"' */
|
||||||
/* FIXME: szCommandline should not be of a fixed size. Fixed to 1024, MAX_PATH is way too short! */
|
/* FIXME: szCommandline should not be of a fixed size. Fixed to 1024, MAX_PATH is way too short! */
|
||||||
HCR_GetExecuteCommandW((sei_tmp.fMask & SEE_MASK_CLASSKEY) ? sei_tmp.hkeyClass : NULL,
|
ULONG cmask=(sei_tmp.fMask & SEE_MASK_CLASSALL);
|
||||||
(sei_tmp.fMask & SEE_MASK_CLASSNAME) ? sei_tmp.lpClass: NULL,
|
HCR_GetExecuteCommandW((cmask == SEE_MASK_CLASSKEY) ? sei_tmp.hkeyClass : NULL,
|
||||||
|
(cmask == SEE_MASK_CLASSNAME) ? sei_tmp.lpClass: NULL,
|
||||||
(sei_tmp.lpVerb) ? sei_tmp.lpVerb : wszOpen,
|
(sei_tmp.lpVerb) ? sei_tmp.lpVerb : wszOpen,
|
||||||
wszParameters, sizeof(wszParameters)/sizeof(WCHAR));
|
wszParameters, sizeof(wszParameters)/sizeof(WCHAR));
|
||||||
|
|
||||||
|
@ -1345,7 +1362,8 @@ HINSTANCE WINAPI ShellExecuteA(HWND hWnd, LPCSTR lpOperation,LPCSTR lpFile,
|
||||||
HANDLE hProcess = 0;
|
HANDLE hProcess = 0;
|
||||||
|
|
||||||
TRACE("%p,%s,%s,%s,%s,%d\n",
|
TRACE("%p,%s,%s,%s,%s,%d\n",
|
||||||
hWnd, lpOperation, lpFile, lpParameters, lpDirectory, iShowCmd);
|
hWnd, debugstr_a(lpOperation), debugstr_a(lpFile),
|
||||||
|
debugstr_a(lpParameters), debugstr_a(lpDirectory), iShowCmd);
|
||||||
|
|
||||||
sei.cbSize = sizeof(sei);
|
sei.cbSize = sizeof(sei);
|
||||||
sei.fMask = 0;
|
sei.fMask = 0;
|
||||||
|
@ -1391,7 +1409,7 @@ BOOL WINAPI ShellExecuteExA (LPSHELLEXECUTEINFOA sei)
|
||||||
if (sei->lpDirectory)
|
if (sei->lpDirectory)
|
||||||
seiW.lpDirectory = __SHCloneStrAtoW(&wDirectory, sei->lpDirectory);
|
seiW.lpDirectory = __SHCloneStrAtoW(&wDirectory, sei->lpDirectory);
|
||||||
|
|
||||||
if ((sei->fMask & SEE_MASK_CLASSNAME) && sei->lpClass)
|
if ((sei->fMask & SEE_MASK_CLASSALL) == SEE_MASK_CLASSNAME && sei->lpClass)
|
||||||
seiW.lpClass = __SHCloneStrAtoW(&wClass, sei->lpClass);
|
seiW.lpClass = __SHCloneStrAtoW(&wClass, sei->lpClass);
|
||||||
else
|
else
|
||||||
seiW.lpClass = NULL;
|
seiW.lpClass = NULL;
|
||||||
|
|
|
@ -104,20 +104,30 @@ typedef struct
|
||||||
|
|
||||||
static const IShellViewVtbl svvt;
|
static const IShellViewVtbl svvt;
|
||||||
static const IOleCommandTargetVtbl ctvt;
|
static const IOleCommandTargetVtbl ctvt;
|
||||||
#define _IOleCommandTarget_Offset ((int)(&(((IShellViewImpl*)0)->lpvtblOleCommandTarget)))
|
|
||||||
#define _ICOM_THIS_From_IOleCommandTarget(class, name) class* This = (class*)(((char*)name)-_IOleCommandTarget_Offset);
|
|
||||||
|
|
||||||
static const IDropTargetVtbl dtvt;
|
static const IDropTargetVtbl dtvt;
|
||||||
#define _IDropTarget_Offset ((int)(&(((IShellViewImpl*)0)->lpvtblDropTarget)))
|
|
||||||
#define _ICOM_THIS_From_IDropTarget(class, name) class* This = (class*)(((char*)name)-_IDropTarget_Offset);
|
|
||||||
|
|
||||||
static const IDropSourceVtbl dsvt;
|
static const IDropSourceVtbl dsvt;
|
||||||
#define _IDropSource_Offset ((int)(&(((IShellViewImpl*)0)->lpvtblDropSource)))
|
|
||||||
#define _ICOM_THIS_From_IDropSource(class, name) class* This = (class*)(((char*)name)-_IDropSource_Offset);
|
|
||||||
|
|
||||||
static const IViewObjectVtbl vovt;
|
static const IViewObjectVtbl vovt;
|
||||||
#define _IViewObject_Offset ((int)(&(((IShellViewImpl*)0)->lpvtblViewObject)))
|
|
||||||
#define _ICOM_THIS_From_IViewObject(class, name) class* This = (class*)(((char*)name)-_IViewObject_Offset);
|
|
||||||
|
static inline IShellViewImpl *impl_from_IOleCommandTarget( IOleCommandTarget *iface )
|
||||||
|
{
|
||||||
|
return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblOleCommandTarget));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline IShellViewImpl *impl_from_IDropTarget( IDropTarget *iface )
|
||||||
|
{
|
||||||
|
return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblDropTarget));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline IShellViewImpl *impl_from_IDropSource( IDropSource *iface )
|
||||||
|
{
|
||||||
|
return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblDropSource));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline IShellViewImpl *impl_from_IViewObject( IViewObject *iface )
|
||||||
|
{
|
||||||
|
return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblViewObject));
|
||||||
|
}
|
||||||
|
|
||||||
/* ListView Header ID's */
|
/* ListView Header ID's */
|
||||||
#define LISTVIEW_COLUMN_NAME 0
|
#define LISTVIEW_COLUMN_NAME 0
|
||||||
|
@ -1255,6 +1265,16 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn
|
||||||
TRACE("-- NM_RCLICK %p\n",This);
|
TRACE("-- NM_RCLICK %p\n",This);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NM_DBLCLK:
|
||||||
|
TRACE("-- NM_DBLCLK %p\n",This);
|
||||||
|
if (OnDefaultCommand(This) != S_OK) ShellView_OpenSelectedItems(This);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NM_RETURN:
|
||||||
|
TRACE("-- NM_DBLCLK %p\n",This);
|
||||||
|
if (OnDefaultCommand(This) != S_OK) ShellView_OpenSelectedItems(This);
|
||||||
|
break;
|
||||||
|
|
||||||
case HDN_ENDTRACKA:
|
case HDN_ENDTRACKA:
|
||||||
TRACE("-- HDN_ENDTRACKA %p\n",This);
|
TRACE("-- HDN_ENDTRACKA %p\n",This);
|
||||||
/*nColumn1 = ListView_GetColumnWidth(This->hWndList, 0);
|
/*nColumn1 = ListView_GetColumnWidth(This->hWndList, 0);
|
||||||
|
@ -1277,7 +1297,6 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn
|
||||||
case LVN_ITEMACTIVATE:
|
case LVN_ITEMACTIVATE:
|
||||||
TRACE("-- LVN_ITEMACTIVATE %p\n",This);
|
TRACE("-- LVN_ITEMACTIVATE %p\n",This);
|
||||||
OnStateChange(This, CDBOSC_SELCHANGE); /* the browser will get the IDataObject now */
|
OnStateChange(This, CDBOSC_SELCHANGE); /* the browser will get the IDataObject now */
|
||||||
ShellView_DoContextMenu(This, 0, 0, TRUE);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LVN_COLUMNCLICK:
|
case LVN_COLUMNCLICK:
|
||||||
|
@ -1487,6 +1506,13 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn
|
||||||
/* free pidl array memory */
|
/* free pidl array memory */
|
||||||
HeapFree(GetProcessHeap(), 0, pItems);
|
HeapFree(GetProcessHeap(), 0, pItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Initiate a refresh */
|
||||||
|
else if(plvKeyDown->wVKey == VK_F5)
|
||||||
|
{
|
||||||
|
IShellView_Refresh((IShellView*)This);
|
||||||
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
FIXME("LVN_KEYDOWN key=0x%08x\n",plvKeyDown->wVKey);
|
FIXME("LVN_KEYDOWN key=0x%08x\n",plvKeyDown->wVKey);
|
||||||
}
|
}
|
||||||
|
@ -2017,7 +2043,7 @@ static HRESULT WINAPI ISVOleCmdTarget_QueryInterface(
|
||||||
REFIID iid,
|
REFIID iid,
|
||||||
LPVOID* ppvObj)
|
LPVOID* ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IOleCommandTarget(iface);
|
||||||
|
|
||||||
return IShellFolder_QueryInterface((IShellFolder*)This, iid, ppvObj);
|
return IShellFolder_QueryInterface((IShellFolder*)This, iid, ppvObj);
|
||||||
}
|
}
|
||||||
|
@ -2028,7 +2054,7 @@ static HRESULT WINAPI ISVOleCmdTarget_QueryInterface(
|
||||||
static ULONG WINAPI ISVOleCmdTarget_AddRef(
|
static ULONG WINAPI ISVOleCmdTarget_AddRef(
|
||||||
IOleCommandTarget * iface)
|
IOleCommandTarget * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IOleCommandTarget(IShellFolder, iface);
|
IShellViewImpl *This = impl_from_IOleCommandTarget(iface);
|
||||||
|
|
||||||
return IShellFolder_AddRef((IShellFolder*)This);
|
return IShellFolder_AddRef((IShellFolder*)This);
|
||||||
}
|
}
|
||||||
|
@ -2039,7 +2065,7 @@ static ULONG WINAPI ISVOleCmdTarget_AddRef(
|
||||||
static ULONG WINAPI ISVOleCmdTarget_Release(
|
static ULONG WINAPI ISVOleCmdTarget_Release(
|
||||||
IOleCommandTarget * iface)
|
IOleCommandTarget * iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IOleCommandTarget(iface);
|
||||||
|
|
||||||
return IShellFolder_Release((IShellFolder*)This);
|
return IShellFolder_Release((IShellFolder*)This);
|
||||||
}
|
}
|
||||||
|
@ -2055,7 +2081,7 @@ static HRESULT WINAPI ISVOleCmdTarget_QueryStatus(
|
||||||
OLECMDTEXT* pCmdText)
|
OLECMDTEXT* pCmdText)
|
||||||
{
|
{
|
||||||
UINT i;
|
UINT i;
|
||||||
_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IOleCommandTarget(iface);
|
||||||
|
|
||||||
FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n",
|
FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n",
|
||||||
This, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
|
This, pguidCmdGroup, debugstr_guid(pguidCmdGroup), cCmds, prgCmds, pCmdText);
|
||||||
|
@ -2083,7 +2109,7 @@ static HRESULT WINAPI ISVOleCmdTarget_Exec(
|
||||||
VARIANT* pvaIn,
|
VARIANT* pvaIn,
|
||||||
VARIANT* pvaOut)
|
VARIANT* pvaOut)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IOleCommandTarget(iface);
|
||||||
|
|
||||||
FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n",
|
FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n",
|
||||||
This, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
|
This, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
|
||||||
|
@ -2118,7 +2144,7 @@ static HRESULT WINAPI ISVDropTarget_QueryInterface(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
|
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
|
||||||
|
|
||||||
|
@ -2127,7 +2153,7 @@ static HRESULT WINAPI ISVDropTarget_QueryInterface(
|
||||||
|
|
||||||
static ULONG WINAPI ISVDropTarget_AddRef( IDropTarget *iface)
|
static ULONG WINAPI ISVDropTarget_AddRef( IDropTarget *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
|
||||||
|
@ -2136,7 +2162,7 @@ static ULONG WINAPI ISVDropTarget_AddRef( IDropTarget *iface)
|
||||||
|
|
||||||
static ULONG WINAPI ISVDropTarget_Release( IDropTarget *iface)
|
static ULONG WINAPI ISVDropTarget_Release( IDropTarget *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
|
||||||
|
@ -2151,7 +2177,7 @@ static HRESULT WINAPI ISVDropTarget_DragEnter(
|
||||||
DWORD *pdwEffect)
|
DWORD *pdwEffect)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p, DataObject=%p\n",This,pDataObject);
|
FIXME("Stub: This=%p, DataObject=%p\n",This,pDataObject);
|
||||||
|
|
||||||
|
@ -2164,7 +2190,7 @@ static HRESULT WINAPI ISVDropTarget_DragOver(
|
||||||
POINTL pt,
|
POINTL pt,
|
||||||
DWORD *pdwEffect)
|
DWORD *pdwEffect)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2174,7 +2200,7 @@ static HRESULT WINAPI ISVDropTarget_DragOver(
|
||||||
static HRESULT WINAPI ISVDropTarget_DragLeave(
|
static HRESULT WINAPI ISVDropTarget_DragLeave(
|
||||||
IDropTarget *iface)
|
IDropTarget *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2188,7 +2214,7 @@ static HRESULT WINAPI ISVDropTarget_Drop(
|
||||||
POINTL pt,
|
POINTL pt,
|
||||||
DWORD *pdwEffect)
|
DWORD *pdwEffect)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropTarget(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropTarget(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2215,7 +2241,7 @@ static HRESULT WINAPI ISVDropSource_QueryInterface(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropSource(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropSource(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
|
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
|
||||||
|
|
||||||
|
@ -2224,7 +2250,7 @@ static HRESULT WINAPI ISVDropSource_QueryInterface(
|
||||||
|
|
||||||
static ULONG WINAPI ISVDropSource_AddRef( IDropSource *iface)
|
static ULONG WINAPI ISVDropSource_AddRef( IDropSource *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropSource(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropSource(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
|
||||||
|
@ -2233,7 +2259,7 @@ static ULONG WINAPI ISVDropSource_AddRef( IDropSource *iface)
|
||||||
|
|
||||||
static ULONG WINAPI ISVDropSource_Release( IDropSource *iface)
|
static ULONG WINAPI ISVDropSource_Release( IDropSource *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropSource(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropSource(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
|
||||||
|
@ -2244,7 +2270,7 @@ static HRESULT WINAPI ISVDropSource_QueryContinueDrag(
|
||||||
BOOL fEscapePressed,
|
BOOL fEscapePressed,
|
||||||
DWORD grfKeyState)
|
DWORD grfKeyState)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropSource(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropSource(iface);
|
||||||
TRACE("(%p)\n",This);
|
TRACE("(%p)\n",This);
|
||||||
|
|
||||||
if (fEscapePressed)
|
if (fEscapePressed)
|
||||||
|
@ -2259,7 +2285,7 @@ static HRESULT WINAPI ISVDropSource_GiveFeedback(
|
||||||
IDropSource *iface,
|
IDropSource *iface,
|
||||||
DWORD dwEffect)
|
DWORD dwEffect)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IDropSource(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IDropSource(iface);
|
||||||
TRACE("(%p)\n",This);
|
TRACE("(%p)\n",This);
|
||||||
|
|
||||||
return DRAGDROP_S_USEDEFAULTCURSORS;
|
return DRAGDROP_S_USEDEFAULTCURSORS;
|
||||||
|
@ -2282,7 +2308,7 @@ static HRESULT WINAPI ISVViewObject_QueryInterface(
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
|
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
|
||||||
|
|
||||||
|
@ -2291,7 +2317,7 @@ static HRESULT WINAPI ISVViewObject_QueryInterface(
|
||||||
|
|
||||||
static ULONG WINAPI ISVViewObject_AddRef( IViewObject *iface)
|
static ULONG WINAPI ISVViewObject_AddRef( IViewObject *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
|
||||||
|
@ -2300,7 +2326,7 @@ static ULONG WINAPI ISVViewObject_AddRef( IViewObject *iface)
|
||||||
|
|
||||||
static ULONG WINAPI ISVViewObject_Release( IViewObject *iface)
|
static ULONG WINAPI ISVViewObject_Release( IViewObject *iface)
|
||||||
{
|
{
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
TRACE("(%p)->(count=%lu)\n",This,This->ref);
|
||||||
|
|
||||||
|
@ -2321,7 +2347,7 @@ static HRESULT WINAPI ISVViewObject_Draw(
|
||||||
ULONG_PTR dwContinue)
|
ULONG_PTR dwContinue)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2337,7 +2363,7 @@ static HRESULT WINAPI ISVViewObject_GetColorSet(
|
||||||
LOGPALETTE** ppColorSet)
|
LOGPALETTE** ppColorSet)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2351,7 +2377,7 @@ static HRESULT WINAPI ISVViewObject_Freeze(
|
||||||
DWORD* pdwFreeze)
|
DWORD* pdwFreeze)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2362,7 +2388,7 @@ static HRESULT WINAPI ISVViewObject_Unfreeze(
|
||||||
DWORD dwFreeze)
|
DWORD dwFreeze)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
FIXME("Stub: This=%p\n",This);
|
FIXME("Stub: This=%p\n",This);
|
||||||
|
|
||||||
|
@ -2375,7 +2401,7 @@ static HRESULT WINAPI ISVViewObject_SetAdvise(
|
||||||
IAdviseSink* pAdvSink)
|
IAdviseSink* pAdvSink)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
FIXME("partial stub: %p %08lx %08lx %p\n",
|
FIXME("partial stub: %p %08lx %08lx %p\n",
|
||||||
This, aspects, advf, pAdvSink);
|
This, aspects, advf, pAdvSink);
|
||||||
|
@ -2395,7 +2421,7 @@ static HRESULT WINAPI ISVViewObject_GetAdvise(
|
||||||
IAdviseSink** ppAdvSink)
|
IAdviseSink** ppAdvSink)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ICOM_THIS_From_IViewObject(IShellViewImpl, iface);
|
IShellViewImpl *This = impl_from_IViewObject(iface);
|
||||||
|
|
||||||
TRACE("This=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n",
|
TRACE("This=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n",
|
||||||
This, pAspects, pAdvf, ppAdvSink);
|
This, pAspects, pAdvf, ppAdvSink);
|
||||||
|
|
|
@ -24316,6 +24316,30 @@ IDI_SHELL_DESKTOP ICON desktop.ico
|
||||||
'FF FF FF FF 00 00 FF FF FF FF FF FF 00 00'
|
'FF FF FF FF 00 00 FF FF FF FF FF FF 00 00'
|
||||||
} */
|
} */
|
||||||
|
|
||||||
|
/* BINRES mydocs.ico */
|
||||||
|
IDI_SHELL_MY_DOCUMENTS ICON mydocs.ico
|
||||||
|
/* {
|
||||||
|
'00 00 01 00 01 00 10 10 10 00 01 00 04 00 28 01'
|
||||||
|
'00 00 16 00 00 00 28 00 00 00 10 00 00 00 20 00'
|
||||||
|
'00 00 01 00 04 00 00 00 00 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 99 99 00 66 CC CC 00 99 CC FF 00 99 FF'
|
||||||
|
'FF 00 F8 F8 F8 00 FF FF FF 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 00 00 00 00 11 11 11 11 11 11 00 00 15'
|
||||||
|
'34 34 33 33 21 00 01 54 43 43 43 33 20 10 01 54'
|
||||||
|
'44 44 34 33 10 10 15 44 44 34 43 42 00 20 15 44'
|
||||||
|
'44 44 34 32 06 00 11 11 11 11 11 11 46 60 01 54'
|
||||||
|
'06 66 66 66 66 00 01 54 40 66 66 65 50 20 01 54'
|
||||||
|
'44 06 56 66 01 10 00 15 55 50 66 60 00 00 00 01'
|
||||||
|
'11 11 06 00 00 00 00 00 00 00 00 00 00 00 FF FF'
|
||||||
|
'00 00 FF FF 00 00 E0 00 00 00 C0 00 00 00 C0 00'
|
||||||
|
'00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00'
|
||||||
|
'00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 01'
|
||||||
|
'00 00 C0 0F 00 00 E0 1F 00 00 FF BF 00 00'
|
||||||
|
} */
|
||||||
|
|
||||||
/*--------------------- END FIXME ------------------------*/
|
/*--------------------- END FIXME ------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -117,5 +117,6 @@
|
||||||
#define IDI_SHELL_CONTROL_PANEL 36
|
#define IDI_SHELL_CONTROL_PANEL 36
|
||||||
#define IDI_SHELL_PRINTERS_FOLDER 38
|
#define IDI_SHELL_PRINTERS_FOLDER 38
|
||||||
#define IDI_SHELL_FONTS_FOLDER 39
|
#define IDI_SHELL_FONTS_FOLDER 39
|
||||||
|
#define IDI_SHELL_MY_DOCUMENTS 235
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -361,6 +361,10 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand(
|
||||||
{
|
{
|
||||||
switch(LOWORD(lpcmi->lpVerb))
|
switch(LOWORD(lpcmi->lpVerb))
|
||||||
{
|
{
|
||||||
|
case FCIDM_SHVIEW_REFRESH:
|
||||||
|
if (lpSV) IShellView_Refresh(lpSV);
|
||||||
|
break;
|
||||||
|
|
||||||
case FCIDM_SHVIEW_NEWFOLDER:
|
case FCIDM_SHVIEW_NEWFOLDER:
|
||||||
DoNewFolder(iface, lpSV);
|
DoNewFolder(iface, lpSV);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -19,6 +19,7 @@ extern const GUID CLSID_NetworkPlaces;
|
||||||
extern const GUID CLSID_RecycleBin;
|
extern const GUID CLSID_RecycleBin;
|
||||||
extern const GUID CLSID_ShellFSFolder;
|
extern const GUID CLSID_ShellFSFolder;
|
||||||
extern const GUID CLSID_Printers;
|
extern const GUID CLSID_Printers;
|
||||||
|
extern const GUID CLSID_FolderShortcut;
|
||||||
extern const GUID FMTID_Intshcut;
|
extern const GUID FMTID_Intshcut;
|
||||||
extern const GUID FMTID_InternetSite;
|
extern const GUID FMTID_InternetSite;
|
||||||
extern const GUID CGID_Explorer;
|
extern const GUID CGID_Explorer;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue