The abstract base class all screen readers must derive from. The screen reader sets up and tears down the screen reader framework with Activate() and Deactivate() respectively. When active, the screen reader will intercept all application messages, perform necessary input pre-processing and dispatch the accessible events and inputs to all registered screen reader users. Users of derived classes must activate the screen reader to ensure the accessible inputs and accessible events are dispatched properly. Derived classes must implement the pure virtual OnAccessibleEventRaised function to handle accessible events.