[python-win32] Application Error driving iTunes with COM

Simon Brunning simon.brunning at gmail.com
Tue Dec 7 16:33:24 CET 2004


I'm getting an odd error while playing with iTunes. Here's a
simplified version of the code:

--
import win32com.client

def main():
    for track_index, track in tracks():
        print track_index, repr(track.Artist), repr(track.Album),
repr(track.Name), track.PlayedCount,
        print track.PlayedDate

def tracks(playlist=None):
    iTunes = win32com.client.gencache.EnsureDispatch("iTunes.Application")
    
    if playlist: library = iTunes.LibrarySource.Playlists.ItemByName(playlist)
    else: library = iTunes.LibraryPlaylist
    
    track_collection = library.Tracks
    track_count = track_collection.Count
    for track_index in range(1, track_count+1):
        yield track_index, track_collection.Item(track_index)
       
if __name__ == '__main__':
    main()
--

This fails when printing the 'PlayedDate' of a track that has never
been played. Which is fair enough. up to a point, but I don't get an
exception as I'd expect. (Well, *half* expect - a None would ne nice!)
Instead, it just falls over with the following dialog:

---------------------------
python.exe - Application Error
---------------------------
The instruction at "0x1e606cf2" referenced memory at "0x00000000". The
memory could not be "read".


Click on OK to terminate the program
Click on CANCEL to debug the program
---------------------------
OK   Cancel   
---------------------------

Debugging tells me:

---------------------------
Microsoft Visual C++
---------------------------
Unhandled exception in python.exe (PYWINTYPES23.DLL): 0xC0000005:
Access Violation.
---------------------------
OK   
---------------------------

Any ideas?

-- 
Cheers,
Simon B,
simon at brunningonline.net,
http://www.brunningonline.net/simon/blog/


More information about the Python-win32 mailing list