The standard way to do this is to use the NativeWindow class.
IntPtr hWnd = GetUnmanagedWindow();//assume the handle is returned correctly Form form = new Form(); NativeWindow nativeWindow = new NativeWindow(); nativeWindow.AssignHandle(hWnd); form.Show(nativeWindow);
As Hans points out, be sure to call ReleaseHandle when you're done with it.
source share