The Uninitialize method resets the internal state of the 
          control and releases system resources allocated for this class 
          instance. This method is not typically used because any resources that 
          have been allocated by an instance of the control will automatically 
          be released when it is destroyed.
          Each time the Initialize method is invoked, it increments an 
          internal counter that keeps track of the number of times that it has 
          been called by any thread in the current process. The Uninitialize 
          method decrements this counter, and when the usage count drops to 
          zero, the control will automatically unload the system libraries that 
          it has dynamically loaded and will destroy the process heap that was 
          allocated when the first instance of the control was created. An 
          application should only call the Uninitialize method if it has 
          explicitly called the Initialize method.