Protection PLUS 4 SDK release notes

This file was last updated on December 21, 2015.

This document contains release notes for SoftwareKey Protection PLUS 4. Information in this document is more current than that in the installed manual or online help.

Important: Maintenance Releases Only

As of version, all future Protection PLUS 4 SDK releases will only contain bug, security, or other critical fixes and changes. All customers still using version 4 are encouraged to contact us about upgrading to Protection PLUS 5.

Important: Protection PLUS unbundled

Though they were previously bundled into one product, the vast majority of our Protection PLUS customers were using either Instant Protection PLUS (previously called Instant PLUS) or Protection PLUS SDK.

As of Instant Protection PLUS 3.3 and later, Instant Protection PLUS 3 and Protection PLUS 4 and 5 SDK are separate products.

There are several advantages for our customers with unbundling:

Don't worry, most existing Protection PLUS customers that have active maintenance will be able to access both products using their existing license. You can read more about this change on our blog: Two Products are Better than One - A Case for Unbundling Protection PLUS.

Release Notes

This section contains details on the incremental changes included with each new release of Protection PLUS 4.
Protection PLUS 4 SDK version
Released December 21, 2015
  • Important! Updated OpenSSL to 1.0.2e, which contains updates that address various security advisories.
  • SK_ActivateInstallation can now return the activation password for a license when activation is successful. If you currently store the customer password in the license file, we strongly advise you transition to storing the activation password to improve security.
  • Fixed an issue where a Hyper-V guest environment might not be detected by pp_sysinfo when accessed through RemoteFX.
  • Fixed an issue where SwkClientServices2005.dll would not return the date a license was deactivated.
  • Fixed an issue where pp_gotourl did not open the URL with Internet Explorer on Windows 8.1 and Windows 10.

Compatibility Notes

This release includes a few notes regarding compatibility. Since Protection PLUS 4 SDK is in maintenance mode, and will not see new features, support for newer development tools and operating systems may be limited going foraward. Please consider upgrading to Protection PLUS 5 SDK.

  • Libraries and applications included with Protection PLUS 4 SDK work on Windows 10 with no known issues.
  • When using Enhanced Computer ID algorithms, licensed applications installed on a system undergoing the free upgrade to Windows 10 should expect to see ten votes for the Computer ID changes. This includes changes for: Windows Product ID, Memory Size, SID. This falls well below the default threshold of twenty votes, meaning most users of licensed applications will have a seamless experience after upgrading to Windows 10. However, this may vary for some users based on driver changes and driver support for the individual computer (which is outside of our control) and could result in the user being prompted to reactivate after upgrading to Windows 10.
  • When users upgrade Windows 10 to the 1511 (November 2015) update, the Windows Product ID and BIOS Revision Date will change. Licensed applications using the corresponding Legacy Computer ID algorithms may require reactivation after installing this update. Licensed applciations using the Enhanced Computer ID algorithms will see the changes result in 7 votes, which is well below the default threshold of 20 votes.
  • Visual Studio 2015 and later is not officially supported with Protection PLUS 4 SDK. However, it should still be possible to use Visual Studio 2015 with the exception of applications that use the static KeyLib libraries with the new C runtime.
  • Licensed applications/add-ins/macros running in Office 2013 when installed through Office 365, and any installation of Office 2016, may experience registry access problems. Anyone using EZTrial should consider migrating to Instant Protection PLUS 3. Anyone not using EZTrial should consider using HKEY_CURRENT_USER locations for license files and aliases stored in the registry, while keeping in mind using per-user locations exclusively will require each user on a computer to activate.

Protection PLUS 4 SDK version
Released April 10, 2015
  • Important! Updated OpenSSL to 1.0.2a, which contains updates that address various security advisories.
  • The Enhanced Computer ID algorithm now ignores MAC addresses for additional removable USB and Bluetooth devices. This update especially focused on adapters that may have previously affected this algorithm when a computer used a tethered connection via a mobile device.

