Sorry to keep answering my own posts but if it helps someone give me an
answer it's worth it!
I've managed to find a Win2k machine with Visual Studio .Net 2002 on it. I
converted my project to compile, and i've traced the exact point in all my
dialog where the code falls over. It's nothing to do with CListCtrl it's all
to do with my CEdit boxes. In a few edit boxes I have methods to handle
EN_CHANGE for the edit boxes. In the handler I read in the string from the
edit box using GetWindowText() and I then strip out a specific character if
it happens to be there and then I write the text back to the edit box using
Now on my Win XP machine this debugs and runs absolutely fine, but on any
other OS it falls over ... and it kinda makes sense now. If I use
SetWindowText the edit box is thinking it's been changed and an EN_CHANGE
message must get fired. I think my code enters a loop going round and round
which in turn is causing the stack to overflow which is giving me my error.
Even more strangely, if I have Spy++ running to try and look for these
messages the messages simply don't happen and the edit box goes dead! you
can't type in it and get and SetWindowText do nothing!!