Einbindung DLL

Hallo,

folgender Sachverhalt. Ich habe ein Programm. Compiliert sind es mittlerweile 3 MB. Kurzerhand machte ich aus dem Project eine DLL und erstellte ein neues Project. Dort band ich die DLL ein und rufe sie auf!
Soweit klappt alles. Das EXE File ist minimal, nur die DLL halt ein wenig grösser. Das stört mich bis jetzt aber nicht.

Nur kommt noch einiges dazu und ich möchte gerne den anderen Teil des Projectes wiederrum in eine DLL auslagern! Also machte ich folgendes.

Mein Project besteht aus einer MDI Form und diversen Child Fenstern. Natuerlich sollen alle anderen Fenster in der MDI Form „gefangen“ sein.

Wenn ich nun die DLL mit dem anderen Teil des programmes versuche zu starten, mache ich das wiefolgt.

Private Sub RunDecodeMP3() ' -\> Sub aus der DLL wird aufgerufen
 Dim DecodeMP3 As New MP3.Decodieren ' -\> Declaration zur Sub
 MP3.Decodieren.Run (Start.hWnd)' -\> Sub Run aus der DLL aufrufen und das HWND von der MDI Form ( Start) übergeben
End Sub

Der Aufbau, der Dll schaut wiefolgt aus

'Instanzing ist auf 6 -\> Global Multiuse gesetzt
'Klasse Decodieren
Option Explicit

Public Sub Run(Handle As Long)
 Hwnd = Handle
 Decodiere.Show
End Sub

'Im Modul
Option Explicit

Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Public Hwnd As Long

'In der Form

Option Explicit


Private Sub Form\_Load()
 Call SetParent(Me.Hwnd, Hwnd)
 'Weiterer Source
End Sub

Ds Problem nun ist. Wenn ich die Sub RunDecodeMP3 aufrufe, so wird die Sub Run aus der Dll gestartet. Dort wird das Handle von der MDI Form empfangen. Danach wird die Form aufgerufen zum encodieren der MP3’s. Im Form Load Ereignis sollte eigentlich die Form in die MDI Form gebunden werden. Jedoch macht es das nicht. Man kann sie aus der MDI Form herausziehen!
Sieht jemand mein Fehler oder weiss wie ich es anders machen kann?

MfG Alex

Hallo Alex

eigentlich die Form in die MDI Form gebunden werden. Jedoch
macht es das nicht. Man kann sie aus der MDI Form herrausziehen…

Dein ganzes Projekt zu debuggen, möcht ich mir ersparen.
So wie ich das sehe ist dein Window ist anscheinend nicht MDIChild.
Setparent reicht anscheinend nicht, versuch mal den Style vorher oder nachher auf MDIChild per API einzustellen.
Probieren mußt du aber schon selbst, auch weil es dann drauf ankommt, wie die API mit VB funktioniert, bzw. auch, wie überhaupt MDIChild-Windows erzeugt werden.

MfG
Matthias