PRL_RESULT LoginLocal(PRL_HANDLE &hServer) { PRL_HANDLE hJob, hJobResult = PRL_INVALID_HANDLE; PRL_RESULT err, nJobReturnCode = PRL_ERR_UNINITIALIZED; err = PrlApi_InitEx(PARALLELS_API_VER, PAM_DESKTOP, 0, 0); if (PRL_FAILED(err)) { fprintf(stderr, "PrlApi_InitEx returned with error: %s.\n", prl_result_to_string(err)); PrlApi_Deinit(); return err; } err = PrlSrv_Create(&hServer); if (PRL_FAILED(err)) { fprintf(stderr, "PrlSvr_Create failed, error: %s", prl_result_to_string(err)); PrlApi_Deinit(); return err; } hJob = PrlSrv_LoginLocal(hServer, NULL, NULL, PSL_NORMAL_SECURITY); err = PrlJob_Wait(hJob, 1000); if (PRL_FAILED(err)) { fprintf(stderr, "PrlJob_Wait for PrlSrv_Login returned with error: %s\n", prl_result_to_string(err)); PrlHandle_Free(hJob); PrlHandle_Free(hServer); PrlApi_Deinit(); return err; } err = PrlJob_GetRetCode(hJob, &nJobReturnCode); if (PRL_FAILED(err)) { fprintf(stderr, "PrlJob_GetRetCode returned with error: %s\n", prl_result_to_string(err)); PrlHandle_Free(hJob); PrlHandle_Free(hServer); PrlApi_Deinit(); return err; } if (PRL_FAILED(nJobReturnCode)) { PrlHandle_Free(hJob); PrlHandle_Free(hServer); fprintf(stderr, "Login job returned with error: %s\n", prl_result_to_string(nJobReturnCode)); PrlHandle_Free(hJob); PrlHandle_Free(hServer); PrlApi_Deinit(); return err; } return PRL_ERR_SUCCESS; }
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); PrlVmUptimeTest test; PrlApi_InitEx(PARALLELS_API_VER, PAM_SERVER, 0, 0); QTest::qExec(&test, argc, argv); PrlApi_Deinit(); }