XULRunner est un environnement d'ex�cution d'applications XUL, XUL �tant un langage de description d'interfaces graphiques. Une application XULRunner est typiquement cod�e en JavaScript. Une partie du code d'une application XULRunner peut n�anmoins �tre d�port�e dans des composants XPCOM (cod�s en C++ le plus fr�quemment). Pour mettre en �uvre un tel composant, on �crit g�n�ralement un fichier '.idl', d�crivant son API, qui sert � g�n�rer les fonctions JavaScript au travers desquelles on acc�de au composant concern�.

Pour puissants et nombreux que sont les �l�ments disponibles avec XULRunner, ils ne permettent pas � une application d�acc�der � toutes les ressources du syst�me sur lequel elle est utilis�e. Les composants XPCOM permettent de pallier � cela. Si l'on met en �uvre un tel composant, en utilisant C++, il peut s�av�rer int�ressant de coder l'int�gralit� de l'application en C++, pour �viter d'avoir � jongler entre ce dernier et JavaScript (entre autres avantages).

Il existe une abondante documentation, assortie de tutoriels et d'exemples, portant sur la manipulation des �l�ments disponibles avec XULRunner en JavaScript. A l'inverse, l'�quivalent pour C++ est an�mique, pour ne pas dire inexistant. Cela rend le d�veloppement d'une application XULRunner enti�rement en C++ tr�s compliqu�, comme j'ai pu en faire l'exp�rience. N�anmoins, malgr� les difficult�s, c'est une approche que j'ai d�finitivement adopt�e.

Pour �viter � ceux qui serait �galement int�ress� par cette approche de se heurter aux m�mes difficult�s que celles j'ai rencontr�es, j'ai, pour commencer, mis en ligne le r�sultat de mes recherches sur le sujet sous la forme, � titre d'exemple, d'une d'application. Cette application montre comment il est possible de r�agir � des �v�nements issus de l'interface XUL, de r�cup�rer des information de cette interface (contenu d'un 'textbox' p. ex.), ou de modifier cette interface (remplir une 'textbox', p. ex.) et ce, uniquement en C++.

Cette application, qui fonctionne sous GNU/Linux, MacOS et Windows, est diffus�e sous licence GNU GPL. Pour consulter les sources, ou bien les t�l�charger pour �ventuellement les compiler, �a se passe sur cette page (http://zeusw.org/blog/?article14/).