Here is the interface for TShapeNotification. The implementation is not presented because it is standard.
class TShapeNotification : public TNotification { public: MCollectibleDeclarationsMacro(TShapeNotification); TShapeNotification(const TInterest&, const MGraphic&); TShapeNotification(const TShapeNotification&); virtual ~TShapeNotification(); const TShapeNotification& operator =(const TShapeNotification&); const MGraphic* GetShape() const; virtual TStream& operator >>=(TStream&) const; virtual TStream& operator <<=(TStream&); virtual Boolean IsEqual(const MCollectible*) const; protected: TShapeNotification(); private: MGraphic* fShape; enum { kOriginalVersion }; };