This class encapsulates a system window but does not implement the IWin32Window interface. It provides CreateHandle() and AssignHandle() methods to wrap a native HWND, and DestroyHandle() to clean it up. You can also retrieve a NativeWindow for a particular handle with the static FromHandle() method. The Handle can be retrieved at any time. You can also invoke the DefWndProc() with a particular Message . You would typically use this control when you are creating a System.ComponentModel.Component (rather than a Control ) that uses a native Win32 window. An example of this in the framework is the ToolTip . It uses a NativeWindow derived class in its implementation to manage the pop-up tip window. public class NativeWindow : MarshalByRefObject { // Public Constructors public NativeWindow (); // Public Instance Properties public IntPtr Handle {get; } // Public Static Methods public static NativeWindow FromHandle (IntPtr handle ); // Public Instance Methods public void AssignHandle (IntPtr handle ); public virtual void CreateHandle (CreateParams cp ); public void DefWndProc (ref Message m ); public virtual void DestroyHandle (); public virtual void ReleaseHandle (); // Protected Instance Methods protected override void Finalize (); // overrides object protected virtual void OnHandleChange (); protected virtual void OnThreadException (Exception e ); protected virtual void WndProc (ref Message m ); } HierarchySystem.Object System.MarshalByRefObject NativeWindow |