The refresh update only takes about a second (in the compiled EXE) but as it displays the desktop first then some other folder it is very obvious. Maybe I can preserve the selection and then reselect from user code? I will investigate.

How do I get access to the selected node? I will investigate using TVM_EXPAND.

In the current unsupported FileTree component that I am using (and need to replace) I can do
ucTree.selectednode.expanded = true.

Would it be really difficult to give a "selectednode" ???
I have written a bit of CoreAudio code but am otherwise very new to OLEexp.