// ----------------------------------------------------------------------------- // XIMPTestPresenceDataUtils::InsertPrefixL // ----------------------------------------------------------------------------- // EXPORT_C void XIMPTestPresenceDataUtils::InsertPrefixL( const TDesC8* aPrefix, RBuf8& buf ) { if ( aPrefix ) { XIMPRBuf8Helper::GrowIfNeededL( buf, aPrefix->Length() + buf.Length() ); buf.Insert( 0, *aPrefix ); } }
void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr) { TRACE_FUNC_ENTRY TInt err = aErr; switch (aActive.ServiceId()) { case EHandleCommandRequest: { if(err == KErrNone) { if (iRemainingReplyLengthPckg()) { TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer)) iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer); do { TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg())) RBuf8 reply; reply.CreateL(iRemainingReplyLengthPckg()); err = iATExtClient.GetNextPartOfReply(*iRecvBuffer, iRemainingReplyLengthPckg()); if (!err) { reply.Insert(0, *iRecvBuffer); } TRACE_INFO((_L8("reply '%S'"), &reply)) iObserver.ATExtHandleReplyReceivedL(err, reply); reply.Close(); } while (iRemainingReplyLengthPckg()); } else { TRACE_INFO((_L8("reply '%S'"), iReplyBuffer)) iObserver.ATExtHandleReplyReceivedL(err, *iReplyBuffer); } } else { iObserver.ATExtHandleReplyReceivedL(err, iSystemReply); } break; } } TRACE_FUNC_EXIT }
EXPORT_C void CMMFFormatSelectionParameters::SetMatchToFileNameL(const TDesC& aFileName) { delete iMatchReqData; iMatchReqData = NULL; iMatchDataType = EMatchAny; // Extract the extension from the data passed in // Parse the path and extract the extension _LIT( KDot, "." ) ; _LIT8( KDot8, "." ); // If there is no dot "." in aFileName then assume that we have been passed the extension only (if KMaxExtLen or less) if ( (aFileName.Length() <= KMaxExtLen) && (aFileName.Find( KDot ) == KErrNotFound) ) { RBuf8 temp; CleanupClosePushL(temp); temp.CreateL(aFileName.Length()+1); User::LeaveIfError(CnvUtfConverter::ConvertFromUnicodeToUtf8(temp, aFileName)); temp.Insert(0,KDot8); iMatchReqData = CMatchData::CreateL(); iMatchReqData->SetMatchDataL(temp); CleanupStack::PopAndDestroy(&temp); } else if ( aFileName.Find( KDot ) == 0 ) // the first character is dot so assume extension only { RBuf8 temp; CleanupClosePushL(temp); temp.CreateL(aFileName.Length()); User::LeaveIfError(CnvUtfConverter::ConvertFromUnicodeToUtf8(temp, aFileName)); iMatchReqData = CMatchData::CreateL(); iMatchReqData->SetMatchDataL(temp); CleanupStack::PopAndDestroy(&temp); } else // We have been given the whole filename. Use TParse to extract the extension. { TParse parser ; parser.Set( aFileName, NULL, NULL ) ; if ( !( parser.NamePresent() ) ) User::Leave( KErrBadName ) ; if ( !( parser.PathPresent() ) ) { RFs fsSession ; User::LeaveIfError(fsSession.Connect()); TInt error = fsSession.Parse(aFileName, parser); fsSession.Close(); User::LeaveIfError(error); } // Parser should now have the full filename and path TPtrC extension = parser.Ext(); RBuf8 temp; CleanupClosePushL(temp); temp.CreateL(extension.Length()); User::LeaveIfError(CnvUtfConverter::ConvertFromUnicodeToUtf8(temp, extension)); iMatchReqData = CMatchData::CreateL(); iMatchReqData->SetMatchDataL(temp); CleanupStack::PopAndDestroy(&temp); } // If we're here, we must now have the file extension iMatchDataType = EMatchFileExtension; }
// // LtkUtils::W32CrackL // loads the autometric logging engine, dlogev.dll, into wserv // enabling Autometric to monitor events from within wserv - key/pointer events, text drawn to screen etc // EXPORT_C void LtkUtils::W32CrackL() { #ifndef FSHELL_WSERV_SUPPORT User::Leave(KErrNotSupported); #else // Check if P&S says it's already enabled, if so no need to do anything if (W32CrackIsEnabled()) return; _LIT(KWsIniFile, "z:\\system\\data\\wsini.ini"); _LIT(KCWsIniFile,"c:\\system\\data\\wsini.ini"); _LIT(KLogEv, "LOG EV\r\n"); // Open z file RFs fs; User::LeaveIfError(fs.Connect()); CleanupClosePushL(fs); RFile file; User::LeaveIfError(file.Open(fs, KWsIniFile, EFileRead)); CleanupClosePushL(file); TInt size; User::LeaveIfError(file.Size(size)); RBuf8 buf; buf.CreateL(size + KLogEv().Size()); CleanupClosePushL(buf); User::LeaveIfError(file.Read(buf)); TPtrC16 wptr((TUint16*)buf.Ptr(), buf.Size()/2); buf.Insert(2, TPtrC8((TUint8*)KLogEv().Ptr(), KLogEv().Size())); // +2 to get past the BOM TInt err = KErrNone; err = fs.MkDirAll(KCWsIniFile); // mkdir c:\system\data\ in case it is not exist if((err != KErrNone) && (err != KErrAlreadyExists)) { User::Leave(err); } User::LeaveIfError(file.Replace(fs, KCWsIniFile, EFileWrite)); User::LeaveIfError(file.Write(buf)); CleanupStack::PopAndDestroy(2, &file); // file, buf err = RMemoryAccess::LoadDriver(); if ((err != KErrNone) && (err != KErrAlreadyExists)) { User::Leave(err); } RMemoryAccess memAccess; User::LeaveIfError(memAccess.Open()); CleanupClosePushL(memAccess); RWsSession ws; User::LeaveIfError(ws.Connect(fs)); CleanupClosePushL(ws); #ifdef __WINS__ // On wins the binary isn't renamed _LIT(KWservMatch, "wserv*.exe*"); #else _LIT(KWservMatch, "EwSrv.exe*"); #endif TFindProcess find(KWservMatch); TFullName name; User::LeaveIfError(find.Next(name)); RProcess wservProc; User::LeaveIfError(wservProc.Open(find)); if (wservProc.ExitType() != EExitPending) { // in case wserv kicks off the preferred implementation in a new process then kills itself // (is one retry enough or should we be looping here?) wservProc.Close(); User::LeaveIfError(find.Next(name)); User::LeaveIfError(wservProc.Open(find)); } CleanupClosePushL(wservProc); name = wservProc.FileName(); name[0] = 'c'; TPtrC8 narrowName = name.Collapse(); User::LeaveIfError(memAccess.InPlaceSetProcessFileName(wservProc, narrowName)); // Now tell wserv to reload its wsini.ini and enable logging ws.LogCommand(RWsSession::ELoggingEnable); ws.Flush(); // cleanup CleanupStack::PopAndDestroy(4, &fs); #endif // FSHELL_WSERV_SUPPORT }