In DirectSound gibt es Klassen wie Notify und eine Struktur Namens "Notificationevent", die automatisch eine Funktion aufrufen wenn der Playcursor eines SoundBuffers (Secondarybuffer) bzw (Capturebuffer) einen bestimmten Wert erreichen. (So habe ich das jedenfalls interpretieren können)
In der Dokumentation extrem schlecht erklärt aber doch recht nützlich, da ich sonst einen Timer benutzt habe um die Position des Read.- oder Write.- Cursors abzufragen, was doch recht viel Quellcode erzeugt hat für die Abfrage Prüfen u.s.w.
Aufgrund der fehlenden Dokumentation habe ich das Nachforschen vorerst aufgegeben. Aber du hast schon recht das diese (IntPtr) mit delegates erzeugt werden können. Aber ich habe noch keine Programmiererfahrung mit delegates und Beispiele bezüglich der Benutzung der oben angegebenen Klassen fehlen in der DirectX SDK