In short, no. But that wasn’t the goal.
All of our forms implement an interface, which forces the way they work. The UI can change, the way we populate the data will not, and that’s what I’m using. The idea wasn’t to implement this for every last window we have, that’s silly. It’s only being done on those heavily used windows. The basic idea is to store a ; delimited list of data as a string. The data can be whatever you want it to be. Then when the application opens back up you handle that string. Any major changes (such as removing or adding stuff to a window) would require us to change the code that creates and handles that string as well. It is not a perfect design by any means, but it works for us since things will not be changing much anymore.
Smart man. I’ve seen a lot of applications that have these features changing very often because it’s not done generically or done to a page/form that is fairly static in regards to change.