Managing LicensesThe Parallels license information can be retrieved using the The following sample function demonstrates how to obtain license information and how to install a new license. PRL_RESULT UpdateLicenseSample(PRL_HANDLE hServer) { PRL_HANDLE hJob = PRL_INVALID_HANDLE; PRL_HANDLE hJobResult = PRL_INVALID_HANDLE; PRL_HANDLE hLicense = PRL_INVALID_HANDLE; PRL_HANDLE hUpdateLicense = PRL_INVALID_HANDLE;
PRL_RESULT ret = PRL_ERR_UNINITIALIZED; PRL_RESULT nJobReturnCode = PRL_ERR_UNINITIALIZED;
// Get the license info from the Parallels Service. hJob = PrlSrv_GetLicenseInfo(hServer); // Wait for the job to complete. ret = PrlJob_Wait(hJob, 1000); if (PRL_FAILED(ret)) { // Handle the error... return -1; }
// Analyze the result of PrlSrv_GetUserInfoList. ret = PrlJob_GetRetCode(hJob, &nJobReturnCode); if (PRL_FAILED(ret)) { // Handle the error... PrlHandle_Free(hJob); return -1; } // Check the job return code. if (PRL_FAILED(nJobReturnCode)) { // Handle the error... PrlHandle_Free(hJob); return -1; }
// Get job result. ret = PrlJob_GetResult(hJob, &hJobResult); PrlHandle_Free(hJob); if (PRL_FAILED(ret)) { // Handle the error... return -1; }
// Get parameter from job result. ret = PrlResult_GetParam(hJobResult, &hLicense); PrlHandle_Free(hJobResult); if (PRL_FAILED(ret)) { // Handle the error... return -1; }
// Get company name. PRL_CHAR sCompany[1024]; PRL_UINT32 nCompanyBufSize = sizeof(sCompany); ret = PrlLic_GetCompanyName(hLicense, sCompany, &nCompanyBufSize); if (PRL_FAILED(ret)) { // Handle the error... PrlHandle_Free(hLicense); return -1; } printf("Company: %s\n", sCompany);
// Get user name. PRL_CHAR sUser[1024]; PRL_UINT32 nUserBufSize = sizeof(sUser); ret = PrlLic_GetUserName(hLicense, sUser, &nUserBufSize); if (PRL_FAILED(ret)) { // Handle the error... PrlHandle_Free(hLicense); return -1; } printf("User: %s\n", sUser);
// Get license key. PRL_CHAR sKey[1024]; PRL_UINT32 nKeyBufSize = sizeof(sKey); ret = PrlLic_GetLicenseKey(hLicense, sKey, &nKeyBufSize); if (PRL_FAILED(ret)) { // Handle the error... PrlHandle_Free(hLicense); return -1; } printf("Key: %s\n", sKey);
// See license type. PRL_BOOL isTrial = PRL_TRUE; ret = PrlLic_IsTrial(hLicense, &isTrial); if (PRL_FAILED(ret)) { // Handle the error... PrlHandle_Free(hLicense); return -1; } printf("Trial: %d\n", isTrial);
PrlHandle_Free(hLicense);
// Update the license info. // Here, we use the same license information that we // retrieved earlier. Normally, you would use the // information that you received from // your Parallels product distributor. hUpdateLicense = PrlSrv_UpdateLicense(hServer, sKey, sUser, sCompany); // Wait for the job to complete. ret = PrlJob_Wait(hUpdateLicense, 1000); if (PRL_FAILED(ret)) { // Handle the error... return -1; }
PrlHandle_Free(hUpdateLicense); } |
||||
|