| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2016 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 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 | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
| 13 * | 13 * |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 CComPtr<Source> producer; | 57 CComPtr<Source> producer; |
| 58 public: | 58 public: |
| 59 /** | 59 /** |
| 60 * \throw std::runtime_error | 60 * \throw std::runtime_error |
| 61 * If connection is not established | 61 * If connection is not established |
| 62 * | 62 * |
| 63 * \par Precondition | 63 * \par Precondition |
| 64 * - consumer is not nullptr (not checked) | 64 * - consumer is not nullptr (not checked) |
| 65 * - producer is not nullptr (not checked) | 65 * - producer is not nullptr (not checked) |
| 66 */ | 66 */ |
| 67 AtlEventRegistration(Sink* consumer, Source* producer) | 67 AtlEventRegistration(Sink* consumer, Source* producer) |
|
sergei
2016/02/04 13:45:50
Just noticed, it would be better to call them as l
Eric
2016/02/04 17:00:28
Neither pair of words "source/sink" and "listener/
sergei
2016/02/04 19:41:57
I think we should not write the code how it would
Eric
2016/02/04 20:13:25
We've entered bikeshedding territory here. You hav
| |
| 68 : consumer(consumer), producer(producer) | 68 : consumer(consumer), producer(producer) |
| 69 { | 69 { |
| 70 auto hr = consumer->DispEventAdvise(producer); | 70 auto hr = consumer->DispEventAdvise(producer); |
| 71 if (FAILED(hr)) | 71 if (FAILED(hr)) |
| 72 { | 72 { |
| 73 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_SET_SITE, PLUGIN_ERROR_SET_SITE_ADVICE, " AtlEventRegistrationImpl::<constructor> - Advise"); | 73 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_SET_SITE, PLUGIN_ERROR_SET_SITE_ADVICE, " AtlEventRegistrationImpl::<constructor> - Advise"); |
| 74 throw std::runtime_error("DispEventAdvise() failed"); | 74 throw std::runtime_error("DispEventAdvise() failed"); |
| 75 } | 75 } |
| 76 } | 76 } |
| 77 | 77 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 123 return false; | 123 return false; |
| 124 } | 124 } |
| 125 return true; | 125 return true; |
| 126 } | 126 } |
| 127 | 127 |
| 128 void Stop() // noexcept | 128 void Stop() // noexcept |
| 129 { | 129 { |
| 130 impl.reset(); | 130 impl.reset(); |
| 131 } | 131 } |
| 132 }; | 132 }; |
| 133 | |
| 134 class ATL_NO_VTABLE CPluginClass : | 133 class ATL_NO_VTABLE CPluginClass : |
| 135 public ATL::CComObjectRootEx<ATL::CComMultiThreadModel>, | 134 public ATL::CComObjectRootEx<ATL::CComMultiThreadModel>, |
| 136 public ATL::CComCoClass<CPluginClass, &CLSID_PluginClass>, | 135 public ATL::CComCoClass<CPluginClass, &CLSID_PluginClass>, |
| 137 public ATL::IObjectWithSiteImpl<CPluginClass>, | 136 public ATL::IObjectWithSiteImpl<CPluginClass>, |
| 138 public IOleCommandTarget, | 137 public IOleCommandTarget, |
| 139 public ATL::IDispEventImpl<1, CPluginClass, &DIID_DWebBrowserEvents2, &LIBID_S HDocVw, 1, 1> | 138 public ATL::IDispEventImpl<1, CPluginClass, &DIID_DWebBrowserEvents2, &LIBID_S HDocVw, 1, 1> |
| 140 { | 139 { |
| 141 | 140 |
| 142 friend class CPluginTab; | 141 friend class CPluginTab; |
| 143 | 142 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 168 ~CPluginClass(); | 167 ~CPluginClass(); |
| 169 | 168 |
| 170 // IObjectWithSite | 169 // IObjectWithSite |
| 171 STDMETHOD(SetSite)(IUnknown *pUnkSite); | 170 STDMETHOD(SetSite)(IUnknown *pUnkSite); |
| 172 | 171 |
| 173 // IOleCommandTarget | 172 // IOleCommandTarget |
| 174 STDMETHOD(QueryStatus)(const GUID* pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT* pCmdText); | 173 STDMETHOD(QueryStatus)(const GUID* pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT* pCmdText); |
| 175 STDMETHOD(Exec)(const GUID*, DWORD nCmdID, DWORD, VARIANTARG*, VARIANTARG* pva Out); | 174 STDMETHOD(Exec)(const GUID*, DWORD nCmdID, DWORD, VARIANTARG*, VARIANTARG* pva Out); |
| 176 | 175 |
| 177 | 176 |
| 178 static CPluginTab* GetTab(DWORD dwThreadId); | 177 static CPluginTab* GetTabForCurrentThread(); |
| 179 CPluginTab* GetTab(); | 178 CPluginTab* GetTab(); |
| 180 | 179 |
| 181 void UpdateStatusBar(); | 180 void UpdateStatusBar(); |
| 182 | 181 |
| 183 private: | 182 private: |
| 184 | 183 |
| 185 bool SetMenuBar(HMENU hMenu, const std::wstring& url); | 184 bool SetMenuBar(HMENU hMenu, const std::wstring& url); |
| 186 HMENU CreatePluginMenu(const std::wstring& url); | 185 HMENU CreatePluginMenu(const std::wstring& url); |
| 187 | 186 |
| 188 void DisplayPluginMenu(HMENU hMenu, int nToolbarCmdID, POINT pt, UINT nMenuFla gs); | 187 void DisplayPluginMenu(HMENU hMenu, int nToolbarCmdID, POINT pt, UINT nMenuFla gs); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 261 static DWORD s_hIconTypes[ICON_MAX]; | 260 static DWORD s_hIconTypes[ICON_MAX]; |
| 262 | 261 |
| 263 static HICON GetIcon(int type); | 262 static HICON GetIcon(int type); |
| 264 | 263 |
| 265 // Main thread | 264 // Main thread |
| 266 static HANDLE s_hMainThread; | 265 static HANDLE s_hMainThread; |
| 267 static bool s_isMainThreadDone; | 266 static bool s_isMainThreadDone; |
| 268 | 267 |
| 269 static HINSTANCE s_hUxtheme; | 268 static HINSTANCE s_hUxtheme; |
| 270 static std::set<CPluginClass*> s_instances; | 269 static std::set<CPluginClass*> s_instances; |
| 271 static std::map<DWORD,CPluginClass*> s_threadInstances; | |
| 272 static CComAutoCriticalSection s_criticalSectionLocal; | 270 static CComAutoCriticalSection s_criticalSectionLocal; |
| 273 static CComAutoCriticalSection s_criticalSectionWindow; | 271 static CComAutoCriticalSection s_criticalSectionWindow; |
| 274 | 272 |
| 275 // Async browser | 273 // Async browser |
| 276 static CComQIPtr<IWebBrowser2> s_asyncWebBrowser2; | 274 static CComQIPtr<IWebBrowser2> s_asyncWebBrowser2; |
| 277 static CComQIPtr<IWebBrowser2> GetAsyncBrowser(); | 275 static CComQIPtr<IWebBrowser2> GetAsyncBrowser(); |
| 278 }; | 276 }; |
| 279 | 277 |
| 280 OBJECT_ENTRY_AUTO(__uuidof(PluginClass), CPluginClass) | 278 OBJECT_ENTRY_AUTO(__uuidof(PluginClass), CPluginClass) |
| 281 | 279 |
| 282 | |
| 283 #endif // _PLUGIN_CLASS_H_ | 280 #endif // _PLUGIN_CLASS_H_ |
| LEFT | RIGHT |