Le plus gros problème que nous avons avec une base de code et notre propre mappage entre les fonctions IE et FF est que les interfaces diffèrent légèrement ou sont buggées de sorte que vous ne pouvez pas utiliser une approche cohérente à travers les navigateurs.
Vous aurez soit une bibliothèque d'assistance plus lourde pour rendre les 2 interfaces compatibles avec votre utilisation, soit réécrire certaines des solutions de contournement. Comme nous avions d'abord un IE BHO, nous avons des choses comme la suivante pour mapper les choses IE à FF, mais selon ce que vous utilisez, vous pouvez trouver que vous avez besoin de mappages des deux les plus détaillées au moins. Voici quelques idées pour vous
// Normally if you where just doing IE or FF you would use one technique for getting a different interface
// as we are mixing the code, we have macros which allows you to use a combination of code
// eg. for IE CComQIPtr<IHTMLDocument2> doc(disp);
// eg. for FF nsCOMPtr<IHTMLDocument2> doc(do_QueryInterface(disp));
// combined in code will be CComQIPtr<IHTMLDocument2> doc(do_QueryInterface(disp));
// FF strips off the QI, IE strips out the do_QueryInterface.
#ifdef MOZILLA
#define CComPtr nsCOMPtr
#define CComQIPtr nsCOMPtr
#define IWebBrowser2 nsIDOMWindow
#define IHTMLWindow2 nsIBrowserDOMWindow
#define IHTMLDocument2 nsIDOMHTMLDocument
#define get_Document GetDocument
#define get_type GetType
#else
// Pointer handling for nsCOMPtr vs CComPtr/CComQIPtr
#define getter_AddRefs(x) (&(x).p)
#define do_QueryInterface(x) (x)
#endif
Bonne chance!
Wiki comment écrire BHO pour IE http://petesearch.com/wiki/. Bonne chance. –