#ifndef _COMMON_INC #define _COMMON_INC #define _CRT_SECURE_NO_DEPRECATE #define MIRANDA_VER 0x0800 #include #include #include #include #include #include #include "ezxml.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "m_updater.h" #include "m_trigger.h" #include "m_folders.h" //#define TESTING // causes version to be 0.0.0.1 //#define USE_MY_SERVER // uses URLS for scottellis.com.au test site for non-beta //#define PLUGDIR // expect the zip archive to contain plugins/updater.dll rather than just updater.dll #define REGISTER_BETA // register beta urls for beta site //#define DEBUG_POPUPS // define to show some popups (restoring status, etc) //#define _UD_LOGGING // define to log some stuff, from inside the external process, overwriting the data file //#define DEBUG_HTTP_POPUPS // define to show popups re http #define REGISTER_AUTO // get updater to automatically collect file listing URL's from backend xml data #define BETA_HOST_URL_PREFIX "http://www.scottellis.com.au/miranda_plugins" //(thanks Omniwolf for old twosx webspace, thx Koobs for hosting my domain) typedef enum Category {MC_PLUGINS, MC_LOCALIZATION, MC_UNKNOWN, NUM_CATEGORIES}; typedef struct UpdateOptions_tag { bool enabled; // user has enabled updates for this plugin bool use_beta; // use the beta update data bool fixed; // use_beta flag is fixed - cannot be changed by user (e.g. szUpdateURL is null, szBetaUpdateURL is not) } UpdateOptions; typedef struct UpdateInternal_tag { Update update; UpdateOptions update_options; int file_id; // miranda file listing id bool auto_register; char *newVersion; Category cat; char *shortName; } UpdateInternal; struct UpdateList : OBJLIST { UpdateList() : OBJLIST(10) {} UpdateList(const UpdateList& upd) : OBJLIST(10) { for (int i=0; i { StrList() : LIST(5) {} ~StrList() { for (int i=0; i FilenameMap; #include "resource.h" #define MODULE "Updater" extern HINSTANCE hInst; extern PLUGINLINK *pluginLink; extern PLUGININFOEX pluginInfo; extern bool is_idle; extern HANDLE hNetlibUser, hNetlibHttp; static int __inline NLog(char *msg) { return CallService(MS_NETLIB_LOG, (WPARAM)hNetlibUser, (LPARAM)msg); } // clist 'exit' menu item command id #define ID_ICQ_EXIT 40001 // maximum number of redirects when getting xml data or download files via HTTP #define MAX_REDIRECT_RECURSE 4 #ifndef MIID_UPDATER #define MIID_UPDATER {0x4a47b19b, 0xde5a, 0x4436, { 0xab, 0x4b, 0xe1, 0xf3, 0xa0, 0x22, 0x5d, 0xe7}} #endif #endif