miranda/Hyphen/Plugins/Docs/History.txt

304 lines
16 KiB
Plaintext
Raw Normal View History

2013-06-26 00:53:41 +02:00
HYPHEN Version History
==========================================================================================================
KNOWN ISSUES
==========================================================================================================
- ContactInfo.Read/WriteSetting & ContactInfo.WriteSettingAsBlob do not support blob values yet
- MirandaDatabase.ContactSettingChange event does not provide data for changed blob values (see prev point)
v0.8.6.1931
==========================================================================================================
* MANY BINARY INCOMPATIBLE CHANGES
* MirandaContext completely refactored
- Service functions => ServiceManager
- Events + Event hooks => EventManager
+ MirandaContext.ServiceCallInterceptors
- Plugin dialogs tracking rewritten to be more efficient and deadlock free :-)
- EventHandle class refactored (see EventManager)
- DatabaseEventInfo.Data encoding bug fixed
- Internal text encoding mishandling fixed
+ LoaderOptions.MinimalMirandaVersion added
+ Hyphen tray icon moved to Hyphen's menu
v0.8.5.1502
==========================================================================================================
- MirandaDatabase.AddEvent encoding bug fixed
- MirandaDatabase.GetContacts/FindContact methods rewritten to be more efficient
+ ContactInfo.OpenMessageWindow()
* MirandaContext.UnhookEvent(MirandaPlugin, string) => MirandaContext.UnhookEvent(string, MirandaPlugin)
* IConfigurablePlugin interface undergone incompatible binary change
v0.8.5.1303
==========================================================================================================
+ Codename Casablanca - new configuration infrastructure
+ ContactList.AddEvent method introduced
+ AckRouter class for protocol ack processing introduced
+ Protocol.StatusChanged event introduced
+ Stability improvements
+ Exception handling improvements
- LangPack string encoding fixed
- Other bug fiexes
- Internal refactoring
* MirandaContext.NetworkProtocols => MirandaContext.Protocols
* NetworkProtocolDictionary => ProtocolDictionary
* A few events refactored
* A few classes renamed
v0.8.5.1101
==========================================================================================================
- 0.7+ Miranda Plugin API conformance
v0.8.5.1
==========================================================================================================
- Minor stability fix
v0.8.5.0
==========================================================================================================
* Virtuoso.Hyphen.Sandbox renamed to Virtuoso.Miranda.Plugins.Helpers.Sandbox
* ProtocolPlugin.Descriptor renamed to ProtocolPlugin.ProtocolDescriptor
+ MenuItemDeclarationAttribute can be now applied to methods as well without the need to specify
the service name; the service will be created for the method automagically
+ Virtuoso.Miranda.Plugins.Helpers.MessageQueue class introduced
* GenericEventArgs renamed to MirandaEventArgs
* Many *EventArgs classes renamed
- FIXED BUG: BeforeEventAdded event now does provide valid event data
v0.8.4.1
==========================================================================================================
* Many interfaces refactored,
- Critical interop bug fixed (thanks to MikZ)
v0.8.4.0
==========================================================================================================
- MPM bug fixes
* Configuration class renamed to PluginConfiguration,
v0.8.4.0
==========================================================================================================
* MirandaDatabase class + several other APIs overhauled,
+ Managed protocol support (see the MPM project on my site)
v0.8.3.2
==========================================================================================================
+ Configuration dialog revisited
v0.8.3.1
==========================================================================================================
+ Main menu popup menus support for managed plugins
+ Updated version of CueBannerTextBox included
+ InformationDialog introduced
+ New 'Loading plugins' dialog introduced
- FIXED BUG: Plugin settings not saved with LazyUnload feature enabled
v0.8.3.0
==========================================================================================================
- Incompatible binary changes, plugins must be recompiled
+ Plugin configuration framework introduced
+ Vista style introduced
+ Lazy unload introduced
+ CueBannerTextBox control included (nice work of Chili Software)
+ GradientPanel control included
+ Hyphen configuration revisited
- Many internal changes
v0.8.2.60
==========================================================================================================
- Hyphen is now strong named because some plugins may need to be strong named so Hyphen must be too
- Plugins will automatically load the newest version of Hyphen; this is done using the BindingRedirect
to avoid multiple versions of Hyphen assemblies to be deployed
* Incompatible binary changes, plugins must be recompiled
v0.8.2.25
==========================================================================================================
- I haven't accounted .NET Remoting object lifetime so after 5 minutes, all the remote objects
are disconnected, which is very bad => fixed by overriding the MarshalByRefObject::InitalizeLifetimeService
method
- If you're designing an object accessible from another AppDomain (for example if you're using
the Sandbox class), derive it from the Virtuoso.Miranda.Plugins.Infrastructure.RemoteObject class
to make it connected as long as it's not collected by GC
v0.8.2.20
==========================================================================================================
- ConfigurableMirandaPlugin class introduced; provides plugins with a seamless configuration store
v0.8.2.0
==========================================================================================================
- Icons refreshed
- Various internal changes
- Sandbox class introduced; allows you to easily sandbox your own plugins (in plugins :-)) or scripts
v0.8.1.80
==========================================================================================================
- Langpack localization support via the LanguagePack, LanguagePackStringResolver & LocalizableForm classes
- Hyphen's main menu items now take advantage of Langpack (I'm not going to localize dialogs using Langpack,
(at least not now), I prefer the .NET way, i.e. satelite assemblies)
v0.8.1.60
==========================================================================================================
- Updater plugin support (Virtuoso.Miranda.Plugins.ThirdParty.Updater.UpdaterPlugin class)
- LoaderOptionsAttribute now supports required Hyphen version specification; Hyphen refuses to load a plugin
that requires a newer version of Hyphen
v0.8.1.40
==========================================================================================================
- Internal stability improvements
v0.8.1.35
==========================================================================================================
- Virtuoso.Miranda.Plugins.Helpers.IniStructure class added; thanks kratchkov@inbox.lv for his
CodeProject submission!
v0.8.1.32
==========================================================================================================
- ContactInfo.Value is now translated to ANSI string by default not to Miranda's build default encoding.
v0.8.1.30
==========================================================================================================
- Internal sandboxing API changes
v0.8.1.10
==========================================================================================================
- Safe callbacks introduced; no managed plugin should now crash Miranda with an unhandled exception;
an exception will be caught and processed by a callback stub
v0.8.1.4
==========================================================================================================
- Internal refinements
v0.8.1.3
==========================================================================================================
- Internal Loader changes
- Internal Hyphen.Mini changes
v0.8.0.0
==========================================================================================================
- Midas is now Hyphen, the core has been re-engineered...
- Hyphen now supports delayed plugin loading and unloading; plugins are not loaded on startup but you can load
them using the Miranda Menu - 'Load/Unload Microsoft.net plugins' item; this saves memory and startup time
- EventHandle class providing you with an option to create and manage your own events
- MirandaContext now offers CreateServiceFunction and HookEvent methods
- You can override the builtin configuration and use your own Plugin manager instead of the builtin one
- You can override the builtin configuration and use your own Assembly probe to search for plugins
in custom directories
- You can manage plugins via a Hyphen manager icon in the tray
- Plugin assemblies are now shadow copied so you can update them on the fly and Hyphen will reload them
without the need of restarting Miranda
- Noticable performance improvements introduced; unsafe C# pointers employed to get rid of many copying
operations
- Bunch of new functionality added, see for yourself; I am unable to track that amount of changes ;)
v0.7.2.0
==========================================================================================================
- Midas.dll and Virtuoso.Miranda.Plugins were merged into the Midas.dll assembly
v0.7.1.10
==========================================================================================================
- Internal tuning
- InteropBufferPool now offers an override allowing you to set the buffer capacity
- note that a new buffer will be allocated if you explicitly set a capacity higher than the default one,
which is 260 bytes
v0.7.1.5
==========================================================================================================
- InteropBuffer class revamped to be more robust
- InteropBufferPool class introduced; it manages a few shared buffers and when an additional
buffer is requested, it allocates a one
- to obtain an instance of a buffer, you have to call the InteropBufferPool::AcquireBuffer() method
- you will be provided with an instance of capacity 260 bytes
- to release a buffer and free its resources, call the InteropBufferPool::ReleaseBuffer(InteropBuffer)
method; a buffer to be released must be unlocked!
- MirandaContext::CreateHookableEvent method provided; returns an instance of the EventHandle class
allowing you to manipulate with the event (fire it and set a default hook)
v0.7.1.1
==========================================================================================================
- Minor internal changes
- IcqXStatusPlugin source code included (note it requires Unicode Miranda and the latest ICQOscarJ plugin)
v0.7.1.0
==========================================================================================================
- MirandaContext::PluginSettingsManager property now returns null; please do not use this class, it will be
refactored in the future
- MirandaDatabase::GetProfileName() & ::GetProfilePath() methods added
- Translate::ToString() method now supports length and encoding options; you can now specify an encoding
in which is a string pointed by a handle encoded in or select StringEncoding::MirandaDefault to assume
ANSI under the non-unicode Miranda core and UNICODE under the unicode-aware Miranda core;
using this method will simplify possible unicode transition in the future
- MirandaEnvironment static class introduced; you can use it to obtain the information about Miranda
(currently there is a MirandaStringEncoding property only)
- InteropBuffer class introduced; you can pass it to a Miranda service expecting a char/byte/whatever
buffer pointer; just don't forget to Lock() and Unlock() it before and after the use, respectively
- to obtain a buffer pointer, you the IntPtr property;
- WARNING: do not call the Free()/Dispose() methods (!!!) these will invalidate the buffer and prevent
its next use; these methods are supposed to be called by internal callers only!
- to purge the content of the buffer (if security is your concern), use the Zero() method
- note that the Zero() operation is quite a slow one, so carefully consider its use
- to obtain the capacity of the buffer, use either the InteropBuffer::Capacity or ::CapacityAsXX fields
v0.7.0.5
==========================================================================================================
- MirandaDatabase now supports writing and reading contact settings; reading is done via
a "DB/Contact/GetSettingStatic" service call to improve performance
v0.7.0.1
==========================================================================================================
- Midas v1.0.0.1 included; minor internal API changes
v0.7.0.0
==========================================================================================================
- DotNetConnector is now Midas
- Miranda-2-.net proxy is now pure IL with 3 unmanaged exports only representing the Miranda API entry
points (previously there was an C++/CLI IJW assembly dependent on the MS VCRT v8.0 dlls; this is now gone)
- No public API changes
v0.6.8.0
==========================================================================================================
- PluginSettings class for storing plugin specific settings
- MirandaDatabase class extended
- IndividualMirandaPlugin class added; you can derive your plugins from it and use a small
IL stub to create plugins that are not managed by the PluginManager and thus can override Miranda system modules
and are even transient
- More documentation will code...
- Project <no-codename-yet> has been started; it's goal is to replace the C++/CLI loader stub with a pure
IL stub consisting from 3 unmanaged exports only...
v0.6.7.0
==========================================================================================================
- MenuItemDeclarationAttribute API refactored
- StandardServices & StandardEvent class removed
- ContactList now supports adding and modifying menu items
- Some collection changes
- ContactList.ProtocolStatusChange event added
v0.6.6.0
==========================================================================================================
- All previous known issues resolved (probably caused by some hook-twice operation)
- PluginContext is now MirandaContext
- PluginContext.MirandaPInvokeBridge is not public now, it was visible due a bug
- Miranda lazy event binding introduced (binds to Miranda's internal event only when somebody subscribes
a one)
- PrivatePluginAttribute introduced (makes a plugin manually loadable only, fusion will ignore it)
v0.6.5.0
==========================================================================================================
- Some optimalizations
- KNOWN ISSUES
- MirandaDatabase::EventAdded event fired twice. I think Miranda does this, but don't know why...
v0.6.3.0
==========================================================================================================
- Bunch of new stuff added, see for yourself...
v0.5.8.0
==========================================================================================================
- Contact info query support
- UnmanagedStructHandle<6C>1 struct made public for use
(can be used for easy unmanaged memory allocation and deallocation)
- Performance and stability tuning
- MirandaPlugin base class expansion; some new virtual methods added
- Threaded fusion
v0.5.0.0
==========================================================================================================
- initial alpha release