Last Modified October 1, 2026
- Home
- Guides
- Custom Activation
- De-Activate the License
Custom Activation - De-Activate the License
You would use the DNA_Deactivate API call for the following license types:
- Single-User / Multi-Computer Licenses without the "Roll-Over Re-activation" option
- Multi-User ("x-seat" licenses)
- Floating Licenses
To allow your Users to install the application on a different computer, the License needs to be de-activated on the
current computer.
Typically, you would provide a menu item in your software application that allows the de-activation of the software.
The DNA_Deactivate API Call requires the License Password which must be captured from the User
or the "derived" password if your product does not use "User Authentication".
For Floating Licenses, you would include the DNA_Deactivate call in the "Close" event handler
of your Application.
See Using the Custom Activation Process with Floating Licenses
for details.
The DNA_Deactivate() API call will perform the following:
- disable the CDM license file on the User’s computer
- instruct the DNA Server to free-up (i.e. delete) the "Computer" or the
"Seat"
for this computer which can then be used by another computer / user.
De-Activate the License
Highlighted lines indicate where additional code is required or needs to be modified.
//************** De-Activation code **********************//
//
// For de-activation of the License to allow the User to install on another
// computer, the following code should be included
// in the response to a "De-Activate" button click or menu selection
//
// For Floating Licenses, this needs to be included in the Close Event of your Application
//
// the DNA_Deactivate() call requires a <password> parameter that you need
// to capture from the User
errNo = DNA_Deactivate(DNA_product_key, password);
if (errNo == 0)
{
// deactivation was OK, exit the application
}
else
{
// error occurred, quit the application
// optionally, you can display an error message
// you can use DNA_ERROR() which translate the errNo into a more
// user-friendly description, or use your own descriptions
DNA_Error(errNo,buffer,sizeof(buffer));
// display error explanation
// quit the application
}