Protection PLUS 4 SDK version
Released October 3, 2014
  • Instant PLUS is no longer installed with Protection PLUS 4. Instant PLUS may still be downloaded and installed/updated by users with active Protection PLUS 4 software maintenance.
  • New! Now installs digitally signed libraries, which is often necessary for Microsoft certifications.
  • New! Added Visual Studio 2013 MFC sample projects and solutions for the KeyLib API. Customers using the ActiveX (SKCL) or .NET (SKCLNET) APIs should especially consider upgrading to Protection PLUS 5.
  • Updated OpenSSL to 1.0.1i.
  • Migrated the Protection PLUS 4 manual to a newer system that can generate web content that supports modern web browsers.
  • Updated the Protection PLUS 4 manual's references to the C/C++ license file handle type definition to use PPLFHANDLE, which is necessary to use when using x64 versions of KeyLib.
  • Updated the installer so shortcuts are prefixed with "Protection PLUS 4", making it easier to distinguish between other SoftwareKey Licensing System products in the Windows 8 start screen and search results.
  • Updated the Enhanced Computer ID algorithms to ignore Microsoft Virtual WiFi Miniport adapters.
  • Fixed an issue where the Automation Client (SKCA) could crash when given malformed encryption key data.
  • Fixed an issue where pp_sysinfo could falsely detect Hyper-V when run on a Microsoft Surface device.
  • Added LFOPEN_AS64BIT flag, which can be used to initialize 64 bit registry and alias locations from a 32 bit process. This was primarily implemented for Instant PLUS and later.

Protection PLUS
Released January 29, 2013
  • Includes Instant PLUS
  • New! Added Visual Studio 2012 sample projects and solutions.
  • New! Updated Microsoft Access samples to support Office 2003 - 2013.
  • New! Added support for Parallels and Xen Server virtual machine detection in pp_sysinfo.
  • Added a new SWKERR_CANNOT_PARSE_RESPONSE error to the Automation Client to avoid ambiguity.
  • Updated pp_gotourl to work with Internet Explorer 10. Before this update, it will open Internet Explorer 10, but failed to navigate to the appropriate URL.
  • Updated the Protection PLUS icon.
  • Updated the Protection PLUS launcher application to include a button for deactivating the workstation, and updated the installer to omit the "Deactivate Workstation" shortcut for Windows 8 and later (so this no longer clutters the Windows 8 Start screen).
  • Updated the Enhanced Computer ID Algorithms to use GetAdaptersAddresses on Windows XP and later. This prevents a possible issue in Windows XP only where the older GetAdaptersInfo function could leak handles.
  • Fixed an issue with pp_sysinfo where VMWare detection could crash in a Virtual Box guest.
  • Fixed an issue with pp_getcompnoxml could crash when given an uninitialized buffer.
  • Fixed an issue with the Automation Client's SK_ConnectionState function which could lead to handle leaks.
  • Fixed an issue where the Automation Client could crash with HTTP POSTs.

Protection PLUS
Released January 23, 2012
  • Includes Instant PLUS
  • Fixed pp_lflock issue where trying to write to a locked file would result in Error 5 - ERR_CANNOT_WRITE_FILE.
  • SK_Firewall now properly handles COM initialization/uninitialization.
  • WithSOLO samples using the XmlActivationService web service now contain TODO: comments to update the Encryption Key data for your own account.

Protection PLUS
Released September 1, 2011
  • Includes Instant PLUS
  • New! COMPNO_NO_WMI flag for pp_eztrial1ex.
  • New! GOTOURL_USE_CREATEPROCESS flag for pp_gotourl for use in protected DLLs where ShellExecute might cause the application to hang.
  • New! Support for opening a license file from read-only media.
  • New! Samples for Visual Studio 2010.
  • Fixed Windows 7 virtual machine detection issues with 64-bit applications.
  • SK_ConnectionState now properly handles the SK_SECURE_CONNECTION flag to use SSL.

