ブラウザのDOMに対してC++でプログラミングする場合、各エンジンには異なるインターフェイスのセットがあり、IEにはCOMベースの[MSHTML](http://msdn.microsoft.com/en-us/library/aa752279 (VS.85).aspxがあります。 )、MozillaにはXPCOMベースのGeckoDOMなどがあります。
主要なブラウザー(およびバージョン)用のアダプターを備えた一般的なAPIはありますか?
明確にするために、問題のアプリケーションはブラウザと相互作用するC ++で記述されたデスクトップアプリケーションです。現在、IEとMozillaをサポートするために別々のコードベースがあり、ロジックの重複を減らし、より少ない労力で新しいブラウザを追加できるようにしています。 。
具体的な例として、HTML要素のinnerHTMLプロパティを取得することができます。
// Firefox
nsAutoString html;
nsCOMPtr<nsIDOMNSHTMLElement> elem = do_QueryInterface(obj);
if (elem)
elem->GetInnerHTML(html);
// IE
CComBSTR html;
MSHTML::IHTMLElementPtr elem = obj;
if (elem)
elem->get_innerHTML(&html);