304 lines
16 KiB
Plaintext
304 lines
16 KiB
Plaintext
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 |