Small fixes.
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 0091faf..b75297f 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -736,11 +736,27 @@
/*************************************************************************
* PathProcessCommand [SHELL32.653]
*/
-HRESULT WINAPI PathProcessCommand (DWORD u, DWORD v, DWORD w, DWORD x)
-{ FIXME("0x%04lx 0x%04lx 0x%04lx 0x%04lx stub\n",u,v,w,x);
+HRESULT WINAPI PathProcessCommandA (LPSTR lpCommand, LPSTR v, DWORD w, DWORD x)
+{
+ FIXME("%p(%s) %p 0x%04lx 0x%04lx stub\n",
+ lpCommand, lpCommand, v, w,x );
return 0;
}
+HRESULT WINAPI PathProcessCommandW (LPWSTR lpCommand, LPSTR v, DWORD w, DWORD x)
+{
+ FIXME("%p(%s) %p 0x%04lx 0x%04lx stub\n",
+ lpCommand, debugstr_w(lpCommand), v, w,x );
+ return 0;
+}
+
+HRESULT WINAPI PathProcessCommandAW (LPVOID lpCommand, LPSTR v, DWORD w, DWORD x)
+{
+ if (VERSION_OsIsUnicode())
+ return PathProcessCommandW(lpCommand, v, w, x);
+ return PathProcessCommandA(lpCommand, v, w, x);
+}
+
/*************************************************************************
* SHGetSpecialFolderPath [SHELL32.175]
*
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 6f44144..7de71a6 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -3,6 +3,8 @@
*
* Copyright 1997 Marcus Meissner
* Copyright 1998 Juergen Schmied
+ *
+ * IShellFolder with IDropTarget, IPersistFolder
*
*/
@@ -217,8 +219,8 @@
*/
static struct ICOM_VTABLE(IShellFolder) sfvt;
-static struct ICOM_VTABLE(IPersistFolder) psfvt;
+static struct ICOM_VTABLE(IPersistFolder) psfvt;
#define _IPersistFolder_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblPersistFolder)))
#define _ICOM_THIS_From_IPersistFolder(class, name) class* This = (class*)(((char*)name)-_IPersistFolder_Offset);
@@ -235,8 +237,10 @@
sf=(IGenericSFImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IGenericSFImpl));
sf->ref=1;
+
sf->lpvtbl=&sfvt;
sf->lpvtblPersistFolder=&psfvt;
+
sf->sMyPath=NULL; /* path of the folder */
sf->pMyPidl=NULL; /* my qualified pidl */
@@ -302,7 +306,8 @@
}
if(*ppvObj)
- { IShellFolder_AddRef((IShellFolder*)*ppvObj);
+ {
+ IUnknown_AddRef((IUnknown*)(*ppvObj));
TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
return S_OK;
}
@@ -822,7 +827,7 @@
/* test if simple(relative) or complex(absolute) pidl */
pidlTemp = ILGetNext(pidl);
- if (pidlTemp && pidlTemp->mkid.cb==0x00)
+ if (pidlTemp && !pidlTemp->mkid.cb )
{ bSimplePidl = TRUE;
TRACE("-- simple pidl\n");
}
@@ -1077,3 +1082,4 @@
ISFPersistFolder_GetClassID,
ISFPersistFolder_Initialize
};
+
diff --git a/dlls/shell32/shlmenu.c b/dlls/shell32/shlmenu.c
index d803c5e..861ec45 100644
--- a/dlls/shell32/shlmenu.c
+++ b/dlls/shell32/shlmenu.c
@@ -196,7 +196,9 @@
}
if ( GetMenuItemCount (hmenu) == 0 )
- FileMenu_AppendItemA (hmenu, "(empty)", uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT);
+ { FileMenu_AppendItemA (hmenu, "(empty)", uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT);
+ NumberOfItems++;
+ }
menudata->bInitialized = TRUE;
SetMenuInfo(hmenu, &MenuInfo);
@@ -889,3 +891,4 @@
}
return(uIDMax);
}
+
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c
index 732671e..6fb91a1 100644
--- a/dlls/shell32/shlview.c
+++ b/dlls/shell32/shlview.c
@@ -1212,7 +1212,7 @@
}
if(*ppvObj)
- { IShellView_AddRef( (IShellView*) *ppvObj);
+ { IShellView_AddRef( (IShellView*)This );
TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
return S_OK;
}
@@ -1221,7 +1221,7 @@
}
/**************************************************************************
-* IShellView::AddRef
+* IShellView_AddRef
*/
static ULONG WINAPI IShellView_fnAddRef(IShellView * iface)
{
@@ -1564,7 +1564,7 @@
}
/************************************************************************
- * ISVOleCmdTarget_Exec (IOleCommandTarget)
+ * ISVOleCmdTarget_QueryStatus (IOleCommandTarget)
*/
static HRESULT WINAPI ISVOleCmdTarget_QueryStatus(
IOleCommandTarget *iface,
@@ -1573,14 +1573,20 @@
OLECMD * prgCmds,
OLECMDTEXT* pCmdText)
{
+ char xguid[50];
+
_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
- FIXME("(%p)->(%p 0x%08lx %p %p\n", This, pguidCmdGroup, cCmds, prgCmds, pCmdText);
+ WINE_StringFromCLSID((LPCLSID)pguidCmdGroup,xguid);
+
+ FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n", This, pguidCmdGroup, xguid, cCmds, prgCmds, pCmdText);
return E_NOTIMPL;
}
/************************************************************************
* ISVOleCmdTarget_Exec (IOleCommandTarget)
+ *
+ * nCmdID is the OLECMDID_* enumeration
*/
static HRESULT WINAPI ISVOleCmdTarget_Exec(
IOleCommandTarget *iface,
@@ -1590,9 +1596,13 @@
VARIANT* pvaIn,
VARIANT* pvaOut)
{
+ char xguid[50];
+
_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
- FIXME("(%p)->(%p 0x%08lx 0x%08lx %p %p)\n", This, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+ WINE_StringFromCLSID((LPCLSID)pguidCmdGroup,xguid);
+
+ FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n", This, xguid, nCmdID, nCmdexecopt, pvaIn, pvaOut);
return E_NOTIMPL;
}
diff --git a/dlls/shell32/shres.rc b/dlls/shell32/shres.rc
index 0c87eed..72162e9 100644
--- a/dlls/shell32/shres.rc
+++ b/dlls/shell32/shres.rc
@@ -13,6 +13,8 @@
* and translated. The language 0,0 is a hack to get it
* loaded properly for all languages by pretending that
* they are neutral.
+ * The menus are not jet properly implemented.
+ * Don't localize it yet. (js)
*/
LANGUAGE 0,0
@@ -39,6 +41,11 @@
MENUITEM SEPARATOR
POPUP "Arrange &Icons"
BEGIN
+ MENUITEM "By &Name", 0x30 /* column 0 */
+ MENUITEM "By &Type", 0x32 /* column 2 */
+ MENUITEM "By &Size", 0x31 /* ... */
+ MENUITEM "By &Date", 0x33
+ MENUITEM SEPARATOR
MENUITEM "&Auto Arrange", FCIDM_SHVIEW_AUTOARRANGE
END
MENUITEM "Lin&e up Icons", FCIDM_SHVIEW_SNAPTOGRID
diff --git a/include/docobj.h b/include/docobj.h
index 83fb2a5..b3fe9f9 100644
--- a/include/docobj.h
+++ b/include/docobj.h
@@ -71,6 +71,50 @@
OLECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
} OLECMDEXECOPT;
+
+typedef enum OLECMDID
+{
+ OLECMDID_OPEN = 1,
+ OLECMDID_NEW = 2,
+ OLECMDID_SAVE = 3,
+ OLECMDID_SAVEAS = 4,
+ OLECMDID_SAVECOPYAS = 5,
+ OLECMDID_PRINT = 6,
+ OLECMDID_PRINTPREVIEW = 7,
+ OLECMDID_PAGESETUP = 8,
+ OLECMDID_SPELL = 9,
+ OLECMDID_PROPERTIES = 10,
+ OLECMDID_CUT = 11,
+ OLECMDID_COPY = 12,
+ OLECMDID_PASTE = 13,
+ OLECMDID_PASTESPECIAL = 14,
+ OLECMDID_UNDO = 15,
+ OLECMDID_REDO = 16,
+ OLECMDID_SELECTALL = 17,
+ OLECMDID_CLEARSELECTION = 18,
+ OLECMDID_ZOOM = 19,
+ OLECMDID_GETZOOMRANGE = 20,
+ OLECMDID_UPDATECOMMANDS = 21,
+ OLECMDID_REFRESH = 22,
+ OLECMDID_STOP = 23,
+ OLECMDID_HIDETOOLBARS = 24,
+ OLECMDID_SETPROGRESSMAX = 25,
+ OLECMDID_SETPROGRESSPOS = 26,
+ OLECMDID_SETPROGRESSTEXT = 27,
+ OLECMDID_SETTITLE = 28,
+ OLECMDID_SETDOWNLOADSTATE = 29,
+ OLECMDID_STOPDOWNLOAD = 30,
+ OLECMDID_ONTOOLBARACTIVATED = 31,
+ OLECMDID_FIND = 32,
+ OLECMDID_DELETE = 33,
+ OLECMDID_HTTPEQUIV = 34,
+ OLECMDID_HTTPEQUIV_DONE = 35,
+ OLECMDID_ENABLE_INTERACTION = 36,
+ OLECMDID_ONUNLOAD = 37,
+ OLECMDID_PROPERTYBAG2 = 38,
+ OLECMDID_PREREFRESH = 39
+ /* iexplorer uses ... 44 */
+} OLECMDID;
#define OLECMDERR_E_FIRST (OLE_E_LAST+1)
#define OLECMDERR_E_NOTSUPPORTED (OLECMDERR_E_FIRST)