Why do you need such a list?
The DialogProc needs to access some additional information, like whether the dialog be cancelled or not, or the callback pointer. If you have a better idea to solve this problem, I'd love to hear it. That was just the one I came up with.
Regards, Fabian Maurer