Prior to calling this function, you must call DefineProduct and set the PrivateKey property. Note that including the PrivateKey in your code is not recommended. Creation of license keys should not typically be done from within the application but rather from a server that the user does not have access to.
C++: _bstr_t CreateLicenseKeyEx4 (DATE expiryDate, int expiryDuration, int numberOfLicenses, ELicenseType licenseType, BSTR machineID, int features)
C#: string CreateLicenseKeyEx4 (System.DateTime expiryDate, int expiryDuration, int numberOfLicenses, ELicenseType licenseType, string machineID, SAFEARRAY *Features)
ExpiryDate - The date when the license will expire. Use NULL if you do not want to specify an expiry date.
ExpiryDuration - The duration of the evaluation period in days. Use -1 if you do not want to specify a duration.
NumberOfLicenses - The number of licenses associated with the key. Use 1 if you do not want to use single activation licensing.
LicenseType - Specify the type of license to generate. See the definition of LicenseType below.
MachineID - A unique identifier for the machine. If you specify a ComputerName as the LicenseType, this argument must be the Computer Name. If you specify User Defined as the LicenseType, this argument can be anything you want. When validating the license key in your code, you will need to provide the same value to the ValidateLicenseEx function. To create a key that is not computer bound, set this argument to NULL and set the LicenseType to Generic.
Features - An array of feature sets. Each feature set is a value specifying the features that should be enabled in the created key. The value of the feature set is the or'ed value of all the features to be enabled in the set. To combine features, perform a bitwise OR operation on the required features.
A computer bound license key.