############################################################################# ## Name: lib/Wx/ActiveX/WMPlayer.pm ## Purpose: Wx::ActiveX::WMPlayer (Windows Media Player) ## Author: Thiago S. V. ## Created: 14/04/2003 ## SVN-ID: $Id: WMPlayer.pm 2370 2008-04-12 23:37:37Z mdootson $ ## Copyright: (c) 2002 - 2008 Thiago S. V., Mattia Barbon, Mark Dootson ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# #---------------------------------------------------------------------- package Wx::ActiveX::WMPlayer; #---------------------------------------------------------------------- use strict; use Wx qw( :misc ); use Wx::ActiveX; use base qw( Wx::ActiveX ); our $VERSION = '0.11'; our (@EXPORT_OK, %EXPORT_TAGS); $EXPORT_TAGS{everything} = \@EXPORT_OK; my $PROGID = 'WMPlayer.OCX'; # Local Event IDs my $wxEVENTID_AX_MEDIAPLAYER_ENDOFSTREAM = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DEVICESTATUSCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_BUFFERING = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_SCRIPTCOMMAND = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYSTATECHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_AUDIOLANGUAGECHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DEVICESYNCERROR = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_POSITIONCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MOUSEDOWN = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DOUBLECLICK = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_OPENSTATECHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MODECHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_KEYUP = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DISCONNECT = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MOUSEUP = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_STATUSCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CLICK = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DEVICESYNCSTATECHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYERRECONNECT = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DURATIONUNITCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_KEYDOWN = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_KEYPRESS = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_OPENPLAYLISTSWITCH = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DEVICEDISCONNECT = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MEDIAERROR = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_WARNING = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MARKERHIT = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_SWITCHEDTOCONTROL = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CDROMMEDIACHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_CURRENTITEMCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DEVICECONNECT = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MOUSEMOVE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_MEDIACHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_ERROR = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_NEWSTREAM = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_DOMAINCHANGE = Wx::NewEventType; my $wxEVENTID_AX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION = Wx::NewEventType; # Event ID Sub Functions sub EVENTID_AX_MEDIAPLAYER_ENDOFSTREAM () { $wxEVENTID_AX_MEDIAPLAYER_ENDOFSTREAM } sub EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED () { $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED } sub EVENTID_AX_MEDIAPLAYER_DEVICESTATUSCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_DEVICESTATUSCHANGE } sub EVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE () { $wxEVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE } sub EVENTID_AX_MEDIAPLAYER_BUFFERING () { $wxEVENTID_AX_MEDIAPLAYER_BUFFERING } sub EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED () { $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED } sub EVENTID_AX_MEDIAPLAYER_SCRIPTCOMMAND () { $wxEVENTID_AX_MEDIAPLAYER_SCRIPTCOMMAND } sub EVENTID_AX_MEDIAPLAYER_PLAYSTATECHANGE () { $wxEVENTID_AX_MEDIAPLAYER_PLAYSTATECHANGE } sub EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE } sub EVENTID_AX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE () { $wxEVENTID_AX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE } sub EVENTID_AX_MEDIAPLAYER_AUDIOLANGUAGECHANGE () { $wxEVENTID_AX_MEDIAPLAYER_AUDIOLANGUAGECHANGE } sub EVENTID_AX_MEDIAPLAYER_DEVICESYNCERROR () { $wxEVENTID_AX_MEDIAPLAYER_DEVICESYNCERROR } sub EVENTID_AX_MEDIAPLAYER_POSITIONCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_POSITIONCHANGE } sub EVENTID_AX_MEDIAPLAYER_MOUSEDOWN () { $wxEVENTID_AX_MEDIAPLAYER_MOUSEDOWN } sub EVENTID_AX_MEDIAPLAYER_DOUBLECLICK () { $wxEVENTID_AX_MEDIAPLAYER_DOUBLECLICK } sub EVENTID_AX_MEDIAPLAYER_OPENSTATECHANGE () { $wxEVENTID_AX_MEDIAPLAYER_OPENSTATECHANGE } sub EVENTID_AX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE () { $wxEVENTID_AX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE } sub EVENTID_AX_MEDIAPLAYER_MODECHANGE () { $wxEVENTID_AX_MEDIAPLAYER_MODECHANGE } sub EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED () { $wxEVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED } sub EVENTID_AX_MEDIAPLAYER_KEYUP () { $wxEVENTID_AX_MEDIAPLAYER_KEYUP } sub EVENTID_AX_MEDIAPLAYER_DISCONNECT () { $wxEVENTID_AX_MEDIAPLAYER_DISCONNECT } sub EVENTID_AX_MEDIAPLAYER_MOUSEUP () { $wxEVENTID_AX_MEDIAPLAYER_MOUSEUP } sub EVENTID_AX_MEDIAPLAYER_STATUSCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_STATUSCHANGE } sub EVENTID_AX_MEDIAPLAYER_CLICK () { $wxEVENTID_AX_MEDIAPLAYER_CLICK } sub EVENTID_AX_MEDIAPLAYER_DEVICESYNCSTATECHANGE () { $wxEVENTID_AX_MEDIAPLAYER_DEVICESYNCSTATECHANGE } sub EVENTID_AX_MEDIAPLAYER_PLAYERRECONNECT () { $wxEVENTID_AX_MEDIAPLAYER_PLAYERRECONNECT } sub EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE } sub EVENTID_AX_MEDIAPLAYER_DURATIONUNITCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_DURATIONUNITCHANGE } sub EVENTID_AX_MEDIAPLAYER_KEYDOWN () { $wxEVENTID_AX_MEDIAPLAYER_KEYDOWN } sub EVENTID_AX_MEDIAPLAYER_KEYPRESS () { $wxEVENTID_AX_MEDIAPLAYER_KEYPRESS } sub EVENTID_AX_MEDIAPLAYER_OPENPLAYLISTSWITCH () { $wxEVENTID_AX_MEDIAPLAYER_OPENPLAYLISTSWITCH } sub EVENTID_AX_MEDIAPLAYER_DEVICEDISCONNECT () { $wxEVENTID_AX_MEDIAPLAYER_DEVICEDISCONNECT } sub EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED () { $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED } sub EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED () { $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED } sub EVENTID_AX_MEDIAPLAYER_MEDIAERROR () { $wxEVENTID_AX_MEDIAPLAYER_MEDIAERROR } sub EVENTID_AX_MEDIAPLAYER_WARNING () { $wxEVENTID_AX_MEDIAPLAYER_WARNING } sub EVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE } sub EVENTID_AX_MEDIAPLAYER_MARKERHIT () { $wxEVENTID_AX_MEDIAPLAYER_MARKERHIT } sub EVENTID_AX_MEDIAPLAYER_SWITCHEDTOCONTROL () { $wxEVENTID_AX_MEDIAPLAYER_SWITCHEDTOCONTROL } sub EVENTID_AX_MEDIAPLAYER_CDROMMEDIACHANGE () { $wxEVENTID_AX_MEDIAPLAYER_CDROMMEDIACHANGE } sub EVENTID_AX_MEDIAPLAYER_CURRENTITEMCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_CURRENTITEMCHANGE } sub EVENTID_AX_MEDIAPLAYER_DEVICECONNECT () { $wxEVENTID_AX_MEDIAPLAYER_DEVICECONNECT } sub EVENTID_AX_MEDIAPLAYER_MOUSEMOVE () { $wxEVENTID_AX_MEDIAPLAYER_MOUSEMOVE } sub EVENTID_AX_MEDIAPLAYER_MEDIACHANGE () { $wxEVENTID_AX_MEDIAPLAYER_MEDIACHANGE } sub EVENTID_AX_MEDIAPLAYER_ERROR () { $wxEVENTID_AX_MEDIAPLAYER_ERROR } sub EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED () { $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED } sub EVENTID_AX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE () { $wxEVENTID_AX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE } sub EVENTID_AX_MEDIAPLAYER_PLAYLISTCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_PLAYLISTCHANGE } sub EVENTID_AX_MEDIAPLAYER_NEWSTREAM () { $wxEVENTID_AX_MEDIAPLAYER_NEWSTREAM } sub EVENTID_AX_MEDIAPLAYER_DOMAINCHANGE () { $wxEVENTID_AX_MEDIAPLAYER_DOMAINCHANGE } sub EVENTID_AX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION () { $wxEVENTID_AX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION } # Event Sub Functions sub EVT_ACTIVEX_MEDIAPLAYER_ENDOFSTREAM { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"EndOfStream",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MediaCollectionAttributeStringRemoved",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DEVICESTATUSCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DeviceStatusChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"CurrentPlaylistItemAvailable",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_BUFFERING { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"Buffering",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MediaCollectionAttributeStringChanged",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_SCRIPTCOMMAND { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"ScriptCommand",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYSTATECHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlayStateChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MediaCollectionChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"CurrentMediaItemAvailable",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_AUDIOLANGUAGECHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"AudioLanguageChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DEVICESYNCERROR { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DeviceSyncError",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_POSITIONCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PositionChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MOUSEDOWN { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MouseDown",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DOUBLECLICK { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DoubleClick",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_OPENSTATECHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"OpenStateChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"CreatePartnershipComplete",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MODECHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"ModeChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MediaCollectionAttributeStringAdded",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_KEYUP { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"KeyUp",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DISCONNECT { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"Disconnect",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MOUSEUP { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MouseUp",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_STATUSCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"StatusChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CLICK { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"Click",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DEVICESYNCSTATECHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DeviceSyncStateChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYERRECONNECT { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlayerReconnect",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlaylistCollectionChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DURATIONUNITCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DurationUnitChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_KEYDOWN { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"KeyDown",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_KEYPRESS { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"KeyPress",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_OPENPLAYLISTSWITCH { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"OpenPlaylistSwitch",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DEVICEDISCONNECT { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DeviceDisconnect",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlaylistCollectionPlaylistSetAsDeleted",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlaylistCollectionPlaylistRemoved",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MEDIAERROR { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MediaError",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_WARNING { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"Warning",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"CurrentPlaylistChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MARKERHIT { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MarkerHit",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_SWITCHEDTOCONTROL { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"SwitchedToControl",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CDROMMEDIACHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"CdromMediaChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_CURRENTITEMCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"CurrentItemChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DEVICECONNECT { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DeviceConnect",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MOUSEMOVE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MouseMove",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_MEDIACHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"MediaChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_ERROR { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"Error",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlaylistCollectionPlaylistAdded",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlayerDockedStateChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"PlaylistChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_NEWSTREAM { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"NewStream",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_DOMAINCHANGE { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"DomainChange",$_[2]) ;} sub EVT_ACTIVEX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION { &Wx::ActiveX::EVT_ACTIVEX($_[0],$_[1],"SwitchedToPlayerApplication",$_[2]) ;} # Exports & Tags { my @eventexports = qw( EVENTID_AX_MEDIAPLAYER_ENDOFSTREAM EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED EVENTID_AX_MEDIAPLAYER_DEVICESTATUSCHANGE EVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE EVENTID_AX_MEDIAPLAYER_BUFFERING EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED EVENTID_AX_MEDIAPLAYER_SCRIPTCOMMAND EVENTID_AX_MEDIAPLAYER_PLAYSTATECHANGE EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE EVENTID_AX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE EVENTID_AX_MEDIAPLAYER_AUDIOLANGUAGECHANGE EVENTID_AX_MEDIAPLAYER_DEVICESYNCERROR EVENTID_AX_MEDIAPLAYER_POSITIONCHANGE EVENTID_AX_MEDIAPLAYER_MOUSEDOWN EVENTID_AX_MEDIAPLAYER_DOUBLECLICK EVENTID_AX_MEDIAPLAYER_OPENSTATECHANGE EVENTID_AX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE EVENTID_AX_MEDIAPLAYER_MODECHANGE EVENTID_AX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED EVENTID_AX_MEDIAPLAYER_KEYUP EVENTID_AX_MEDIAPLAYER_DISCONNECT EVENTID_AX_MEDIAPLAYER_MOUSEUP EVENTID_AX_MEDIAPLAYER_STATUSCHANGE EVENTID_AX_MEDIAPLAYER_CLICK EVENTID_AX_MEDIAPLAYER_DEVICESYNCSTATECHANGE EVENTID_AX_MEDIAPLAYER_PLAYERRECONNECT EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE EVENTID_AX_MEDIAPLAYER_DURATIONUNITCHANGE EVENTID_AX_MEDIAPLAYER_KEYDOWN EVENTID_AX_MEDIAPLAYER_KEYPRESS EVENTID_AX_MEDIAPLAYER_OPENPLAYLISTSWITCH EVENTID_AX_MEDIAPLAYER_DEVICEDISCONNECT EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED EVENTID_AX_MEDIAPLAYER_MEDIAERROR EVENTID_AX_MEDIAPLAYER_WARNING EVENTID_AX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE EVENTID_AX_MEDIAPLAYER_MARKERHIT EVENTID_AX_MEDIAPLAYER_SWITCHEDTOCONTROL EVENTID_AX_MEDIAPLAYER_CDROMMEDIACHANGE EVENTID_AX_MEDIAPLAYER_CURRENTITEMCHANGE EVENTID_AX_MEDIAPLAYER_DEVICECONNECT EVENTID_AX_MEDIAPLAYER_MOUSEMOVE EVENTID_AX_MEDIAPLAYER_MEDIACHANGE EVENTID_AX_MEDIAPLAYER_ERROR EVENTID_AX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED EVENTID_AX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE EVENTID_AX_MEDIAPLAYER_PLAYLISTCHANGE EVENTID_AX_MEDIAPLAYER_NEWSTREAM EVENTID_AX_MEDIAPLAYER_DOMAINCHANGE EVENTID_AX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION EVT_ACTIVEX_MEDIAPLAYER_ENDOFSTREAM EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED EVT_ACTIVEX_MEDIAPLAYER_DEVICESTATUSCHANGE EVT_ACTIVEX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE EVT_ACTIVEX_MEDIAPLAYER_BUFFERING EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED EVT_ACTIVEX_MEDIAPLAYER_SCRIPTCOMMAND EVT_ACTIVEX_MEDIAPLAYER_PLAYSTATECHANGE EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE EVT_ACTIVEX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE EVT_ACTIVEX_MEDIAPLAYER_AUDIOLANGUAGECHANGE EVT_ACTIVEX_MEDIAPLAYER_DEVICESYNCERROR EVT_ACTIVEX_MEDIAPLAYER_POSITIONCHANGE EVT_ACTIVEX_MEDIAPLAYER_MOUSEDOWN EVT_ACTIVEX_MEDIAPLAYER_DOUBLECLICK EVT_ACTIVEX_MEDIAPLAYER_OPENSTATECHANGE EVT_ACTIVEX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE EVT_ACTIVEX_MEDIAPLAYER_MODECHANGE EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED EVT_ACTIVEX_MEDIAPLAYER_KEYUP EVT_ACTIVEX_MEDIAPLAYER_DISCONNECT EVT_ACTIVEX_MEDIAPLAYER_MOUSEUP EVT_ACTIVEX_MEDIAPLAYER_STATUSCHANGE EVT_ACTIVEX_MEDIAPLAYER_CLICK EVT_ACTIVEX_MEDIAPLAYER_DEVICESYNCSTATECHANGE EVT_ACTIVEX_MEDIAPLAYER_PLAYERRECONNECT EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE EVT_ACTIVEX_MEDIAPLAYER_DURATIONUNITCHANGE EVT_ACTIVEX_MEDIAPLAYER_KEYDOWN EVT_ACTIVEX_MEDIAPLAYER_KEYPRESS EVT_ACTIVEX_MEDIAPLAYER_OPENPLAYLISTSWITCH EVT_ACTIVEX_MEDIAPLAYER_DEVICEDISCONNECT EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED EVT_ACTIVEX_MEDIAPLAYER_MEDIAERROR EVT_ACTIVEX_MEDIAPLAYER_WARNING EVT_ACTIVEX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE EVT_ACTIVEX_MEDIAPLAYER_MARKERHIT EVT_ACTIVEX_MEDIAPLAYER_SWITCHEDTOCONTROL EVT_ACTIVEX_MEDIAPLAYER_CDROMMEDIACHANGE EVT_ACTIVEX_MEDIAPLAYER_CURRENTITEMCHANGE EVT_ACTIVEX_MEDIAPLAYER_DEVICECONNECT EVT_ACTIVEX_MEDIAPLAYER_MOUSEMOVE EVT_ACTIVEX_MEDIAPLAYER_MEDIACHANGE EVT_ACTIVEX_MEDIAPLAYER_ERROR EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED EVT_ACTIVEX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCHANGE EVT_ACTIVEX_MEDIAPLAYER_NEWSTREAM EVT_ACTIVEX_MEDIAPLAYER_DOMAINCHANGE EVT_ACTIVEX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION ); $EXPORT_TAGS{"mediaplayer"} = [] if not exists $EXPORT_TAGS{"mediaplayer"}; push @EXPORT_OK, ( @eventexports ) ; push @{ $EXPORT_TAGS{"mediaplayer"} }, ( @eventexports ); } sub new { my $class = shift; # parent must exist my $parent = shift; my $windowid = shift || -1; my $pos = shift || wxDefaultPosition; my $size = shift || wxDefaultSize; my $self = $class->SUPER::new( $parent, $PROGID, $windowid, $pos, $size, @_ ); return $self; } sub newVersion { my $class = shift; # version must exist my $version = shift; # parent must exist my $parent = shift; my $windowid = shift || -1; my $pos = shift || wxDefaultPosition; my $size = shift || wxDefaultSize; my $self = $class->SUPER::new( $parent, $PROGID . '.' . $version, $windowid, $pos, $size, @_ ); return $self; } 1; __END__ =head1 NAME Wx::ActiveX::WMPlayer - interface to WMPlayer.OCX ActiveX Control =head1 SYNOPSIS use Wx::ActiveX::WMPlayer qw( :everything ); .......... my $activex = Wx::ActiveX::WMPlayer->new( $parent ); OR my $activex = Wx::ActiveX::WMPlayer->newVersion( 1, $parent ); EVT_ACTIVEX_MEDIAPLAYER_OPENSTATECHANGE( $handler, $activex, \&on_event_openstatechange ); =head1 DESCRIPTION Interface to WMPlayer.OCX ActiveX Control =head1 METHODS =head2 new my $activex = Wx::ActiveX::WMPlayer->new( $parent, $windowid, $position, $size, $style, $name); Returns a new instance of Wx::ActiveX::WMPlayer. Only $parent is mandatory. $parent must be derived from Wx::Window (e.g. Wx::Frame, Wx::Panel etc). This constructor creates an instance using the latest version available of WMPlayer.OCX. =head2 newVersion my $activex = Wx::ActiveX::WMPlayer->newVersion( $version $parent, $windowid, $position, $size, $style, $name); Returns a new instance of Wx::ActiveX::WMPlayer. $version and $parent are mandatory. $parent must be derived from Wx::Window (e.g. Wx::Frame, Wx::Panel etc). This constructor creates an instance using the specific type library specified in $version of WMPlayer.OCX. e.g. $version = 4; will produce an instance based on the type library for WMPlayer.OCX.4 =head1 EVENTS The module provides the following exportable event subs EVT_ACTIVEX_MEDIAPLAYER_OPENSTATECHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_STATUSCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYSTATECHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_AUDIOLANGUAGECHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_ENDOFSTREAM( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_POSITIONCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MARKERHIT( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DURATIONUNITCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_SCRIPTCOMMAND( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DISCONNECT( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_BUFFERING( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_NEWSTREAM( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_ERROR( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_WARNING( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CDROMMEDIACHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MEDIACHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CURRENTMEDIAITEMAVAILABLE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CURRENTPLAYLISTCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CURRENTPLAYLISTITEMAVAILABLE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CURRENTITEMCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGADDED( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTADDED( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTREMOVED( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MODECHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MEDIAERROR( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DOMAINCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_OPENPLAYLISTSWITCH( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_SWITCHEDTOPLAYERAPPLICATION( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_SWITCHEDTOCONTROL( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYERDOCKEDSTATECHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_PLAYERRECONNECT( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CLICK( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DOUBLECLICK( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_KEYDOWN( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_KEYPRESS( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_KEYUP( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MOUSEDOWN( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MOUSEMOVE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_MOUSEUP( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DEVICECONNECT( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DEVICEDISCONNECT( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DEVICESTATUSCHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DEVICESYNCSTATECHANGE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_DEVICESYNCERROR( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); EVT_ACTIVEX_MEDIAPLAYER_CREATEPARTNERSHIPCOMPLETE( $evthandler, $activexcontrol, \&on_event_mediaplayer_sub ); =head1 ACTIVEX INFO =head2 Events OpenStateChange StatusChange PlayStateChange AudioLanguageChange EndOfStream PositionChange MarkerHit DurationUnitChange ScriptCommand Disconnect Buffering NewStream Error Warning CdromMediaChange PlaylistChange MediaChange CurrentMediaItemAvailable CurrentPlaylistChange CurrentPlaylistItemAvailable CurrentItemChange MediaCollectionChange MediaCollectionAttributeStringAdded MediaCollectionAttributeStringRemoved PlaylistCollectionChange PlaylistCollectionPlaylistAdded PlaylistCollectionPlaylistRemoved PlaylistCollectionPlaylistSetAsDeleted ModeChange MediaCollectionAttributeStringChanged MediaError DomainChange OpenPlaylistSwitch SwitchedToPlayerApplication SwitchedToControl PlayerDockedStateChange PlayerReconnect Click DoubleClick KeyDown KeyPress KeyUp MouseDown MouseMove MouseUp DeviceConnect DeviceDisconnect DeviceStatusChange DeviceSyncStateChange DeviceSyncError CreatePartnershipComplete =head2 Methods AddRef() close() GetIDsOfNames(riid , rgszNames , cNames , lcid , rgdispid) GetTypeInfo(itinfo , lcid , pptinfo) GetTypeInfoCount(pctinfo) Invoke(dispidMember , riid , lcid , wFlags , pdispparams , pvarResult , pexcepinfo , puArgErr) launchURL(bstrURL) newMedia(bstrURL) newPlaylist(bstrName , bstrURL) openPlayer(bstrURL) QueryInterface(riid , ppvObj) Release() =head2 Properties cdromCollection closedCaption controls currentMedia currentPlaylist dvd enableContextMenu enabled Error fullScreen isOnline isRemote mediaCollection network openState playerApplication playlistCollection playState settings status stretchToFit uiMode URL versionInfo windowlessVideo =head1 COPYRIGHT & LICENSE Copyright (C) 2008 Mark Dootson This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # end file #