I'm having a hard time understanding how to call CreateMDIWindow from C#.
Here's what I have so far:

[DllImport("user32.dll")]
static extern IntPtr CreateMDIWindow(string lpClassName, string lpWindowName,
uint dwStyle, int X, int Y, int nWidth, int nHeight, IntPtr hwndParent,
IntPtr hInstance, IntPtr lParam);


System.Diagnostics.Process proc = new System.Diagnostics.Process();
//proc.EnableRaisingEvents = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = @"C:\Program Files\BYOND\BYONDSTUFF\3DRPG\3DRPG.exe";//@"C:\Program Files\BYOND\BYONDSTUFF\3DRPG\3DRPG.dmb";
proc.Start();

IntPtr hwnd = proc.MainWindowHandle;
IntPtr mainModule = Process.GetCurrentProcess().Handle;
IntPtr hwndParent = this.Handle;
IntPtr LPARAM = IntPtr.Zero;
uint dwStyle = 0;
int X = 400;
int Y = 400;
int nWidth = 400;
int nHeight = 400;

CreateMDIWindow("\0", "3DRPG2", dwStyle, X, Y, nWidth, nHeight, hwndParent, mainModule, LPARAM);

I'm a rookie at this, so I really don't know exactly what all the parameters do. I read up on the msdn documentation on this function, but it's fairly sparse.

The window belongs to another process--it does not come from the program's process which calls it.

So should hwndParent and hInstance belong to my program which calls CreateMDIWindow, or should it belong to the process which owns the window?