In addition to what James said please split the patch up; one patch per module. A dll or program is a "module".
Sorry, I'm inundated with noobie errors here I think.
Also while you are at it please remove the superfluous casts in the lines you are changing. HeapAlloc (malloc too) returns a void pointer which doesn't needs to be casted to an other pointer type. E.g.
Will do. Didn't want to change coding style.
Actually my big struggle at the moment is trying to figure out where malloc() memory gets free(). What's the policy here? Should HeapAlloc() always be set free... Is the fact that some malloc() memory not free()'d an error, or a policy? Or should I work harder to find out where free() gets called?
Pete