On Thu, Feb 14, 2008 at 11:56 PM, TK Soh <[EMAIL PROTECTED]> wrote:
> On Thu, Feb 14, 2008 at 10:55 PM, Mark Hammond
> <[EMAIL PROTECTED]> wrote:
> > MSDN documents that " For performance reasons, multiple notifications may
> > be combined into a single notification. For example, if a large number of
> > SHCNE_UPDATEITEM notifications are generated for files in the same folder,
> > they can be joined into a single SHCNE_UPDATEDIR notification."
> >
> > which I suspect is your problem. I work on an app that makes heavy use of
> > SHChangeNotify and handling the notifications and I've not had any
> problems
> > (other than some machines failing to SHChangeNotifyRegister, for reasons
> > that escape me)
>
> Thanks for the tip.
>
> I just found out I was passing SHCNF_FLUSHNOWAIT flag to the calls. By
> changing the flag to SHCNF_FLUSH, the icons are refreshed correctly
> (at least most of the time). Though the delay on refreshing is
> noticeable from one icon to the other. But that's not intolerable for
> now.
>
> BTW, is there any ill effect in the use of SHCNF_FLUSH? I don't
> understand the reason why SHCNF_FLUSHNOWAIT would not work though.
>
> I will experiment with SHCNE_UPDATEDIR to see if it help on this.
I tried passing SHCNE_UPDATEDIR to the parent dir of the icons, but
the icons were not refreshed. Win32traceutil also didn't record any
overlay icons requests. Here's how it was done:
dir = os.path.dirname(path)
pidl, ignore = shell.SHILCreateFromPath(dir, 0)
print "notify: ", shell.SHGetPathFromIDList(pidl)
shell.SHChangeNotify(shellcon.SHCNE_UPDATEDIR,
shellcon.SHCNF_IDLIST | shellcon.SHCNF_FLUSH,
pidl,
None)
Any thing I did wrong?
_______________________________________________
python-win32 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-win32