protected override void Dispose(bool disposing)
 {
     if (!disposedValue)
     {
         if (disposing)
         {
             if (this.IsHooked)
             {
                 IUIAutomation uia = this.IUIAutomation;
                 if (uia != null)
                 {
                     uia.RemovePropertyChangedEventHandler(this.Element, this);
                 }
             }
         }
     }
     base.Dispose(disposing);
 }