OLD | NEW |
1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
2 | 2 |
3 #include "Plugin.h" | 3 #include "Plugin.h" |
4 #if (defined PRODUCT_SIMPLEADBLOCK) | 4 #if (defined PRODUCT_SIMPLEADBLOCK) |
5 #include "../AdBlocker/AdBlocker_i.c" | 5 #include "../AdBlocker/AdBlocker_i.c" |
6 #endif | 6 #endif |
7 | 7 |
8 #include "PluginClass.h" | 8 #include "PluginClass.h" |
9 #include "PluginClient.h" | 9 #include "PluginClient.h" |
10 #include "PluginSystem.h" | 10 #include "PluginSystem.h" |
11 #include "PluginSettings.h" | 11 #include "PluginSettings.h" |
12 #include "PluginDictionary.h" | 12 #include "PluginDictionary.h" |
13 #include "PluginMimeFilterClient.h" | 13 #include "PluginMimeFilterClient.h" |
14 #include "Msiquery.h" | 14 #include "Msiquery.h" |
15 | 15 |
16 #ifdef SUPPORT_FILTER | 16 #ifdef SUPPORT_FILTER |
17 #include "PluginFilter.h" | 17 #include "PluginFilter.h" |
18 #endif | 18 #endif |
19 #ifdef SUPPORT_CONFIG | 19 #ifdef SUPPORT_CONFIG |
20 #include "PluginConfig.h" | 20 #include "PluginConfig.h" |
21 #endif | 21 #endif |
22 | 22 |
23 | 23 |
24 CComModule _Module; | 24 CComModule _Module; |
25 | 25 |
26 BEGIN_OBJECT_MAP(ObjectMap) | 26 BEGIN_OBJECT_MAP(ObjectMap) |
27 OBJECT_ENTRY(CLSID_PluginClass, CPluginClass) | 27 OBJECT_ENTRY(CLSID_PluginClass, CPluginClass) |
28 END_OBJECT_MAP() | 28 END_OBJECT_MAP() |
29 | 29 |
30 | 30 //Dll Entry Point |
31 class CPluginApp : public CWinApp | 31 BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID reserved) |
32 { | 32 { |
33 | 33 |
34 public: | 34 switch( fdwReason ) |
| 35 { |
| 36 case DLL_PROCESS_ATTACH: |
| 37 » » » TCHAR szFilename[MAX_PATH]; |
| 38 » » » GetModuleFileName(NULL, szFilename, MAX_PATH); |
| 39 » » » _tcslwr_s(szFilename); |
35 | 40 |
36 » CPluginApp(); | 41 » » » if (_tcsstr(szFilename, _T("explorer.exe"))) |
37 » ~CPluginApp(); | 42 » » » { |
| 43 » » » » return FALSE; |
| 44 » » » } |
38 | 45 |
39 » virtual BOOL InitInstance(); | 46 » » » _Module.Init(ObjectMap, _Module.GetModuleInstance(), &LI
BID_PluginLib); |
| 47 break; |
40 | 48 |
41 » DECLARE_MESSAGE_MAP() | 49 case DLL_THREAD_ATTACH: |
42 }; | 50 // thread-specific initialization. |
| 51 break; |
43 | 52 |
44 BEGIN_MESSAGE_MAP(CPluginApp, CWinApp)» | 53 case DLL_THREAD_DETACH: |
45 END_MESSAGE_MAP() | 54 // thread-specific cleanup. |
| 55 break; |
46 | 56 |
47 | 57 case DLL_PROCESS_DETACH: |
48 | 58 // any necessary cleanup. |
49 CPluginApp theApp; | 59 break; |
50 | 60 } |
51 CPluginApp::CPluginApp() | |
52 { | |
53 » //Use next two lines to check for memory leaks | |
54 //» _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); | |
55 //» _CrtDumpMemoryLeaks(); | |
56 } | |
57 | |
58 | |
59 CPluginApp::~CPluginApp() | |
60 { | |
61 | |
62 } | |
63 BOOL CPluginApp::InitInstance() | |
64 { | |
65 » TCHAR szFilename[MAX_PATH]; | |
66 » GetModuleFileName(NULL, szFilename, MAX_PATH); | |
67 » _tcslwr_s(szFilename); | |
68 | |
69 » if (_tcsstr(szFilename, _T("explorer.exe"))) | |
70 » { | |
71 » » return FALSE; | |
72 » } | |
73 | |
74 _Module.Init(ObjectMap, AfxGetInstanceHandle(), &LIBID_PluginLib); | |
75 | |
76 | |
77 » CWinApp::InitInstance(); | |
78 | 61 |
79 return TRUE; | 62 return TRUE; |
80 } | 63 } |
81 | 64 |
82 | 65 |
83 STDAPI DllCanUnloadNow(void) | 66 STDAPI DllCanUnloadNow(void) |
84 { | 67 { |
85 LONG count = _Module.GetLockCount(); | 68 LONG count = _Module.GetLockCount(); |
86 if (_Module.GetLockCount() == 0) | 69 if (_Module.GetLockCount() == 0) |
87 { | 70 { |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 #ifdef SUPPORT_CONFIG | 153 #ifdef SUPPORT_CONFIG |
171 DEBUG_GENERAL("*** Generating config file") | 154 DEBUG_GENERAL("*** Generating config file") |
172 CPluginConfig* config = CPluginConfig::GetInstance(); | 155 CPluginConfig* config = CPluginConfig::GetInstance(); |
173 config->Create(true); | 156 config->Create(true); |
174 #endif | 157 #endif |
175 | 158 |
176 HKEY hKey = NULL; | 159 HKEY hKey = NULL; |
177 DWORD dwDisposition = 0; | 160 DWORD dwDisposition = 0; |
178 | 161 |
179 DWORD dwResult = NULL; | 162 DWORD dwResult = NULL; |
180 | 163 » |
181 // Post async plugin error | 164 // Post async plugin error |
182 CPluginError pluginError; | 165 CPluginError pluginError; |
183 while (CPluginClientBase::PopFirstPluginError(pluginError)) | 166 while (CPluginClientBase::PopFirstPluginError(pluginError)) |
184 { | 167 { |
185 CPluginClientBase::LogPluginError(pluginError.GetErrorCode(), pluginErro
r.GetErrorId(), pluginError.GetErrorSubid(), pluginError.GetErrorDescription(),
true, pluginError.GetProcessId(), pluginError.GetThreadId()); | 168 CPluginClientBase::LogPluginError(pluginError.GetErrorCode(), pluginErro
r.GetErrorId(), pluginError.GetErrorSubid(), pluginError.GetErrorDescription(),
true, pluginError.GetProcessId(), pluginError.GetThreadId()); |
186 } | 169 } |
187 } | 170 } |
188 | 171 |
189 // Called from installer | 172 // Called from installer |
190 EXTERN_C void STDAPICALLTYPE OnInstall(MSIHANDLE hInstall, MSIHANDLE tmp) | 173 EXTERN_C void STDAPICALLTYPE OnInstall(MSIHANDLE hInstall, MSIHANDLE tmp) |
191 { | 174 { |
192 InitPlugin(true); | 175 InitPlugin(true); |
193 } | 176 } |
194 | 177 |
195 // Called from updater | 178 // Called from updater |
196 EXTERN_C void STDAPICALLTYPE OnUpdate(void) | 179 EXTERN_C void STDAPICALLTYPE OnUpdate(void) |
197 { | 180 { |
198 InitPlugin(false); | 181 InitPlugin(false); |
199 } | 182 } |
OLD | NEW |