ghisler(Author): Ok, i figured out why i needed to do a refresh, you were right, if i would do it documented way and return delayed for CONTENT_DELAYIFSLOW only, everything would be fine... to some point... well side effect for checking that flag is WaitForSingleObject(threadstopped, TIMOUT) and this slow things down. A lot. Maybe a little more control from plugin side is needed here

Sometimes if lot of processing (or as in my case; communicating with service that does its "magic" trough network) is involved it is faster to obtain data for whole directory instead of processing for each file on function call.
i have one little request/question, you have CONTENT_DELAYIFSLOW flag, but i am unable to recognise if the plugin was run for search... is it possible to somehow signalise (trough bitmask?) to plugin why it was called? I could optimise search of versions/rules/checkouts in clearcase a lot if i would know why i was called... again i have a walkaround (FindWindow TFindFile), but... well i hate it
another nice thing would be to add another type of colume, something like ft_icon (image, whatever...) to provide a path to icon that would be shown in column. I was thinking about implementing it on my own, but I am not to glad about runtime subclassing your pannels... but sure i do understand you have more important stuff to implement.
(sorry if i am pain in the as*, i am just trying to be usefull, you have great plugin architecture (i couldnt believe that actually all i need is there), but when i head for speed optimisations, some stuff is missing. Surely for hit and run plugin the architecture is all i need but i can/will do it better...)