Last Modified September 29, 2026
- Home
- Guides
- How To ...
- Implementing PREFIX Option
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:
At Application Start-up
Authenticate the DNA Library
Set the CDM License File location
Try to retrieve a License Code using DNA_PARAM("ACTIVATION_CODE")
Extract the PREFIX and choose a <Product_Key>, or use a default <Product_Key> if code is <blank>
Check if there is a valid CDM License File with DNA_Validate()
- Yes, then run the application
- No, proceed to Activation
Activation
- Get a License Activation Code, License Password(*) and Email from the User
- Extract the PREFIX and choose a <Product_Key>
- Call the
DNA_Activate() API call
(*) Not required if "User Authentication" is not used