void CSdlAppUi::StartTestL(TInt aCmd) { //TInt flags = CSDL::EDrawModeGdi | CSDL::EEnableFocusStop // | CSDL::EMainThread;// | CSDL::EAutoOrientation; TInt flags = 0; //flags |= CSDL::EDrawModeDSB | CSDL::EDrawModeDSBDoubleBuffer; flags |= CSDL::EDrawModeGdi; // Don't draw when in background. //flags |= CSDL::EEnableFocusStop; flags |= CSDL::EAutoOrientation; // This should be on by default anyway flags |= CSDL::EMainThread; //Create CommandLine Arguments and read it. CDesC8ArrayFlat *arr = new (ELeave) CDesC8ArrayFlat(1); CleanupStack::PushL(arr); CCommandLineArguments* args = CCommandLineArguments::NewLC(); // The real args we are interested in start at the 2nd arg for (TInt i = 1; i < args->Count(); i++) { TBuf8<256> arg; arg.Copy(args->Arg(i)); arr->AppendL(arg); //TPtrC argumentPrt(args->Arg(i)); //console->Printf(_L("Arg %d == %S\n"), i, &argumentPrt); } iSdl = CSDL::NewL(flags); iSdl->SetContainerWindowL(iSDLWin->GetWindow(), iEikonEnv->WsSession(), *iEikonEnv->ScreenDevice()); iSdl->CallMainL(iWait->iStatus, *arr, flags, 0x14000); iWait->Start(); arr->Reset(); CleanupStack::PopAndDestroy(2); // command line and arr }
TCertStatus PkiUtil::GetValidCaCertSubjectNameListL(RPKIServiceAPI& aPkiService, const CArrayFixFlat<TCertInfo*>& aIkeCAList, CDesC8ArrayFlat& aCaCertNameList) { TCertStatus status = ECertValid; RPointerArray<CX509Certificate> certificateList; TRAPD(err, certificateList = PkiUtil::GetCaCertListL(aPkiService, aIkeCAList)); switch(err) { case KErrNone: for (TInt i = 0; i < certificateList.Count(); ++i) { const CX509Certificate* cert = certificateList[i]; status = CertStatusL(*cert, -1); if (status == ECertValid) { const CX500DistinguishedName& subjectName = cert->SubjectName(); HBufC* subjectNameString = PkiUtil::CertDnL(subjectName); CleanupStack::PushL(subjectNameString); // Reserve enough space for UTF-8 TInt len = 3*( subjectNameString->Length() ); HBufC8* subjectNameString8Bit = HBufC8::NewLC(len); TPtr8 subjectNameString8BitPtr = subjectNameString8Bit->Des(); if (CnvUtfConverter::ConvertFromUnicodeToUtf8(subjectNameString8BitPtr, *subjectNameString) != 0) { User::Leave(KErrCorrupt); } TRAPD(err, aCaCertNameList.InsertIsqL(*subjectNameString8Bit)); CleanupStack::PopAndDestroy(subjectNameString8Bit); CleanupStack::PopAndDestroy(subjectNameString); err = (err == KErrAlreadyExists) ? KErrNone : err; User::LeaveIfError(err); } else { aCaCertNameList.Reset(); break; } } break; case KErrNotFound: // Flow through case KErrArgument: // CA cert is not found if policys CA DATA is invalid status = ECertNotFound; break; default: certificateList.ResetAndDestroy(); certificateList.Close(); User::Leave(err); } certificateList.ResetAndDestroy(); certificateList.Close(); return status; }