Protection PLUS
Released August 12, 2010
  • Includes Instant PLUS
  • New! Microsoft Hyper-V and VirtualBox virtual machine detection algorithms to SysInfo function.
  • New! CPCompNoXml properties to the ActiveX/.NET interfaces for use with SOLO's XML Activation Service.
  • Processing an EZ Trigger trigger code now forces updating the Last Used Date/Time.
  • All copy-protection functions now used cached Enhanced Computer ID data if found in the license file handle.
  • Support for caching the license file in the license file handle has been added.
  • Added new web service response properties to ClientServices library.
  • Updated Delphi samples to resolve warnings due to Delphi 2009/2010 using Unicode strings by default.
  • Updated .NET samples using the XmlActivationService via the ClientServices library for correct error handling.
  • Fixed a bug that caused incorrect date comparison with aliases when the Last Used Date/Time was zeroed out.
  • Removed support for LFOPEN_NOCACHE flag.
  • Various other enhancements and fixes.
  • Numerous documentation updates.

Protection PLUS
Released February 12, 2010
  • Includes Instant PLUS
  • New! Supports transferring your license by clicking "Deactivate Workstation" in the Start Menu.
  • New! Native 64-bit support via DLL and static libraries.
    • 64-bit applications can now share license files/aliases by using the LFOPEN_AS32BIT flag.
  • New! Automation Client functions for calling the XmlActivationService and other XML web services.
    • A new VB6 sample named XmlActivationServiceTest demonstrates calling these functions.
  • New! The Client Services .NET library has been updated with support for the XmlActivationService.
    • The WithSOLO .NET samples have been updated to use the new functionality.
  • New! Protection PLUS functions for generating hashed ActivationData based of the hardware items of the Enhanced Computer ID algorithms. This can be sent to SOLO during activation to allow reactivation on the same computer.
  • New! Added license file field for storing the Installation ID.
  • New! Static libraries that target the dynamic C Run-Time libraries. Use these to avoid linker errors. The library names are appended with '_md' to indicate the difference.
  • Added support for reading and writing to the last used UTC date fields.
  • All Visual Studio sample projects have been upgraded for VS2005 and VS2008 support.
  • The offline activation HTML file now displays a link in case redirection to SOLO Server fails.
  • Fixed intermittent (but rare) crashes encountered by some users.
  • Fixed registry permissions issues for limited user accounts.
  • Fixed a bug in pp_semopen() that resulted in the second semaphore file being incorrectly named ''.
  • Resolved an issue where the .NET component (SKCLNET.dll) could incorrectly update the Last Used Info.
  • Resolved an issue where the system time (not date) could be backdated if the EZTrial parameters were not set.
  • Various other enhancements and fixes.
  • Numerous documentation updates, including references for all newly added functions.

