Newsgroup: it.comp.lang.delphi
Titolo: Winamp.... aiutoooooo !

Non riesco a capire.
Metto un bottone su una form, uso questo codice
Const IPC_PLAYFILE = 100;
procedure TForm1.Button1Click(Sender: TObject);
Var hWnd_WinAmp : hWnd;
var mp3toadd:string;
var x:integer;
begin
hwnd_winamp := FindWindow('Winamp v1.x', nil);
mp3toadd:='c:\song.mp3'+chr(0);
for x:=1 to Length(MP3ToAdd) do
sendMessage(hwnd_winamp,wm_user,ord(mp3toadd[x]),IPC_PLAYFILE);
end;
Serve per aggiungere la canzone c:\song.mp3 alla playlist del winamp.
Clicco una volta, tutto ok, la canzone e' aggiunta alla playlist.
clicco due volte, stop, il winamp si pianta !!! errore nell'applicazione.
Cosa devo fare ???
Grazie !
Paolo Zavarise
paoz...@tin.it

end;
ho appena fatto un Copia/Incolla del codice e funziona perfettamente, anche
se premo + volte il bottone.
Boh?
--
- Carlo -
BSSoftware Tips Mailing-List Support


Ah gia'... scusate...
si pianta solo a partire dalla versione 2.6 del winamp.
Con le versioni precedenti funziona tutto.
Scommetto che utilizzi una versione precedente...
Non mi risulta abbiano cambiato le chiamate...
(guardato sul sito della nullsoft)
Ripeto...
Aiuto !!! :)
Ciao
Paolo Zavarise
paoz...@tin.it

 Grazie !
Ciao! Hai una versione VECCHIA del sistema di controllo winamp !!
Ora č molto piů potente!!! Ti consiglio di guardare la sezione
Developers/Plugins di 
www.winamp.com
Intanto guarda qui : 
http://www.winamp.com/nsdn/plugindev/speaking.jhtml
Ciao! Davide DG


Ehi !
Che dici ?
Non e' cambiato nulla nella struttura dell'interfaccia...
sono state aggiunte solo piu' opzioni...
Dovrebbe funzionare anche cosi' !
Ciao
Paolo Zavarise


Em ... a me non pare ... ricontrolla meglio!! IPC_PLAY... con WM_USER č
diverso: č un comando istantaneo
per iniziare a suonare... non per addare un file.
Comunque ho preparato un esempio :
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
Procedure AddMp3 ( WinampHandle : hwnd;  MP3 : string);
Var CDS : CopyDataStruct;
       P : PChar;
Begin
 GetMem  ( P, length (mp3)+1);
 StrPCopy ( P, mp3 );
   CDS.dwData := 100;  // id  per aggiungere 1 file
   CDS.cbData  := length(mp3)+1;
   CDS.lpData :=  P;
   SendMessage ( WinampHandle, WM_COPYDATA, 0 , integer (@cds) );
 FreeMem (P);
End;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
Procedure StartWinamp ( WinampHandle : HWnd);
Const IPC_START = 40045;
Begin
  PostMessage (WinampHandle, wm_command, IPC_START, 0);
End;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
Procedure TForm1.Button2Click(Sender: TObject);
Begin
 AddMP3 (FindWindow ('Winamp v1.x',nil), 'D:\Musica\Alanis\Jagged Little
Pill\03 Perfect.mp3');
 StartWinamp (FindWindow ('Winamp v1.x',nil));
End;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
Magari non č molto elegante il passaggio per il pchar ... ma sono tornato a
casa da poco, dopo un megacompitazzo
di fisica 1 !!! E non ho ancora mangiato !!! GNAM!!!  :-GNAM)
Spero di averti aiutato!!
 Ci si sente. CIAO!!   Davide DG.


FANTASTICO, sembra funzionare, GRAZIE !!!
Ciao
Paolo Zavarise
paoz...@tin.it