Unlike the wrapping feature built into Instant Protection PLUS 3, the Instant Protection PLUS 3 DLL (IP2LIB32.DLL or IP2LIB64.DLL) requires that you make a simple source code change to your application in order to use it; however, it allows you to use Instant Protection PLUS 3 with programs that cannot be wrapped (through standard Platform Invoke calls), such as .NET and 64-bit applications.
IP2LIB32.DLL is a 32-bit DLL and may not be called directly from a native 64 bit application. Likewise, IP2LIB64.DLL is a 64-bit DLL and may not be called directly from a native 32-bit application.
Instant Protection PLUS 3 version 3.1.0.3 or higher is required to use the Instant Protection PLUS 3 API with the Instant Protection PLUS 3 DLL.
When installing Instant Protection PLUS 3, both DLLs are installed to the Instant Protection PLUS 3 installation directory.
On 32 bit versions of Windows, the IP2LIB32.DLL file is copied to the System32 folder (usually C:\Windows\System32).
On 64 bit versions of Windows, IP2LIB32.DLL is copied to the SysWOW64 folder (usually C:\Windows\SysWOW64), and the IP2LIB64.DLL file is installed to the System32 folder (usually C:\Windows\System32). If you find the names of the system folders confusing, refer to Microsoft's documentation for additional details on the role each folder plays on 64 bit versions of Windows.
Calling conventions define how functions or subroutines receive parameter data from the calling code, as well as how the a result is returned. The default calling convention used by your application can vary on operating system, processor architecture, and the programming language used. If you are using an include file provided with the samples, then the calling conventions will already be specified correctly for your application. However, if you find you need to define the function prototypes for calling functions, then using the correct calling convention is imperative. The calling conventions used are as follows:
The File Output step in the wizard for using the Instant Protection PLUS 3 DLL includes saving a secure XML configuration file which is used by the DLL. This file contains all the wizard settings you've chosen and also includes the decryption key and the return key. A screen shot of this step is provided below:
Help me integrate this: Clicking this button will open the Instant Protection PLUS 3 manual which will guide you through the process of integrating this in your source code. It is pivotal that you save your Instant Protection PLUS 3 project (.ipp file) before proceeding with this step. It is also critical that you save your Instant Protection PLUS 3 project (.ipp file) to a known location that is backed up regularly.
Create new keys: This button allows you to create new keys used to secure the saved file.
Changing either or both of the keys listed above will break compatibility with older versions of your application which used different keys. Therefore, changing these keys will require that you ship a new version of your application that supports them with the new secure file.
Decryption Key:The key required to decrypt the settings stored in the XML file. You will need to use this key in your application's source code. For more details, view the Samples Overview.
Return Key: The Instant Protection PLUS 3 DLL (IP2Lib32.dll and IP2Lib64.dll) will only return this value to your program when it should continue to run. Any value other than this will mean that your application should not continue running, and may also represent an error code.
DPI Setting: Select how the license UI will detect DPI Awareness in order to scale the licensing dialog's text on systems with DPI settinsgs higher than 100%.
It is recommended to leave this setting on Auto-detect DPI Awareness unless your protected application shows UI scaling issues. If your protected application does have scaling issues, you may turn the setting on or off to fix the issue. See the FAQ for more information.
I am protecting a DLL: Select this option to prevent the application from hanging when loading your protected DLL. Do not check this if your application is not a DLL.
Prevent itself from running in virtual machines: Instant Protection PLUS 3 will detect if your application is running within Microsoft Hyper-V, Microsoft Virtual PC, Parallels, Virtual Box, VMWare, or Xen Server guests, and if so an error will be displayed on startup and the application will exit. This option can help prevent users from bypassing activation on additional computers by copying virtual machine guests to additional host computers. Additionally, you can leverage this option to create two builds of your application (using two Instant Protection PLUS 3 projects) to require your Mac computer users to use separate license locations and activations between BootCamp and virtual machine guest environments (such as Parallels or VMWare Fusion, which are often used to boot and run the same Windows OS installation as BootCamp).
Prevent itself from running in Terminal Services: Instant Protection PLUS 3 will detect if your application is running within Terminal Services, and if so an error will be displayed on startup and the application will exit.
Use the Instant Protection PLUS 3 API: Allows application developers to make calls into the licensing code in order to retrieve and update license information. Do not check this if you are not using the Instant Protection PLUS 3 API. See the Instant Protection PLUS 3 API Overview for more information.
File to save: The full path to where your application's XML configuration file will be saved. Click the folder button to browse to a location to save this file. This only sets the file path, and you must click Save XML to actually save the file to that path.
Save XML: Saves the XML configuration file to the path specified in File to save. Any existing file with the same name will be overwritten without warning.
Save your XML configuration file whenever you make changes to your project settings. This newer version of your XML file must replace older versions in order to reflect the new settings, which would most commonly be a version number update.