| Index: src/plugin/AdblockPlusDomTraverser.cpp |
| =================================================================== |
| --- a/src/plugin/AdblockPlusDomTraverser.cpp |
| +++ b/src/plugin/AdblockPlusDomTraverser.cpp |
| @@ -1,5 +1,6 @@ |
| #include "PluginStdAfx.h" |
| +#include "COM_Value.h" |
| #include "PluginClient.h" |
| #include "PluginFilter.h" |
| #include "PluginSettings.h" |
| @@ -66,11 +67,10 @@ |
| // Objects |
| else if (tag == "object") |
| { |
| - CComBSTR bstrInnerHtml; |
| - |
| - if (SUCCEEDED(pEl->get_innerHTML(&bstrInnerHtml)) && bstrInnerHtml) |
| + AdblockPlus::COM::BSTR_Argument inner_HTML; |
| + if (SUCCEEDED(pEl->get_innerHTML(&inner_HTML))) |
| { |
| - CString sObjectHtml = bstrInnerHtml; |
| + CString sObjectHtml = to_CString(inner_HTML); |
| CString src; |
| int posBegin = sObjectHtml.Find(L"VALUE=\""); |
| @@ -122,16 +122,15 @@ |
| if (SUCCEEDED(pEl->get_style(&pStyle)) && pStyle) |
| { |
| - CComBSTR bstrDisplay; |
| - |
| - if (SUCCEEDED(pStyle->get_display(&bstrDisplay)) && bstrDisplay && CString(bstrDisplay) == L"none") |
| + AdblockPlus::COM::BSTR_Argument display; |
| + // Explicit call to conversion operator compensates for deficiencies in VS2012 |
| + if (SUCCEEDED(pStyle->get_display(&display)) && display.operator std::wstring() == L"none") |
| { |
| return; |
| } |
| - static const CComBSTR sbstrNone(L"none"); |
| - |
| - if (SUCCEEDED(pStyle->put_display(sbstrNone))) |
| + static const AdblockPlus::COM::BSTR_Argument none(std::wstring(L"none")); |
| + if (SUCCEEDED(pStyle->put_display(none))) |
| { |
| DEBUG_HIDE_EL(indent + L"HideEl::Hiding " + type + L" url:" + url) |