Es ist (soweit ich das übersehen kann) leider nicht möglich, eine Callbackfunktion anstatt MM_MCINOTIFY zu verwenden, was bedeutet, dass du innerhalb deiner
DLL ein Fenster erstellen musst (es muss ja nicht sichtbar sein). Das kannst du einerseits machen, indem du ein
VCL-Formular in deine
DLL einbindest (kannst du in der
IDE designen, dann über {$R} in die
DLL einbinden und TForm.Create() benutzen), was deine
DLL ziemlich aufbläht und das Mitliefern der borlandmm.dll notwendig macht. Andererseits kannst du auch ein Fenster per
WinAPI-Funktionen erzeugen und in der WndProc-Funktion die Message MM_MCINOTIFY ganz einfach abfangen. Näheres dazu findest du bei
Luckies nonVCL-Tutorials.