Nektra has developed the new WLMailApi product, which allows developers to create custom Windows Live Mail plugins.
Used by the Top Security Vendors
We are pleased to have customers that are the Leaders in the Quadrant of Gartner’s Endpoint Protection Platforms.
You can read the full report on the Symantec Endpoint Security’s page.
Most of our enterprise customers have a special branch of the WLMailApi that specially fits to their needs. This warranties them better performance and dedicated support.
WLMailApi enables your software to reach million of users worlwide with Windows Live Essentials® installed.
Creating addons for Live Mail Desktop® demands a deep knowledge of it’s internal behaviour. It’s Application Programming Interface (API) is undocumented and there is not a SDK available. Even the public interfaces IStoreNamespace and IStoreFolder supported in both Outlook Express® and Windows Mail® are not present in this new email client.
Windows 7® doesn’t include Outlook Express nor Windows Mail, it’s users will be forced to move to Windows Live Mail. Your product can be one of the first plugins for it!
You can subscribe to the Product’s newsletter using this page’s form on the right side.
We have released a RTM version on January of 2010.
Customize Windows Live Mail
Create toolbars
Create buttons
Access to the storage
Get selected folder / message
Get storage notifications
A lot more!
Plugin Development Service
We have developed a large number of different plug-ins and created a variety of products in this complex scenario.
Our OEAPI product is the library to build plugins for Outlook Express® and Windows Mail® that leading companies use.
Our deep knowledge of undocumented functions in Windows Live Mail® reduces the risk of your project.
We can provide a custom library with the desired features to interact with other components written in any language.
For those who need a more specialized solution we offer our addon development services.
Some of the companies that have chosen our services include:
All registered trademarks are property of their respective owners. WinZip is a registered trademark of WinZip International LLC. All rights reserved.
WLMailAPI Features
WLMailAPI supports Windows Live Mail® running on Windows® XP, Vista and Windows 7®.
Customers that purchase the WLMailAPI with Source Code can support 64 bits versions of XP, Vista and Windows 7.
Newsgroups (NNTP), IMAP and Hotmail folders are not supported.
Customize Windows Live Mail
Create toolbars
Create buttons
Access to the storage
Get selected folder / message
Get storage notifications
A lot more!
All the functionality is implemented in COM objects.
An DLL Demo Application written in C++ is included in the package.
A DLL Demo Application written in C# is included in the package.
WLMailAPI DLL Plugins run inside Windows Live Mail address space.
User Interface
Add your own toolbars and buttons Windows Live Mail main window.
Add tooltips to your buttons.
Multi toolbars support. Create more than one toolbar from your plugin.
Enable / Disable / Show / Hide your toolbar’s buttons.
Handle the click events of your buttons.
Folders
Browse all the Windows Live Mail folders.
Create / Rename / Move / Delete folders.
Handle the Folder Created / Renamed / Moved / Deleted events.
Handle folder selection change event.
Messages
Browse messages in a folder.
Get Header / Body / Source.
Get Message State / Priority / Display From / Subject.
Basic MIME Support: Browse, modify, insert and remove bodies.
Attachments API: List / Save to disk / Add / Remove.
Change any message properties. (Some visible properties changes, like ‘Subject’, ‘To’ and ‘From’, are reflected correctly in the preview pane and in the detail window, but they cannot be reflected in WLMail message list directly. To have them reflected correctly you need to clone the message first.)
Get / Set custom properties / headers.
Message Clone: Make an exact copy of a message. It can also be modified.
Delete / Create message.
Copy / Move messages.
Mark as Read / Unread.
Handle the Message Created / Deleted / Read / Unread events.
Handle message selection change event.
Messages / Folder Selection
Get Selected Message/s.
Get Selected Folder.
Events
OnDatabaseChange:
Folder events: Inserted, Deleted, Renamed, Moved.
Message events: Inserted, Deleted, Read, Unread.
OnMessageSelectionChanged.
OnFolderSelectionChanged.
Outbox Filter
Modify messages before they are sent.
Message Window
(Compose, Reply, Reply All, Forward and Open Message windows)
Multi toolbars support. Create more than one toolbar from your plugin.
Nektra’s Windows Live Mail API supports the newest Windows Live Mail 2012 and works on all current versions of Windows 10, Windows 8, Windows 7, Windows Vista and Windows XP.
WLMailAPI changes from version 4.6.1 to 4.6.5
Released on Jan 2016
Fixes
Removed SharedSection to prevent AV detection.
Changed some code to remove BinScope warnings.
Updated Deviare In-Proc library.
WLMailAPI changes from version 4.6.0 to 4.6.1
Released on May 2015
Additions
Added SPECIALFOLDERTYPE enumeration for suitable GetSpecialFolderType return values.
Added missing version information for binary files.
Fixes
Removed obsolete and non-working function IFolderManager::ActivateGlobalNotification.
Fixed linker message about “Subsystem” option in latest VS 2013.
Fixed boost warning about “Unknown compiler” for VC18.0 (VS2013).
Fixed wlmail.exe hang on splash screen if WlMailAPI COM could not be loaded. Now a proper message box is displayed, and WLmail is allowed to run, but with our API disabled.
Updated code sign certification.
Works with Windows 8 (all builds)
Improved Performance
WLMailAPI changes from version 4.5.1 to 4.6.0
Released on December 2014
Fixes
All WLMailAPI COM library binaries and installer executable are properly code-signed.
This release includes security-enhanced compiler settings and applied patches to binary files as follows:
ASLR (Base Address Randomization) active by default.
NX (NoExecute-bit) active by default.
Security Update for Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (KB2538243)
Visual Studio 2008 Service Pack 1 MFC Security Update (KB2538241)
Security Update for Microsoft Visual Studio 2008 Service Pack 1 (KB2669970)
Visual Studio 2008 Service Pack 1 ATL Security Update (KB971092)
Visual Studio 2008 Service Pack 1 GDIPLUS.DLL Security Update (KB972222)
Visual Studio 2008 Service Pack 1 ATL for Smart Devices Security Update (KB973675)
Visual Studio 2008 Service Pack 1 XML Editor Security Update (KB2251487)
Update for Microsoft Visual Studio 2008 Service Pack 1 (KB2938806)
Minor documentation and installer fixes.
WLMailAPI changes from version 4.5.0 to 4.5.1
Released on July 2014
Fixes
Fixed Commit in Failsafe mode where To/From fields in message record were filled with incorrect information.
Fixed header iteration: non-working GetFirstBodyHeader/GetNextBodyHeader for Windows Live Mail 2009.
Marked GetFirstBodyProp, GetNextBodyProp as obsolete functions.
Fixed issue where IMessage::GetBodySize always returned 0.
Fixed a pointer bug when calling GetFirstAccount() twice.
WLMailAPI changes from version 4.3.3 to 4.4.0
Released on February of 2014
Additions
Certified for Windows 8.1.
Certified for building under Visual Studio 2013 compiler suit.
Added support for Windows Live Mail 16.4.3508.0205.
WLMailAPI changes from version 4.3.2 to 4.3.3
Released on October of 2013
Fixes
Fixed a bug where the subject was not updated for a new or cloned message commit.
WLMailAPI changes from version 4.3.1 to 4.3.2
Released on August of 2013
Fixes
Fixed infinite loop at wlmail.exe startup due to a bug in the UIRIBBON.DLL IAT-table patching code.
WLMailAPI changes from version 4.1.1 to 4.3.1
Released on July of 2013
Additions
(VS2012): Changed platform toolset to v110_xp to enable Windows XP supported builds.
Added stricter error checking when working for methods involving message bodies.
NktRefCounted ASSERTs if assignment causes dangling pointer.
HRESULTs returned by FindRecord are now defined in headers with meaningful values.
IMessage::Commit documentation updated with more information regarding message identifier.
Added description for interfaces in .idl files.
Fixes
Fixed problem building Evaluation configuration in VS2008 using Makefiles.
Fixed entrypoint not found on XP installations by adding missing PSAPI.LIB linker input and PSAPI_VERSION=1 symbol definition.
On Debug builds, tlb2h won’t generate EH wrappers. This allows for more precise bug detection. (e.g: some calls thrown access violation but went silent due to Comet EH behavior).
Fixed stack corruption when calling Commit or DeleteMessage.
Added jetMaxParamSessions registry key to allow modification of maximum database session usage.
Added jetParamMaxVerPages registry key to allow tuning version store page allocation.
Added EnablePerformanceCounters key to allow monitoring Live Mail through Windows Performance Monitor administrative tool.
Added SetDisableUIOnCopyMove function to allow UI block disable during Copy/Move operation.
Added store-related error codes to WlMailStore IDL namespace.
Fixes
CopyMessage(Ex)/MoveMessage(Ex) now block the caller thread.
Copy/move Callback events can be used with POP3 accounts.
Improved overall application performance and memory usage by fixing a bug where account enumerator caused a Database resource leak (version store) leading to eventual operational failure forcing user to shutdown application. This was reported sometimes in WLM as HRESULT 0x800C0160.
Related to the above fix, several message corruption issues were solved.
Improved memory usage when enumerating folders.
Fixes a bug where IMAP connections where left open causing server errors.
Fixes crashes when copying between local and remote folders.
Copy/Move operations now block UI as WLM native behaviour.
Fixes GetClientVersion() returning 15 instead of 16 on Windows Live Mail 2012.
Removed VS2012 suffix to projects. Naming is analog to the 2008 project set.
Note: Visual Studio 2012 compiler/tools compatibility at 90% (work in progress).
WLMailAPI changes from version 3.5.2 to 3.6.0
Released on November of 2012
Additions
Added IFolderManager::CopyMessageEx and IFolderManager::MoveMessageEx to copy multiple messages in one operation.
Fixes
IFolder::FetchMessage now returns TRUE on S_OK or E_PENDING asynchronous operation.
CreateFolder return value significance detailed in function documentation.
Fixes DeleteMessage crash on WLM2009.
Fixes C# demo code to move multiple messages.
“Show Mail Addresses” C# demo button where where NTTP protocol accounts are listed incorrectly as mail accounts.
Removed IMAP Test Suite old code.
Note: Visual Studio 2012 compiler/tools compatibility at 90% (work in progress).
WLMailAPI changes from version 3.5.0 to 3.5.2
Released on November of 2012
Fixes
WLM no longer hangs when the first mail account is created.
Fixed issue in which the function IMsgWnd::SaveDraft would generate an error.
Fixed issue in which the IWLMailApiEvents::OnSendButtonMsgWndClicked would not be triggered when a hotkey is used instead of the proper button.
Fixed the IFolderManager::MoveMessage function.
WLMailAPI changes from version 3.0.1 to 3.5.0
Released on September of 2012
Fixes
Product works with Windows Live Mail 2012.
Fixes issue where HTTP accounts were not enumerated.
Fixes issue for copying messages between folders.
Fixes Copy/Move Messages operation between IMAP/HTTP folders.
Fixes exception for WLM2009 on IFolder::DeleteMessage.
Fixes deadlock on IFolder::DeleteMessage.
Fixed IMessage::GetFolderID() API to return 64-bit folder identifier.
Fixed CreateFolder, MoveFolder, RenameFolder and DeleteFolder APIs — now support operation on HTTP/IMAP folders.
Fixed issue in wich Manage contacts button “reset” made WLM crash.
Normalized all folder ID’s to 64-bit format.
Fixed issue in which WLM crashes after opening a lot of “New Mail” windows.
Fixed issue in which WLM 2009 contact error appears after using “Save to drafts” function several times.
Fixed more issues related to MsgWnd events not triggered by compose windows instantiated from the Find dialog.
Fixed issue in which WLM 2009 would hang when replying a message from the Find dialog.
Fixed issue in which having an ideographic space character in a contact name would truncate the strings returned by MsgWnd envelope properties.
Fixed issue in which MsgWnd envelope properties would be incorrect.
Fixed issue in which WLM would crash while getting a contact or a contact category.
Fixed issue in which closing a window from which another window was instantiated (i.e. using a custom button) would make WLM crash.
Fixed issue in which the “Add to Calendar” dialog would crash if the “Set Envelope” demo button is clicked.
Fixed issue in which some MsgWnd events would not be triggered when a compose window is instantiated from the Find dialog.
Fixed an issue in which a black bar would appear instead of ribbons when a toolbar is created.
Fixed an issue in which WLM would crash when GetDefaultAccount was called.
Fixes issue where Subject, DisplayFrom and DIsplayTo properties could not be read if IsOnLocalStore returned FALSE. Now it’s posible to inspect those message properties even when the message is not downloaded yet.
Fixed demo function CommitIfNotInQuickViews to work on remote folders by cloning message instead of commiting.
Fixed demo code which was reporting normal folders incorrectly as QuickView folders.
Fixed LMailMessageInfo struct with 64-bit FolderID data.
Fixed OnTransaction event that was reporting 32-bit FolderIDs instead of 64-bit on INSERT/DELETE operations.
Fixed MessageRecord::GetFolderID to return 64-bit ID.
Features
Added IFolder::FetchMessage API to retrieve messages from IMAP/HTTP servers.
Added OnFetchMessageBegin and OnMessageFetchComplete events to track FetchMessage API operation.
Added global handling events: IFolderEvents::OnMessageFetchBegin / IFolderEvents::OnMessageFetchComplete.
Implemented: IWLMailApi::GetDefaultToolbar([in] LONG index) allowing to create buttons on default Windows Live Mail 2011 toolbars.
Implemented: IWLMailApi::GetClientVersion([out] LONG version) allowing to get current Windows Live Mail version.
Implemented: IToolbar::CreateButton([in] BSTR name,[in] BSTR bmpNormal,[in] BSTR bmpMouseOver,[in] BOOL isDropDown,[out, retval] IToolbarButton **) allowing to create a button that can contain sub buttons inside.
Implemented: IToolbarButton::CreateSubButton(([in] BSTR name,[in] BSTR bmpNormal,[in] BSTR bmpMouseOver,[in] BOOL isDropDown,[out, retval] IToolbarButton **newButton) allowing to create sub buttons.
Implemented: IToolbarButton::SetEnabled([in] BOOL enabled) on Windows Live Mail 2011.
Fixed: Regular DLL to create Toolbars ( no COM server )
Fixed: Outer Process Support
Fixed: IWLMailApiEvents::OnNewMessageInOutbox([in] LONG msgId)
Fixed: IWLMailApi::SetSelectedFolderID([in] LONG selFolderId)
Changes from version 1.0.2 to 2.0.0
Released on June of 2011
Now supporting Windows Live Mail 2011 with ribbons.
Improved stability.
Improved performance.
Fixed: Memory leak when moving or deleting many messages left wlmail.exe process running after closing it.
Changes from version 1.0.1 to 1.0.2
Released on June of 2010
Fixed: Memory leak when moving or deleting many messages left wlmail.exe process running after closing it.
Fixed: WLMail crashed when having an IMAP account.
Fixed: Getting a Toolbar object during the WLMailApiEvents::OnFolderSelectionChange event freezed WLMail.
Fixed the way WLMailApiAgent hooks the WLMail.exe process to avoid WLMailApiLoader.dll to be loaded in every process.
Implemented: WLMailApiEvents::OnNewMessageInOutbox event that allows to modify and commit outgoing messages.
Implemented: IWLMailApiEvents::OnSendButtonMsgWndClicked which is triggered when a new message window is set to be sent.
Implemented: MsgWnd::GetTo(), GetCc(), GetBcc(), GetSubject(), SetTo(), SetCc(), SetBcc() and SetSubject().
Added IMailAccountManager and IMailAccount interfaces to get the Default Account.
Implemented: FolderManager::GetInboxFolder(), GetDraftFolder(), GetSentFolder(), GetJunkFolder(), GetDeletedFolder() for the Default Account.
Implemented: Folder::IsInbox(), IsDraft(), IsSent(), IsJunk(), IsDeleted() functions for Default Account special folders.
Implemented: FolderManager::GetOutboxFolder() and Folder::IsOutbox() functions.
Added Unicode support to main API functions:
IFolderManager::CreateFolder() and RenameFolder()
IFolder::GetName(), Rename(), CreateFolder() and CreateMessage()
IMessage::GetSubject(), GetAllBody(), GetBody(), GetBodyText(), GetBodyDisplayName(), GetFilename() and SaveAsFile()
IMessage: For GetBodyProp() and SetBodyProp() functions, the message must be already encoded in Unicode
WLMail API Licence
WLMailAPI License
WLMailAPI is licensed under a developer basis and a product basis: You have to purchase a license for each developer that will use the library or by each product that will be developed using the library, taking into account whichever number is greater.
For example:
If three developers make one product, three licenses must be bought.
If one developer makes three products, three licenses must be bought.