From c2c8016a4f56b10299b279c64370e304265e7c3b Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 30 Sep 2012 11:50:38 +0000 Subject: source code unification git-svn-id: http://svn.miranda-ng.org/main/trunk@1726 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/PluginUpdater/src/Common.h | 88 ++++++++++++++++++++++++++++- plugins/PluginUpdater/src/PluginUpdater.cpp | 42 ++++++++++++-- plugins/PluginUpdater/src/Utils.cpp | 44 ++++++++++++--- 3 files changed, 157 insertions(+), 17 deletions(-) (limited to 'plugins/PluginUpdater/src') diff --git a/plugins/PluginUpdater/src/Common.h b/plugins/PluginUpdater/src/Common.h index 9efa4740be..28c899e9d7 100644 --- a/plugins/PluginUpdater/src/Common.h +++ b/plugins/PluginUpdater/src/Common.h @@ -19,8 +19,6 @@ Boston, MA 02111-1307, USA. #define _CRT_SECURE_NO_WARNINGS -#define MIRANDA_VER 0x0A00 - // Windows Header Files: #include #include @@ -138,7 +136,6 @@ int OptInit(WPARAM, LPARAM); void DoCheck(int iFlag); BOOL DownloadFile(LPCTSTR tszURL, LPCTSTR tszLocal); void ShowPopup(HWND hDlg, LPCTSTR Title, LPCTSTR Text, int Number, int ActType); -void __stdcall ExitMe(void*); void __stdcall RestartMe(void*); BOOL AllowUpdateOnStartup(); void InitTimer(); @@ -150,3 +147,88 @@ INT_PTR CALLBACK DlgUpdate(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam INT_PTR CALLBACK DlgMsgPop(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); bool unzip(const TCHAR* ptszZipFile, TCHAR* ptszDestPath, TCHAR* ptszBackPath); + +#if MIRANDA_VER < 0x0A00 + +template class mir_ptr +{ + T* data; + +public: + __inline mir_ptr() : data((T*)mir_calloc(sizeof(T))) {} + __inline mir_ptr(T* _p) : data(_p) {} + __inline ~mir_ptr() { mir_free(data); } + __inline T* operator = (T* _p) { if (data) mir_free(data); data = _p; return data; } + __inline T* operator->() const { return data; } + __inline operator T*() const { return data; } + __inline operator INT_PTR() const { return (INT_PTR)data; } +}; + +class _A2T +{ + TCHAR* buf; + +public: + __forceinline _A2T(const char* s) : buf(mir_a2t(s)) {} + __forceinline _A2T(const char* s, int cp) : buf(mir_a2t_cp(s, cp)) {} + ~_A2T() { mir_free(buf); } + + __forceinline operator TCHAR*() const + { return buf; + } +}; + +class _T2A +{ + char* buf; + +public: + __forceinline _T2A(const TCHAR* s) : buf(mir_t2a(s)) {} + __forceinline _T2A(const TCHAR* s, int cp) : buf(mir_t2a_cp(s, cp)) {} + __forceinline ~_T2A() { mir_free(buf); } + + __forceinline operator char*() const + { return buf; + } +}; + +__forceinline INT_PTR Options_Open(OPENOPTIONSDIALOG *ood) +{ + return CallService("Opt/OpenOptions", 0, (LPARAM)ood); +} + +__forceinline INT_PTR Options_AddPage(WPARAM wParam, OPTIONSDIALOGPAGE* odp) +{ + return CallService("Opt/AddPage", wParam, (LPARAM)odp); +} + +char* rtrim(char* str); +void CreatePathToFileT(TCHAR* szFilePath); + +#define NEWTSTR_ALLOCA(A) (A == NULL)?NULL:_tcscpy((TCHAR*)alloca((_tcslen(A)+1)* sizeof(TCHAR)), A) + +__forceinline HANDLE Skin_GetIconHandle(const char* szIconName) +{ return (HANDLE)CallService(MS_SKIN2_GETICONHANDLE, 0, (LPARAM)szIconName); +} + +__forceinline HICON Skin_GetIcon(const char* szIconName, int size=0) +{ return (HICON)CallService(MS_SKIN2_GETICON, size, (LPARAM)szIconName); +} + +__forceinline HGENMENU Menu_AddMainMenuItem(CLISTMENUITEM *mi) +{ return (HGENMENU)CallService("CList/AddMainMenuItem", 0, (LPARAM)mi); +} + +__forceinline INT_PTR Hotkey_Register(HOTKEYDESC *hk) +{ return CallService("CoreHotkeys/Register", 0, (LPARAM)hk); +} + +__forceinline INT_PTR CreateDirectoryTreeT(const TCHAR* ptszPath) +{ return CallService(MS_UTILS_CREATEDIRTREET, 0, (LPARAM)ptszPath); +} + +__forceinline HANDLE Skin_AddIcon(SKINICONDESC* si) +{ return (HANDLE)CallService("Skin2/Icons/AddIcon", 0, (LPARAM)si); +} + +#endif \ No newline at end of file diff --git a/plugins/PluginUpdater/src/PluginUpdater.cpp b/plugins/PluginUpdater/src/PluginUpdater.cpp index d42c0901e7..8e2ffd6935 100644 --- a/plugins/PluginUpdater/src/PluginUpdater.cpp +++ b/plugins/PluginUpdater/src/PluginUpdater.cpp @@ -19,9 +19,18 @@ Boston, MA 02111-1307, USA. #include "common.h" -HINSTANCE hInst = NULL; +#if MIRANDA_VER < 0x0A00 + #define MIID_UPDATER {0x4a47b19b, 0xde5a, 0x4436, { 0xab, 0x4b, 0xe1, 0xf3, 0xa0, 0x22, 0x5d, 0xe7}} + + PLUGINLINK* pluginLink; + MM_INTERFACE mmi; + LIST_INTERFACE li; + MD5_INTERFACE md5i; + UTF8_INTERFACE utfi; +#endif -HANDLE hPluginUpdaterFolder = NULL, hCheckUpdates = NULL; +HANDLE hPluginUpdaterFolder = NULL, hCheckUpdates = NULL, hEmptyFolder = NULL; +HINSTANCE hInst = NULL; TCHAR tszRoot[MAX_PATH] = {0}; int hLangpack; @@ -35,6 +44,9 @@ PLUGININFOEX pluginInfoEx = { __COPYRIGHT, __AUTHORWEB, UNICODE_AWARE, +#if MIRANDA_VER < 0x0A00 + 0, +#endif //{29517BE5-779A-48e5-8950-CB4DE1D43172} {0x29517be5, 0x779a, 0x48e5, {0x89, 0x50, 0xcb, 0x4d, 0xe1, 0xd4, 0x31, 0x72}} }; @@ -45,15 +57,34 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } +#if MIRANDA_VER < 0x0A00 +static const MUUID interfaces[] = {MIID_UPDATER, MIID_LAST}; + +extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) +{ + return interfaces; +} +#endif + extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) { return &pluginInfoEx; } + +#if MIRANDA_VER < 0x0A00 +extern "C" __declspec(dllexport) int Load(PLUGINLINK* link) +{ + pluginLink = link; + mir_getMMI(&mmi); + mir_getLI(&li); + mir_getMD5I(&md5i); + mir_getUTFI(&utfi); +#else extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfoEx); - +#endif if (ServiceExists(MS_FOLDERS_REGISTER_PATH)) hPluginUpdaterFolder = FoldersRegisterCustomPathT(MODULEA, "Plugin Updater", MIRANDA_USERDATAT _T("\\")DEFAULT_UPDATES_FOLDER); @@ -84,10 +115,9 @@ extern "C" __declspec(dllexport) int Load(void) // Add hotkey HOTKEYDESC hkd = {0}; hkd.cbSize = sizeof(hkd); - hkd.dwFlags = HKD_TCHAR; hkd.pszName = "Check for plugin updates"; - hkd.ptszDescription = _T("Check for plugin updates"); - hkd.ptszSection = _T("Plugin Updater"); + hkd.pszDescription = "Check for plugin updates"; + hkd.pszSection = "Plugin Updater"; hkd.pszService = MODNAME"/CheckUpdates"; hkd.DefHotKey = HOTKEYCODE(HOTKEYF_CONTROL, VK_F10) | HKF_MIRANDA_LOCAL; hkd.lParam = FALSE; diff --git a/plugins/PluginUpdater/src/Utils.cpp b/plugins/PluginUpdater/src/Utils.cpp index 1886d02c01..737df21960 100644 --- a/plugins/PluginUpdater/src/Utils.cpp +++ b/plugins/PluginUpdater/src/Utils.cpp @@ -19,12 +19,10 @@ Boston, MA 02111-1307, USA. #include "Common.h" -//vector Files; BOOL DlgDld; int Number = 0; TCHAR tszDialogMsg[2048] = {0}; FILEINFO* pFileInfo = NULL; -//FILEURL* pFileUrl = NULL; HANDLE CheckThread = NULL, hNetlibUser = NULL; POPUP_OPTIONS PopupOptions = {0}; aPopups PopupsList[POPUPS]; @@ -128,7 +126,11 @@ BOOL DownloadFile(LPCTSTR tszURL, LPCTSTR tszLocal) DWORD dwBytes; NETLIBHTTPREQUEST nlhr = {0}; - nlhr.cbSize = sizeof(nlhr); + #if MIRANDA_VER < 0x0A00 + nlhr.cbSize = NETLIBHTTPREQUEST_V1_SIZE; + #else + nlhr.cbSize = sizeof(nlhr); + #endif nlhr.requestType = REQUEST_GET; nlhr.flags = NLHRF_DUMPASTEXT | NLHRF_HTTP11; char* szUrl = mir_t2a(tszURL); @@ -164,13 +166,9 @@ BOOL DownloadFile(LPCTSTR tszURL, LPCTSTR tszLocal) return ret; } -void __stdcall ExitMe(void*) -{ - CallService("CloseAction", 0, 0); -} - void __stdcall RestartMe(void*) { + CallService("CloseAction", 0, 0); CallService(MS_SYSTEM_RESTART, 0, 0); } @@ -227,3 +225,33 @@ void InitTimer() SetWaitableTimer(Timer, &li, interval, TimerAPCProc, NULL, 0); } } + +#if MIRANDA_VER < 0x0A00 +char* rtrim(char* str) +{ + if (str == NULL) + return NULL; + + char* p = strchr(str, 0); + while (--p >= str) { + switch (*p) { + case ' ': case '\t': case '\n': case '\r': + *p = 0; break; + default: + return str; + } + } + return str; +} + +void CreatePathToFileT(TCHAR* szFilePath) +{ + TCHAR* pszLastBackslash = _tcsrchr(szFilePath, '\\'); + if (pszLastBackslash == NULL) + return; + + *pszLastBackslash = '\0'; + CallService(MS_UTILS_CREATEDIRTREET, 0, (LPARAM)szFilePath); + *pszLastBackslash = '\\'; +} +#endif -- cgit v1.2.3