title: Why would you override wndproc
body: <p>I have been looking around and haven't really seen much information on why someone would override wndproc to handle messages.</p>
  
  <p>So I wondering:</p>
  
  <p><strong>Why do it?</strong></p>
  
  <p><strong>When to do it?</strong></p>
  
  <p><strong>Whats its general purpose in C#?</strong></p>
  
  <p>I have tried using it when seeing a serial COM plugged and unplugged from the computer, but I felt like I managed better reliance on methods I have created myself.</p>
  
  <p>Other messages I see are for key-presses, cursor settings, and other various actions. This being said most of these things already have built in methods in c# libraries. So again I am back to my three main questions. Any information, opinions, examples, etc would be awesome.</p>