// Fonction qui récupère l'URL courante d'Internet Explorer
char * GetCurrentURLFromIE(void)
{
HWND hWnd,hWnd2; // Handles de fenêtre
DWORD size; // Taille URL
char * pURL=NULL; // Buffer de sortie
// Récupération du handle de la fenêtre de IE
hWnd = FindWindow("IEFrame",NULL);
if (hWnd)
{
// Parcours de la hiérarchie de classes (merci Spy++) pour trouver l'Edit contenant l'URL
hWnd=FindWindowEx(hWnd,0,"WorkerW",NULL); // Fenêtre de travail
hWnd=FindWindowEx(hWnd,0,"ReBarWindow32",NULL); // Toolbar
hWnd2=FindWindowEx(hWnd,0,"Address Band Root",NULL); // Bandeau, IE 7
if (hWnd2)
hWnd=hWnd2;
hWnd=FindWindowEx(hWnd,0,"ComboBoxEx32",NULL); // Combo Box Entendue
hWnd=FindWindowEx(hWnd,0,"ComboBox",NULL); // Combo Box
hWnd=FindWindowEx(hWnd,0,"Edit",NULL); // Edit
// Récupération de la taille de la chaine et allocation du buffer en conséquence
size=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0);
pURL=(char *)malloc(size);
// Get de l'URL
SendMessage(hWnd,WM_GETTEXT,size,(DWORD)pURL);
}
return pURL;
}