Re: Afficher le morceau en cours de lecture dans MSN

Posté par ramses le 3/3/2009 23:37:50
Bonsoir,

Je n'ai pas trouvé la solution en Windev mais voici le code c++ pour mettre à jour les infos MSN à partir du morceau en cours de lecture

#define UNICODE

#include <windows.h>
#include <stdio.h>

#include "config2.h"

#define MSNMusicString L"\\0Music\\0%d\\0%s\\0%s\\0%s\\0%s\\0%s\\0"
#define MSNOfficeString L"\\0Office\\0%d\\0\\0\\0\\0\\0%s\\0"
#define MSNFormat L"{0} - {1} - {2}"

COPYDATASTRUCT msndata; 

void _stdcall pMsnUpdate(WCHAR* pArtiste, WCHAR* pTitre, WCHAR* pAlbum)
/*
<PROTOTYPE>
pMsnUpdate
<BACKUS-NAUR>
<Résultat> = pMsnUpdate(<Artiste>,<Titre>,<Album>)
<COMMENT>
Update les données de MSN
<DEBUG>
Artiste est une chaine UNICODE="Depeche Mode"
Titre est une chaine UNICODE="Everything Counts"
Album est une chaine UNICODE="101"
_T("pMsnUpdate="+API(gsDllPath, "pMsnUpdate",Artiste,Titre,Album))
*/
{
WCHAR buffer[500]; 
HWND msnui = NULL; 
bool bshow = 1; 

wsprintfW(buffer, MSNMusicString, bshow, MSNFormat, pTitre, pArtiste, pAlbum, L"WMContentID"); 

msndata.dwData=0x547;
msndata.cbData = (lstrlen(buffer)*2)+2; 
msndata.lpData = &buffer; 

msnui = (HWND)FindWindowEx(NULL, NULL, (LPCWSTR)L"MsnMsgrUIManager", NULL);

if (msnui) SendMessage(msnui, WM_COPYDATA, (WPARAM)0, (LPARAM)&msndata); 
}

void __stdcall pMsnReset()
/*
<PROTOTYPE>
pMsnReset
<BACKUS-NAUR>
<Résultat> = pMsnReset()
<COMMENT>
Remet à blanc les données de MSN
<DEBUG>
_T("pMsnReset="+API(gsDllPath, "pMsnReset")
*/
{
WCHAR buffer[500]; 
HWND msnui = NULL; 
bool bshow = 0; 

wsprintfW(buffer, MSNOfficeString, bshow, MSNFormat, L"WMContentID"); 

msndata.dwData=0x547;
msndata.cbData = (lstrlen(buffer)*2)+2; 
msndata.lpData = &buffer; 

msnui = (HWND)FindWindowEx(NULL, NULL, (LPCWSTR)L"MsnMsgrUIManager", NULL);

if (msnui) SendMessage(msnui, WM_COPYDATA, (WPARAM)0, (LPARAM)&msndata); 
}


Bon Dev

Philippe

Mp3Tools

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=19&topic_id=6130&post_id=24546