Protection PLUS (4.6 Beta 1)
Released March 20, 2009
  • Includes Instant PLUS (includes 64-bit application support).
  • New! 64-bit static library and DLL; KeyLib64.dll/SKeyLib64.lib and SKCA64.dll/SKCA64S.lib.
  • New! Data types for 64-bit (requires using the _WIN64 preprocessor directive): PPLFHANDLE, LPPPLFHANDLE, PPHWND (Note: these are #ifdef'd and remain defined as LONG in 32-bit and HGLOBAL, HGLOBAL *, and HWND respectively in 64-bit. Please refer to KEYLIB.h for specifics.)
  • Enhanced Computer ID Algorithm (ECID) Updates:
    • Updated so the MAC Address algorithm no longer applies its votes if no data is present/found.
    • Updated so the Windows Product ID algorithm has support for 64-bit Windows Vista. A vote will not be added for a license that previously held no data.
    • Updated to omit WMI data for protected DLLs passing in COMPNO_NO_WMI to prevent the potential for a program to hang while while the ECID algorithm updates the authorized computer with accepted hardware changes.
  • Removed functions pp_convertv3 and pp_getcode (use pp_eztrig1 or pp_eztrig1dlg instead).

Protection PLUS
Released November 13, 2008
  • Includes Instant PLUS
  • New! UTC support, which is especially useful for network floating licenses.
    • New! pp_getdateex function, which accepts a PP_USE_UTC flag.
    • New! pp_gettimeex, which accepts a PP_USE_UTC flag.
    • pp_upddate stores both the local system time and the UTC time in the license file for backwards compatibility.
    • pp_valdate checks agains the UTC time if available, and falls back to the local system time if not.
    • Updated sample function imports to include the function prototypes for pp_getdateex and pp_gettimeex.
  • New! COMPNO_NO_WMI flag to omit WMI data retrieval with the Enhanced Computer ID algorithms. This is to address potential conflicts with CoInitialize, which is especially important when protecting DLLs (since CoInitialize may not be called in DllMain).
  • Enhanced performance of the SID retrieval in Enahnced Computer ID algorithms.
  • Updated the COMPNO_IPADDR algorithm to accept a drive letter (previously it required that the drive letter be followed by a colon).
  • Fixed an issue with the Enhanced Computer ID algorithms which could cause a false match of hard drive model data.
  • Updated release notes from a plain-text format to an HTML format.
  • Updated the offline activation (pp_importactfile) function to pull down registration data from SOLO if available.
  • Fixed issue in the alias scatter algorithm which could cause a crash in Windows 98.

Protection PLUS (Release Candidate 1)
Released May 8, 2008
  • Includes Instant PLUS
  • New! Instant PLUS DLL interface can be used with .NET applications. Anyone using EZTrial2 should consider switching to the Instant PLUS DLL interface for many new features.
  • New! EZTrigger code 37 for Network Floating. This code combines trigger codes 28 and 33 into one step.
  • COMPNO_HDSERIAL algorithm now supports passing a drive letter of "1" to use the drive where the executable is located. This can be used to lock the application to most types of removable media, such as USB thumb drives.
  • SwkClientServices.dll is now strong named.
  • Fixed a rare issue where the license file can be corrupted (becomes zero bytes) if the application is terminated abnormally while writing to the license file.
  • Updated the COMPNO_ENHNACED algorithm so the single ID changes less often. The single ID should only be used for telephone activations.
  • Updated the COMPNO_WINPRODID algorithm for 64-bit Windows Vista support.
  • Fixed an issue where offline activation (activation from another machine with Internet access) failed on 64-bit Windows.
  • Added License Return functionality to the VB.NET EZT_ELM sample.
  • Added an LFClose method which updates the last used date and time and closes the license file.
  • Quick Start now recommends using the Instant PLUS DLL in favor of EZTrial2.
  • Updated FAQ.

Protection PLUS and earlier
  • Older release notes can be found here.

Known Issues

Known issues with the latest release...
  • 64-bit Protection PLUS libraries do not have any support for the legacy BIOS algorithm.
  • pp_npdate fails in Windows Vista and higher when the UAC is enabled.
  • SK_GetTCDataDlg() is not supported in the static library.
  • pp_netopen, pp_nettest, and pp_netclose are not supported in the 64-bit libraries.
  • pp_compno32drivers is not available in the 64-bit libraries.
  • When protecting a DLL and using the Enhanced Computer ID algorithms, it is important to use the COMPNO_NO_WMI flag to avoid a potential hang.
  • When protecting a Visual Basic 6 application and using the Enhanced Computer ID algorithms, the Computer ID may differ when running from the IDE versus running a compiled executable directly. This is because of known behavior with CoInitializeSecurity as documented in Microsoft KB 239561. The application will still activate and run correctly on the computer on which development is being done, even though the Computer IDs differ.

Contact Information

Find out how to contact us for questions, comments, and technical support.

Concept Software, Inc.

Contact us through our web site:

Online Support

We have several online support options available to you, including:

  • Online Searchable Knowledgebase
  • News History and Newsletter signup
  • Online Forum
  • Downloads

Online support can be reached at

Downloading updates and renewing subscriptions

Both downloading updates and renewing subscriptions may be done online in the Customer License Portal.

  • Go to
  • Click Customer Login at the top.
  • Once logged in, click on the Downloads button to download software updates.
  • To renew software maintenance, click Renewals & Upgrades button. Choose either the appropriate software maintenance renewal or an upgrade option. Review the EULA and complete the purchase via the Shopping Cart facility.