Für die Messagen weise ich ein MessageHandle zu
FMessageHandle := Classes.AllocateHWnd(ProcMessage);
In der Function ProcMessage werte ich nun die Events aus.
Delphi-Quellcode:
if (iEventCode = EC_COMPLETE) or (iEventCode = EC_USERABORT) then // Event is reached
begin
MediaControl.Stop; // Player Stopped
SetMediaStreamPos(0); // Streamposition set to zero
FPlayerState := psSTOPPED; // PlayerState is stopped
if Win32MajorVersion >= 6 then
AllowMonitorPowerdown; // SetThreadExecutionState continuous
if Assigned(FEventNoticeFunc) then // if Event registerd > NULL
FEventNoticeFunc(PlayEnded); // send the Event
Wenn mir nun DirectShow die Message EC_COMPLETE oder bei Fehler EC_USERABORT dann reagiere ich darauf.
Siehe Code.
Ich wüsste jetzt nicht wie ich das noch besser machen sollte.
Das ist mein einziger Thread!
gruss