The BHM Utility allows you to register different steps in the interactions that mark changes in your application's state. Viewing different months of the Calendar control, for example, marks a change in state, and you may have noticed when we looked at this control earlier in the book that the back button of the browser remained grayed out and unavailable to us no matter how many different months were viewed.
Once a step has occurred that is defined within the BHM as a change in state, the back button of the browser becomes available and when clicked, takes the application back one of these steps. The expected functionality of the browser's interface is restored.
As well as defining different changes in state that may occur within your application, the BHM utility also tackles the problem of web application bookmarking. A simple method can be called that retrieves the initial state of the application according to the state that it was bookmarked...