Last Modified September 29, 2026

Implement the PREFIX Option

  1. Overview
  2. Implementing PREFIX for Custom and SteamLined Activation

 

You can use the License Code PREFIX option for different reason such as:

  • You offer multiple products (i.e. executables) and use a different PREFIX for each product as a convenient identifier for your License Codes.

  • You offer multiple "versions" of functionality (ex: "Standard" version and "Pro" version), offered at different prices on your store-front, yet running from the same executable.

  • You offer different License schemes such as Multi-Computers of 1, 2 and 3 on your store-front, at different prices, yet still running from the same executable.

  • You have "Resellers" to which you each assign a PREFIX, and provide them with "Restricted Access" to your DNA Control Panel to view / manage licenses with the assigned PREFIX

    See Restricted User Permissions  

See License Code PREFIX   .

The following explains how to use the License Code PREFIX option when you want to offer multiple "versions" or licensing schemes for the same Application while using the same underlying EXE. For example, you would like to offer a "Single-User" version and a "Multi-User" option.

How you implement the PREFIX option in your Application code will depend on which Activation approach you are using:

 

Implementing PREFIX for Custom and StreamLined Activation

The activation process flow described for the Custom and StreamLined Activation need to be augmented as follows:

  • you will need to add the different <Product_Key>’s as constants in your App
  • after the DNA_SetProperties("CDMPATHNAME",<cdmPathName>) API call, and before any other API calls, you will need to determine which <Product_Key> to use for the next DNA API calls. To do this, you would use the DNA_PARAM("ACTIVATION_CODE") call which would return the License Code (if a CDM file exists), or a <blank>
    • if a license code is returned, extract the PREFIX (depends on how many characters were used for the PREFIX) in the DNA Product configuration) and select the corresponding <Product_Key>
    • if <blank> is returned, select for now, what you consider to be the "default" <Product_Key>.
      Because there is no CDM file, the next DNA_Validate() will trigger the Activation process
  • Proceed to the first DNA_Validate() call to validate the license
  • If activation is required (DNA_Validate() call fails), then you will be capturing a License Code from the User. Extract the PREFIX from this License Code (which may be different then the "default") and set the <Product_Key> accordingly.
  • You now have the correct <Product_Key> for the rest of the API calls.
    You can also set different Application options and configurations based on the PREFIX.

The updated process flow would be as follows: