TVE_COLLAPSE | TVE_COLLAPSERESET doesn't seem to work either.
That's weird. I tried sending TVM_EXPAND with TVE_COLLAPSE and TVE_EXPAND with control spy and they work as expected. Could you double-check? Does TVE_TOGGLE work? Also, could you try to use PostMessage(TVM_EXPAND, TVE_COLLAPSE) and then call flush_events()?
I could try resetting the flag manually, although it does say it will result in unpredictable behavior.
Let's not do that then.