Thema: Delphi iTunes COM Events

Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: iTunes COM Events

  Alt 20. Okt 2009, 23:24
Und was hast du jetzt gemacht?

Du musst also irgendwie dein ITunes starten:
Delphi-Quellcode:
var iTunes:IiTunes;

iTunes:=CoiTunesApp.Create;
Dann erstellst du eine Klasse, welche die Events empfängt:
Delphi-Quellcode:
var iTunesLibIiTunesEvents:TiTunesLibIiTunesEvents;

iTunesLibIiTunesEvents:=TiTunesLibIiTunesEvents.Create(nil); //oder eben mit Owner;
Dann verbindest du den Eventhandler mit iTunes:
Delphi-Quellcode:
//das funktioniert widererwartend "rückwärts"
iTunesLibIiTunesEvents.connect(iTunes);
Damit bekommt dein Objekt iTunesLibIiTunesEvents alle Ereignisse von iTunes mit. Du kannst auch problemlos mehrere Eventhandler bei iTunes connecten. Dann wird bei einem entspröchenden Ereignis eben jedes Objekt benachrichtigt.

Allerdings weis jetzt iTunesLibIiTunesEvents nocht nicht, was es bei einem Event machen soll. Bzw. bis jetzt macht es noch gar nichts, dafür musst du eben wie in Delphi gewohnt die Ereignisbehandlungsroutinen zuweisen:
Delphi-Quellcode:
type
  TiTunesLibIiTunesEvents = class (TiTunesLibEventsBaseSink)
  [...]
  published
    //SinkEventsPublished//
    property OnDatabaseChangedEvent: T_IiTunesEventsOnDatabaseChangedEventEvent read FOnDatabaseChangedEvent write FOnDatabaseChangedEvent;
    property OnPlayerPlayEvent: T_IiTunesEventsOnPlayerPlayEventEvent read FOnPlayerPlayEvent write FOnPlayerPlayEvent;
    property OnPlayerStopEvent: T_IiTunesEventsOnPlayerStopEventEvent read FOnPlayerStopEvent write FOnPlayerStopEvent;
    property OnPlayerPlayingTrackChangedEvent: T_IiTunesEventsOnPlayerPlayingTrackChangedEventEvent read FOnPlayerPlayingTrackChangedEvent write FOnPlayerPlayingTrackChangedEvent;
    property OnUserInterfaceEnabledEvent: T_IiTunesEventsOnUserInterfaceEnabledEventEvent read FOnUserInterfaceEnabledEvent write FOnUserInterfaceEnabledEvent;
    property OnCOMCallsDisabledEvent: T_IiTunesEventsOnCOMCallsDisabledEventEvent read FOnCOMCallsDisabledEvent write FOnCOMCallsDisabledEvent;
    property OnCOMCallsEnabledEvent: T_IiTunesEventsOnCOMCallsEnabledEventEvent read FOnCOMCallsEnabledEvent write FOnCOMCallsEnabledEvent;
    property OnQuittingEvent: T_IiTunesEventsOnQuittingEventEvent read FOnQuittingEvent write FOnQuittingEvent;
    property OnAboutToPromptUserToQuitEvent: T_IiTunesEventsOnAboutToPromptUserToQuitEventEvent read FOnAboutToPromptUserToQuitEvent write FOnAboutToPromptUserToQuitEvent;
    property OnSoundVolumeChangedEvent: T_IiTunesEventsOnSoundVolumeChangedEventEvent read FOnSoundVolumeChangedEvent write FOnSoundVolumeChangedEvent;
  end;
Jo, und dann sollte alles gehen. Ich habe (leider) kein iTunes, kann es deswegen nicht testen
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat