shell32 (part4): Let SHChangeNotify use SHSimpleIDListFromPath instead
Rolf Kalbermatter
rolf.kalbermatter at citengineering.com
Thu Sep 11 14:22:23 CDT 2003
Changelog
- dlls/shell32/pidl.c
SHChangeNotify should use SHSimpleIDListFromPath as this function should not
fail on paths that do not exist anymore, think about delete change notifications!
(SHSimpleIDListFromPath does actually still the same as SHILCreateFromPath ATM,
after the previous shell32 patches have been applied, but that is going to change)
License: X11/LGPL
Rolf Kalbermatter
Index: dlls/shell32/changenotify.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/changenotify.c,v
retrieving revision 1.26
diff -u -r1.26 changenotify.c
--- dlls/shell32/changenotify.c 5 Sep 2003 23:08:31 -0000 1.26
+++ dlls/shell32/changenotify.c 11 Sep 2003 18:03:17 -0000
@@ -276,7 +276,6 @@
{
LPITEMIDLIST Pidls[2];
LPNOTIFICATIONLIST ptr;
- DWORD dummy;
UINT typeFlag = uFlags & SHCNF_TYPE;
Pidls[0] = NULL;
@@ -313,12 +312,12 @@
switch (typeFlag)
{
case SHCNF_PATHA:
- if (dwItem1) SHILCreateFromPathA((LPCSTR)dwItem1, &Pidls[0], &dummy);
- if (dwItem2) SHILCreateFromPathA((LPCSTR)dwItem2, &Pidls[1], &dummy);
+ if (dwItem1) Pidls[0] = SHSimpleIDListFromPathA((LPCSTR)dwItem1);
+ if (dwItem2) Pidls[1] = SHSimpleIDListFromPathA((LPCSTR)dwItem2);
break;
case SHCNF_PATHW:
- if (dwItem1) SHILCreateFromPathW((LPCWSTR)dwItem1, &Pidls[0], &dummy);
- if (dwItem2) SHILCreateFromPathW((LPCWSTR)dwItem2, &Pidls[1], &dummy);
+ if (dwItem1) Pidls[0] = SHSimpleIDListFromPathW((LPCWSTR)dwItem1);
+ if (dwItem2) Pidls[1] = SHSimpleIDListFromPathW((LPCWSTR)dwItem2);
break;
case SHCNF_IDLIST:
Pidls[0] = (LPITEMIDLIST)dwItem1;
@@ -392,8 +391,8 @@
TRACE("notify Done\n");
LeaveCriticalSection(&SHELL32_ChangenotifyCS);
- /* if we allocated it, free it */
- if ((typeFlag == SHCNF_PATHA) || (typeFlag == SHCNF_PATHW))
+ /* if we allocated it, free it. The ANSI flag is also set in its Unicode sibling. */
+ if ((typeFlag & SHCNF_PATHA) || (typeFlag & SHCNF_PRINTERA))
{
if (Pidls[0]) SHFree(Pidls[0]);
if (Pidls[1]) SHFree(Pidls[1]);
More information about the wine-patches
mailing list