| LEFT | RIGHT |
| 1 /* | 1 /* |
| 2 * http://msdn.microsoft.com/en-us/library/bb250436.aspx | 2 * http://msdn.microsoft.com/en-us/library/bb250436.aspx |
| 3 */ | 3 */ |
| 4 | 4 |
| 5 #ifndef _PLUGIN_CLASS_H_ | 5 #ifndef _PLUGIN_CLASS_H_ |
| 6 #define _PLUGIN_CLASS_H_ | 6 #define _PLUGIN_CLASS_H_ |
| 7 | 7 |
| 8 | 8 |
| 9 #include "PluginTypedef.h" | 9 #include "PluginTypedef.h" |
| 10 #include "Plugin.h" | 10 #include "Plugin.h" |
| 11 #include "PluginTab.h" | 11 #include "PluginTab.h" |
| 12 #define _CRTDBG_MAP_ALLOC | 12 #define _CRTDBG_MAP_ALLOC |
| 13 #include <stdlib.h> | 13 #include <stdlib.h> |
| 14 #include <crtdbg.h> | 14 #include <crtdbg.h> |
| 15 #include <set> | 15 #include <set> |
| 16 | 16 |
| 17 #include "NotificationMessage.h" | 17 #include "NotificationMessage.h" |
| 18 | 18 |
| 19 #define ICON_PLUGIN_DISABLED 0 | 19 #define ICON_PLUGIN_DISABLED 0 |
| 20 #define ICON_PLUGIN_ENABLED 1 | 20 #define ICON_PLUGIN_ENABLED 1 |
| 21 #define ICON_PLUGIN_DEACTIVATED 2 | 21 #define ICON_PLUGIN_DEACTIVATED 2 |
| 22 #define ICON_MAX 3 | 22 #define ICON_MAX 3 |
| 23 | 23 |
| 24 #define WM_LAUNCH_INFO (WM_APP + 10) | 24 #define WM_LAUNCH_INFO (WM_APP + 10) |
| 25 #define WM_WHITELIST_DOMAIN (WM_LAUNCH_INFO + 1) | |
| 26 | 25 |
| 27 class CPluginMimeFilterClient; | 26 class CPluginMimeFilterClient; |
| 28 | 27 |
| 29 | 28 |
| 30 class ATL_NO_VTABLE CPluginClass : | 29 class ATL_NO_VTABLE CPluginClass : |
| 31 public CComObjectRootEx<CComMultiThreadModel>, | 30 public CComObjectRootEx<CComMultiThreadModel>, |
| 32 public CComCoClass<CPluginClass, &CLSID_PluginClass>, | 31 public CComCoClass<CPluginClass, &CLSID_PluginClass>, |
| 33 public IObjectWithSiteImpl<CPluginClass>, | 32 public IObjectWithSiteImpl<CPluginClass>, |
| 34 public IDispatchImpl<IIEPlugin, &IID_IIEPlugin, &LIBID_PluginLib>, | 33 public IDispatchImpl<IIEPlugin, &IID_IIEPlugin, &LIBID_PluginLib>, |
| 35 public IOleCommandTarget | 34 public IOleCommandTarget |
| 36 { | 35 { |
| 37 | 36 |
| 38 friend class CPluginTab; | 37 friend class CPluginTab; |
| 39 | 38 |
| 40 private: | 39 private: |
| 41 | 40 |
| 42 CPluginTab* m_tab; | 41 CPluginTab* m_tab; |
| 43 | 42 |
| 44 public: | 43 public: |
| 45 | 44 |
| 46 DECLARE_REGISTRY_RESOURCEID(IDR_PLUGIN_CLASS) | 45 DECLARE_REGISTRY_RESOURCEID(IDR_PLUGIN_CLASS) |
| 47 | 46 |
| 48 DECLARE_PROTECT_FINAL_CONSTRUCT() | 47 DECLARE_PROTECT_FINAL_CONSTRUCT() |
| 49 | 48 |
| 50 BEGIN_COM_MAP(CPluginClass) | 49 BEGIN_COM_MAP(CPluginClass) |
| 51 COM_INTERFACE_ENTRY(IIEPlugin) | 50 COM_INTERFACE_ENTRY(IIEPlugin) |
| 52 COM_INTERFACE_ENTRY(IDispatch) | 51 COM_INTERFACE_ENTRY(IDispatch) |
| 53 COM_INTERFACE_ENTRY_IMPL(IObjectWithSite) | 52 COM_INTERFACE_ENTRY(IObjectWithSite) |
| 54 COM_INTERFACE_ENTRY(IOleCommandTarget) | 53 COM_INTERFACE_ENTRY(IOleCommandTarget) |
| 55 END_COM_MAP() | 54 END_COM_MAP() |
| 56 | 55 |
| 57 CPluginClass(); | 56 CPluginClass(); |
| 58 ~CPluginClass(); | 57 ~CPluginClass(); |
| 59 | 58 |
| 60 HRESULT FinalConstruct(); | 59 HRESULT FinalConstruct(); |
| 61 void FinalRelease(); | 60 void FinalRelease(); |
| 62 | 61 |
| 63 // IObjectWithSite | 62 // IObjectWithSite |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 // Main thread | 154 // Main thread |
| 156 static HANDLE s_hMainThread; | 155 static HANDLE s_hMainThread; |
| 157 static bool s_isMainThreadDone; | 156 static bool s_isMainThreadDone; |
| 158 | 157 |
| 159 static HANDLE GetMainThreadHandle(); | 158 static HANDLE GetMainThreadHandle(); |
| 160 static bool IsMainThreadDone(HANDLE mainThread); | 159 static bool IsMainThreadDone(HANDLE mainThread); |
| 161 | 160 |
| 162 static HINSTANCE s_hUxtheme; | 161 static HINSTANCE s_hUxtheme; |
| 163 static std::set<CPluginClass*> s_instances; | 162 static std::set<CPluginClass*> s_instances; |
| 164 static std::map<DWORD,CPluginClass*> s_threadInstances; | 163 static std::map<DWORD,CPluginClass*> s_threadInstances; |
| 165 static std::map<UINT, CString> s_menuDomains; | |
| 166 static CComAutoCriticalSection s_criticalSectionLocal; | 164 static CComAutoCriticalSection s_criticalSectionLocal; |
| 167 static CComAutoCriticalSection s_criticalSectionBrowser; | 165 static CComAutoCriticalSection s_criticalSectionBrowser; |
| 168 static CComAutoCriticalSection s_criticalSectionWindow; | 166 static CComAutoCriticalSection s_criticalSectionWindow; |
| 169 static CComAutoCriticalSection s_criticalSectionWhiteList; | |
| 170 | 167 |
| 171 // Async browser | 168 // Async browser |
| 172 static CComQIPtr<IWebBrowser2> s_asyncWebBrowser2; | 169 static CComQIPtr<IWebBrowser2> s_asyncWebBrowser2; |
| 173 static CComQIPtr<IWebBrowser2> GetAsyncBrowser(); | 170 static CComQIPtr<IWebBrowser2> GetAsyncBrowser(); |
| 174 }; | 171 }; |
| 175 | 172 |
| 176 OBJECT_ENTRY_AUTO(__uuidof(PluginClass), CPluginClass) | 173 OBJECT_ENTRY_AUTO(__uuidof(PluginClass), CPluginClass) |
| 177 | 174 |
| 178 | 175 |
| 179 #endif // _PLUGIN_CLASS_H_ | 176 #endif // _PLUGIN_CLASS_H_ |
| LEFT | RIGHT |