diff options
Diffstat (limited to 'include/delphi/m_updater.inc')
-rw-r--r-- | include/delphi/m_updater.inc | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/include/delphi/m_updater.inc b/include/delphi/m_updater.inc new file mode 100644 index 0000000000..ff000f71bf --- /dev/null +++ b/include/delphi/m_updater.inc @@ -0,0 +1,126 @@ +{$IFNDEF M_UPDATER}
+{$DEFINE M_UPDATER}
+
+{
+ if you set Update::szUpdateURL to the following value when registering, as
+ well as setting your beta site and version data, updater will ignore
+ szVersionURL and pbVersionPrefix, and attempt to find the file listing URL's
+ from the backend XML data. for this to work, the plugin name in
+ pluginInfo.shortName must match the file listing exactly (except for case)
+}
+const
+ UPDATER_AUTOREGISTER = 'UpdaterAUTOREGISTER';
+
+type
+ PUpdate_tag = ^TUpdate_tag;
+ TUpdate_tag = record
+ cbSize : int;
+ szComponentName : PAnsiChar; // component name as it will appear in the UI
+ // (will be translated before displaying)
+ szVersionURL : PAnsiChar; // URL where the current version can be found (NULL to disable)
+
+ pbVersionPrefix : PAnsiChar; // bytes occuring in VersionURL before the version,
+ // used to locate the version information within
+ // the URL data (not that this URL could point at
+ // a binary file - dunno why, but it could :)
+ cpbVersionPrefix: int; // number of bytes pionted to by pbVersionPrefix
+ szUpdateURL : PAnsiChar; // URL where dll/zip is located
+ szBetaVersionURL: PAnsiChar; // URL where the beta version can be found (NULL to disable betas)
+
+ pbBetaVersionPrefix:PAnsiChar; // bytes occuring in VersionURL before the
+ // version, used to locate the version
+ // information within the URL data
+ cpbBetaVersionPrefix:int; // number of bytes pointed to by pbVersionPrefix
+ szBetaUpdateURL : PAnsiChar; // URL where dll/zip is located
+ pbVersion : PAnsiChar; // bytes of current version, used for comparison
+ // with those in VersionURL
+ cpbVersion : int; // number of bytes pionted to by pbVersion
+ szBetaChangelogURL:PAnsiChar; // url for displaying changelog for beta versions
+ end;
+ TUpdate = TUpdate_tag;
+ PUpdate = ^TUpdate;
+
+const
+ {$IFNDEF WIN64}
+ OLD_UPDATER_SIZE = SizeOf(TUpdate)-SizeOf(PAnsiChar);
+ {$ELSE}
+ OLD_UPDATER_SIZE = SizeOf(TUpdate);
+ {$ENDIF}
+
+const
+ {
+ register a comonent with the updater
+ wparam = 0
+ lparam = (LPARAM)&Update
+ }
+ MS_UPDATE_REGISTER:PAnsiChar = 'Update/Register';
+
+ {
+ register the 'easy' way - use this method if you have no beta URL and the
+ plugin is on the miranda file listing
+ NOTE: the plugin 'short name' in pluginInfo must match the name of the
+ plugin on the file listing, exactly (including case) AND the plugin version
+ string on the file listing must be the string version of the version in
+ pluginInfo (i.e. 0.0.0.1, so no letters, brackets, etc.)
+
+ wParam = (int)fileID - this is the file ID from the file listing
+ (i.e. the number at the end of the download link)
+ lParam = (PLUGININFO*)&pluginInfo
+ }
+ MS_UPDATE_REGISTERFL:PAnsiChar = 'Update/RegisterFL';
+
+ {
+ this function can be used to 'unregister' components - useful for plugins
+ that register non-plugin/langpack components and may need to change those
+ components on the fly
+ lParam = (AnsiChar *)szComponentName
+ }
+ MS_UPDATE_UNREGISTER:PAnsiChar = 'Update/Unregister';
+
+ {
+ this event is fired when the startup process is complete, but NOT if a
+ restart is imminent it is designed for status managment plugins to use as a
+ trigger for beggining their own startup process
+ wParam = lParam = 0 (unused)
+ (added in version 0.1.6.0)
+ }
+ ME_UPDATE_STARTUPDONE:PAnsiChar = 'Update/StartupDone';
+
+ {
+ this service can be used to enable/disable Updater's global status control
+ it can be called from the StartupDone event handler
+ wParam = (BOOL)enable
+ lParam = 0
+ (added in version 0.1.6.0)
+ }
+ MS_UPDATE_ENABLESTATUSCONTROL:PAnsiChar = 'Update/EnableStatusControl';
+
+ {
+ An description of usage of the above service and event:
+ Say you are a status control plugin that normally sets protocol or global statuses in your ModulesLoaded event handler.
+ In order to make yourself 'Updater compatible', you would move the status control code from ModulesLoaded to another function,
+ say DoStartup. Then, in ModulesLoaded you would check for the existence of the MS_UPDATE_ENABLESTATUSCONTROL service.
+ If it does not exist, call DoStartup. If it does exist, hook the ME_UPDATE_STARTUPDONE event and call DoStartup from there. You may
+ also wish to call MS_UPDATE_ENABLESTATUSCONTROL with wParam == FALSE at this time, to disable Updater's own status control feature.
+
+ this service can be used to determine whether updates are possible for a component with the given name
+ wParam = 0
+ lParam = (AnsiChar *)szComponentName
+ returns TRUE if updates are supported, FALSE otherwise
+ }
+ MS_UPDATE_ISUPDATESUPPORTED:PAnsiChar = 'Update/IsUpdateSupported';
+
+{
+ An description of usage of the above service and event:
+ Say you are a status control plugin that normally sets protocol or global
+ statuses in your ModulesLoaded event handler.
+ In order to make yourself 'updater compatible', you would move the status
+ control code from ModulesLoaded to another function, say DoStartup. Then, in
+ ModulesLoaded you would check for the existence of the MS_UPDATE_ENABLESTATUSCONTROL
+ service. If it does not exist, call DoStartup. If it does exist, hook the
+ ME_UPDATE_STARTUPDONE event and call DoStartup from there. You may also wish
+ to call MS_UPDATE_ENABLESTATUSCONTROL with wParam == FALSE at this time, to
+ disable Updater's own status control feature.
+}
+
+{$ENDIF}
|