Obrigado pessoal pela ajuda, mas eu já achei uma solução, achei uma API que muda as propriedades de um form para mdichild em tempo de execução, para quem interessar aí vai o código, um grande abraço a todos.
'-- Inicio: API para chamar form MDIChild de uma dll
Const GWL_STYLE = -16
Const WS_CHILD = &H40000000
Const WS_EX_MDICHILD = &H40
Const GW_CHILD = 5
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Sub ShowF(hwnd As Long, oFormChild As Object)
Dim Estilo As Long
Dim MDI As Long
'Pega a janela filha do MDI (MDI client)
MDI = GetWindow(hwnd, GW_CHILD)
'Pega o estilo do form da DLL
Estilo = GetWindowLong(oFormChild.hwnd, GWL_STYLE)
'Coloca estilo WS_CHILD para que a janela seja filha do MDI
'SetWindowLong oFormChild.hwnd, GWL_STYLE, (Estilo Or WS_CHILD Or WS_EX_MDICHILD)
SetWindowLong oFormChild.hwnd, GWL_STYLE, Estilo
'Coloca o form da DLL como filho do MDI
SetParent oFormChild.hwnd, MDI
oFormChild.Show
End Sub