Here's some code I just quickly adapted from the API Guide VB6 example to VB 2005. Note that i set the IsMdiContainer property of the form to True in the designer.
VB Code:
  1. Private Declare Function SetParent Lib "user32" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
  2.     Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Integer) As Integer
  3.     Private Declare Function GetDesktopWindow Lib "user32" () As Integer
  4.     Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As IntPtr) As Integer
  5.  
  6.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  7.         Dim mdiContainer As MdiClient = Nothing
  8.  
  9.         For Each ctl As Control In Me.Controls
  10.             If TypeOf ctl Is MdiClient Then
  11.                 mdiContainer = DirectCast(ctl, MdiClient)
  12.                 Exit For
  13.             End If
  14.         Next
  15.  
  16.         'Lock the window update
  17.         LockWindowUpdate(GetDesktopWindow)
  18.  
  19.         'Execute notepad.Exe
  20.         Dim myProcess As Process = Process.Start("notepad")
  21.  
  22.         myProcess.WaitForInputIdle()
  23.  
  24.         'Set the notepad's parent
  25.         SetParent(myProcess.MainWindowHandle, mdiContainer.Handle)
  26.  
  27.         'Put the focus on notepad
  28.         Putfocus(myProcess.MainWindowHandle)
  29.  
  30.         'Unlock windowupdate
  31.         LockWindowUpdate(0)
  32.     End Sub