@The trick: In `ThreadProc` you use `lpVBHeader` as a parameter to `CopyMemory` and expect this global variable to be initialized from the calling thread. How is this supposed to work provided that appartment globals in VB6 are TLS based? Why is not `lpVBHeader` "reset" to NULL on the new thread in `ThreadProc`? I'm simply trying to figure out why is this working at all?

cheers,
</wqw>