you should review Observer design.. It is too complicated, hard to read the code, too many bugs (you extended the observer design, which means you know how it works, BUT the typos/bugs have been mostly in your code and that means it is really complicated to use)...

my comments

overall design
1) too many contexts, {BasicChangeContextType, ComplexChangeContextType, ScopedChangeContextType}, better make ONE complex
2) is priority list really used and if positive then is it really needed?

cpage observers
1) annots prop watchdog, annots array watch dog: can't they be unified?
2) there are really too many places where observers must/should be registered / unregistered...

1) use of many defines == difficult to debug try using functions (template, inline better than define)


Connect and share in new ways with Windows Live. Get it now!