This protection interface implementation provides alternate way of using advanced protection interface functions and is intended for Microsoft .NET Framework, .NET Core and .NET 5 managed applications and any native Windows applications which are not able to use default advanced protection interface implementation.

If you are using programming languages such as C/C++, Delphi or Visual Basic to build native Windows applications you should use default advanced protection interface.

General implementation steps

"Enable protection interface" and "Enable alternate protection interface" protection interface options are mandatory. If enable, protection interface data can be obtained from protected application.

If you intend to use your own user interface dialogs (activation dialog for example) you also need to enable demo mode together with date or exec limitation and "Protected application will handle expired demo option" option.

Set "Protected application will handle license management" option if you are going to manage license removal, update or license transfer.

Set "Protected application will handle expired license" option to manage expired limited license.

Sample source code

We've prepared sample source code projects for accessing advanced protection interface functions by using alternate protection interface. Provided source code can be freely modified to suit your specific needs.

Sample applications (Visual Studio 2019 projects) are included in full featured version only and installed in \pcgi\pcgi\net and \pcgi\netcore folders.

The following sample projects are currently available:

- altpcgi_cpp_sample

Sample C/C++ console application which demonstrates usage of alternate protection interface.

Included header file (altpcgi.h) contains all required alternate protection interface definitions.

- altpcgi_csharp_sample

Sample C# .NET Framework console application which demonstrates usage of alternate protection interface.

Sample class (AltPcgi.cs) for accessing all advanced protection interface functions via alternate protection interface implementation is included in this sample.

- altpcgi_wpf_csharp_sample

Sample C# WPF .NET Framework application which demonstrates usage of alternate protection interface and includes usage of customized activation dialog.

Sample class (AltPcgi.cs) for accessing all advanced protection interface functions via alternate protection interface implementation is included in this sample.

- altpcgi_netcore_csharp_sample

Sample C# .NET Core (.NET 5) console application which demonstrates usage of alternate protection interface.

Sample class (AltPcgi.cs) for accessing all advanced protection interface functions via alternate protection interface implementation is included in this sample. 

- altpcgi_vbnet_sample

Sample VB.NET .NET Framework console application which demonstrates usage of alternate protection interface.

Sample class (AltPcgi.vb) for accessing all advanced protection interface functions via alternate protection interface implementation is included in this sample. 

NOTES:

- This implementation requires presence of interface DLL.

- Interface DLL is in this case used as a link between protected application and our protection code embedded into it.

- If main EXE application and multiple DLL modules are protected and if alternate protection interface is enabled for all modules, only advanced protection interface functions from main EXE can be accessed in this way. This means that both EXE and DLL code will make calls to functions located in main EXE.

- Since default interface DLL name can be changed in project settings be sure that you are using correct (custom) name when implementing alternate protection interface.

- Be sure to use 32bit version of interface dll for 32bit applications and 64bit version for 64bit applications.