ut_Position: Yeah, thats a known issue. For some reason I couldnt find the API to seek in Winamp at the time. It is possible though, I'll add it in a future release. I left the function there so I could add it without breaking the interface, though thats kind of against COM rules... :P. You may use IApplication::SendMsg with IPC_JUMPTOTIME (106) to do it at the moment.
IMediaItem::Enqueue: There is an API to add a returned query to Winamp, however ActiveWinamp converts queries to its own internal "MediaItem" objects. This is done for 2 reasons:
1) The query needs to be freed as it is allocated by winamp.
2) It makes playlist items, items loaded by filename, items not in the ml etc all the same, which makes using AW much nicer.
Which explains why its called 'runqueryarray', as it creates and returns an array of objects.
The "playlist" object doesnt actually keep an array of current items, it queries them from the playlist dynamically. ie, get_Item() actually creates a MediaItem from querying winamps playlist. Thus its not too logical to return a 'playlist' as a result of a query.
I could, and actually did intend, to create another type of query method on the media library, that would return a less flexible query results object. This object would however let you do things like mass updates and send it to winamp etc. I would add a function to convert it to an array of mediaitems also.
Alternatively, I could add a function on the medialibrary that lets you pass in an array of MediaItems, and it converts it to a format suitable for sending to Winamp, ML style. Or just send it to Winamp itself. I would need to see how the ML does it to see if it uses some trick to do it quicker.
I downloaded and read the doc for the fake iTunes proxy thing. You state that ActiveWinamp only supports one client, though it should support as many as you like. What makes you think it only supports one client? It only supports one server/winamp instance, if thats what you meant.
@maynardkrebs: Sorry, Im not aware of such a component. You may be able to find some component which lets you do binary access on a file and query the tag yourself, if its in a easy parsed format. Otherwise, if there is an .exe which lets you do tag operations, its possible to get the output of cmdline programs and work with that..