| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 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 */ | |
| 1 #ifndef PLUGIN_USER_SETTINGS_H | 17 #ifndef PLUGIN_USER_SETTINGS_H |
| 2 #define PLUGIN_USER_SETTINGS_H | 18 #define PLUGIN_USER_SETTINGS_H |
| 3 #pragma once | |
|
Oleksandr
2014/08/17 22:52:01
Do we really need both #pragma once and #ifndef ab
Eric
2014/09/29 18:45:41
It's not needed for correctness; the #ifndef guard
Oleksandr
2014/10/02 20:36:53
I have never seen both versions used simultaniousl
Eric
2014/10/14 22:23:50
All four of the ATL library use this pattern, for
| |
| 4 | 19 |
| 5 #include <OAIdl.h> | 20 #include <OAIdl.h> |
| 6 | 21 |
| 7 /* | 22 /* |
| 8 Class is used to call methods Get,Set,Update of Settings object from JavaScript. | 23 Class is used to call methods Get,Set,Update of Settings object from JavaScript. |
| 9 When url is local page "user_mysettings.html", after document is loaded, C++ cre ates Settings object in page's JavaScript. | 24 When url is local page "user_mysettings.html", after document is loaded, C++ cre ates Settings object in page's JavaScript. |
| 10 Then var value = window.Settings.Get(par), window.Settings.Set(par, value), wind ow.Settings.Update() can be called from JavaScript | 25 Then var value = window.Settings.Get(par), window.Settings.Set(par, value), wind ow.Settings.Update() can be called from JavaScript |
| 11 */ | 26 */ |
| 12 class CPluginUserSettings: public IDispatch | 27 class CPluginUserSettings: public IDispatch |
| 13 { | 28 { |
| 14 public: | 29 public: |
| 15 CPluginUserSettings() // = default; | |
| 16 { | |
| 17 } | |
| 18 | |
| 19 // IUnknown | 30 // IUnknown |
| 20 STDMETHOD(QueryInterface)(REFIID riid, void **ppvObj); | 31 STDMETHOD(QueryInterface)(REFIID riid, void **ppvObj); |
| 21 ULONG __stdcall AddRef(); | 32 ULONG __stdcall AddRef(); |
| 22 ULONG __stdcall Release(); | 33 ULONG __stdcall Release(); |
| 23 | 34 |
| 24 // IDispatch | 35 // IDispatch |
| 25 STDMETHOD(GetTypeInfoCount)(UINT* pctinfo); | 36 STDMETHOD(GetTypeInfoCount)(UINT* pctinfo); |
| 26 STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo** pptinfo); | 37 STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo** pptinfo); |
| 27 STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID l cid, DISPID* rgdispid); | 38 STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID l cid, DISPID* rgdispid); |
| 28 STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DI SPPARAMS* pDispparams, VARIANT* pVarResult, | 39 STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DI SPPARAMS* pDispparams, VARIANT* pVarResult, |
| 29 EXCEPINFO* pExcepinfo, UINT* pArgErr); | 40 EXCEPINFO* pExcepinfo, UINT* pArgErr); |
| 30 }; | 41 }; |
| 31 | 42 |
| 32 #endif | 43 #endif |
| LEFT | RIGHT |