| OLD | NEW | 
| (Empty) |  | 
 |   1 /* | 
 |   2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
 |   3  * Copyright (C) 2006-2015 Eyeo GmbH | 
 |   4  * | 
 |   5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |   6  * it under the terms of the GNU General Public License version 3 as | 
 |   7  * published by the Free Software Foundation. | 
 |   8  * | 
 |   9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  12  * GNU General Public License for more details. | 
 |  13  * | 
 |  14  * You should have received a copy of the GNU General Public License | 
 |  15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |  16  */ | 
 |  17  | 
 |  18 #include "MsHTMLUtils.h" | 
 |  19  | 
 |  20 GetHtmlElementAttributeResult GetHtmlElementAttribute(IHTMLElement& htmlElement, | 
 |  21   const ATL::CComBSTR& attributeName) | 
 |  22 { | 
 |  23   GetHtmlElementAttributeResult retValue; | 
 |  24   ATL::CComVariant vAttr; | 
 |  25   ATL::CComPtr<IHTMLElement4> htmlElement4; | 
 |  26   if (FAILED(htmlElement.QueryInterface(&htmlElement4)) || !htmlElement4) | 
 |  27   { | 
 |  28     return retValue; | 
 |  29   } | 
 |  30   ATL::CComPtr<IHTMLDOMAttribute> attributeNode; | 
 |  31   if (FAILED(htmlElement4->getAttributeNode(attributeName, &attributeNode)) || !
    attributeNode) | 
 |  32   { | 
 |  33     return retValue; | 
 |  34   } | 
 |  35   // we set that attribute found but it's not necessary that we can retrieve its
     value | 
 |  36   retValue.isAttributeFound = true; | 
 |  37   if (FAILED(attributeNode->get_nodeValue(&vAttr))) | 
 |  38   { | 
 |  39     return retValue; | 
 |  40   } | 
 |  41   if (vAttr.vt == VT_BSTR && vAttr.bstrVal) | 
 |  42   { | 
 |  43     retValue.attributeValue = vAttr.bstrVal; | 
 |  44   } | 
 |  45   else if (vAttr.vt == VT_I4) | 
 |  46   { | 
 |  47     retValue.attributeValue = std::to_wstring(vAttr.iVal); | 
 |  48   } | 
 |  49   return retValue; | 
 |  50 } | 
| OLD | NEW |