<p>When working with window handles, is it <em>good</em> enough to use the plain <strong>IntPtr</strong> or should I subclass <strong>SafeHandle</strong>?</p>

<p>Are there any significant pros/cons?</p>

<p>Thanks.</p>

That depends :)
If the handle is returned in such a way that you must eventually call a version of ::CloseHandle on them then you should always subclass SafeHandle.  SafeHandle makes the strongest guarantee possible in the .Net Framework that a handle will be freed.  Not freeing an IntPtr will lead to a resource leak.  Enough resource leaks will eventually lead to a program crash.
If the handle doesn't need to be freed then passing around IntPtr is sufficient.