From: Michael Jung
SHBindToParent does not allocate a new PIDL for pidlLast, but returns a pointer to right location in pidl. This means you should not free it. There's still the problem that the shell folder isn't released in failure cases.
Sorry, I didn't realize this.
I feel a bit silly for not catching it either. MSDN is very clear about this. I've resubmitted a patch which only releases the interface pointer.
Gé van Geldorp.