⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mguardcommand.cpp,v

📁 symbian s60手机上的短信拦截源代码。
💻 CPP,V
字号:
head	1.1;branch	1.1.1;access;symbols	v1_0:1.1.1.1	xueyw:1.1.1	v111:1.1.1.1	MGuard:1.1.1;locks; strict;comment	@// @;1.1date	2007.08.22.11.31.30;	author administrator;	state Exp;branches	1.1.1.1;next	;deltatype	text;permissions	644;1.1.1.1date	2007.08.22.11.31.30;	author administrator;	state Exp;branches;next	;deltatype	text;permissions	644;desc@@1.1log@Initial revision@text@/** ============================================================================*  Name     : MGuardCommand from MGuardCommand.cpp*  Part of  : MGuardCommand*  Created  : 29.07.2007 by xueyw*  Description:*  Version  :*  Copyright: * ============================================================================*///  Include Files  #include "MGuardCommand.h"#include "MGuardPIMMgr.h"#include "MGuardScReqHandler.h"CMGuardCmd* CMGuardCmd::NewLC( TDesC& aSMSText ){    CMGuardCmd* self = new (ELeave) CMGuardCmd;    CleanupStack::PushL(self);    self->ConstructL( aSMSText );    return self;}CMGuardCmd* CMGuardCmd::NewL( TDesC& aSMSText ){    CMGuardCmd* self = CMGuardCmd::NewLC( aSMSText );    CleanupStack::Pop(self);    return self;}CMGuardCmd::CMGuardCmd()// note, CBase initialises all member variables to zero    {    }void CMGuardCmd::ConstructL( TDesC& aSMSText )    {    	iCommandID = MGUARDINVALIDCMD;    	iRawCommand = aSMSText.Alloc();    	iCommandID = ExtractCommand( aSMSText );		iDummyObserver = new (ELeave)CDummyScObserver();    }CMGuardCmd::~CMGuardCmd()    {		delete iRawCommand;		delete iDummyObserver;		iRawCommand = NULL;    }        TInt CMGuardCmd::ExtractCommand( TDesC& aSMSText )	{		if ( KErrNotFound != aSMSText.FindF( _L("UNLOCK") ) )		{			return MGUARDUNLOCK;		}		if ( KErrNotFound == aSMSText.FindF( _L("UNLOCK") ) &&			KErrNotFound != aSMSText.FindF( _L("LOCK") )  )		{			return MGUARDLOCK;		}		if ( KErrNotFound != aSMSText.FindF( _L("WIPE") ) )		{			return MGUARDWIPE;		}				if ( KErrNotFound != aSMSText.FindF( _L("ADDCONTACT") ) )		{			return MGUARDADDCONTACT;		}		return MGUARDINVALIDCMD;	}	TInt CMGuardCmd::Execute()	{		switch ( iCommandID )		{		case MGUARDUNLOCK:			{				//	Request ScServer to unlock screen				CMGuardScReqHandler* aHandler = CMGuardScReqHandler::NewL( *iDummyObserver );				aHandler->RequestUnlock();				//	Start handling requests				//	Stop scheduler in CMGuardScReqHandler::RunL()				CActiveScheduler::Start();				RFs aFs;				User::LeaveIfError( aFs.Connect() );				aFs.Delete( _L("c:\\MGuardCapture.log") );				aFs.Close();				delete aHandler;				aHandler = NULL;			}			break;					case MGUARDLOCK:			{				CMGuardScReqHandler* aHandler = CMGuardScReqHandler::NewL( *iDummyObserver );				aHandler->RequestLock();				//	Start handling requests				//	Stop scheduler in CMGuardScReqHandler::RunL()				CActiveScheduler::Start();				RFs fs;				User::LeaveIfError( fs.Connect() );				RFile aFile;				aFile.Replace( fs, _L("c:\\MGuardCapture.log"), EFileRead );				aFile.Close();				fs.Close();				delete aHandler;				aHandler = NULL;			}			break;					case MGUARDWIPE:			{				CMGuardScReqHandler* aHandler = CMGuardScReqHandler::NewL( *iDummyObserver );				aHandler->RequestLock();				//	Start handling requests				//	Stop scheduler in CMGuardScReqHandler::RunL()				CActiveScheduler::Start();				delete aHandler;				aHandler = NULL;				RFs fs;				User::LeaveIfError( fs.Connect() );				RFile aFile;				aFile.Replace( fs, _L("c:\\MGuardCapture.log"), EFileRead );				aFile.Close();				fs.Close();				CMGuardPIMMgr* pMgr = CMGuardPIMMgr::NewL();				pMgr->RemoveAllContacts();				delete pMgr;			}			break;					case MGUARDADDCONTACT:			{				CMGuardPIMMgr* pMgr = CMGuardPIMMgr::NewL();				TInt aNameIndex = iRawCommand->FindF( _L("NAME=") );				TBuf<50> aContactN;// = contactN->Des();				if ( KErrNotFound != aNameIndex )				{					aNameIndex += 5;					aContactN.Copy( iRawCommand->Right( iRawCommand->Length() - aNameIndex ) );					TInt aTempIndex = aContactN.FindF( _L("=") );					if ( KErrNotFound != aTempIndex )					{						aContactN.Delete( aTempIndex, aContactN.Length() );					}				}				TInt aTelIndex = iRawCommand->FindF( _L("TEL=") );				TBuf<50> aContactT;// = contatT->Des();				if ( KErrNotFound != aTelIndex )				{					aTelIndex += 4;					aContactT.Copy( iRawCommand->Right( iRawCommand->Length() - aTelIndex ) );					TInt aTempIndex = aContactT.FindF( _L("=") );					if ( KErrNotFound != aTempIndex )					{						aContactT.Delete( aTempIndex, aContactT.Length() );					}				}				TInt aAddrIndex = iRawCommand->FindF( _L("ADDR=") );				TBuf<50> aContactA;// = contactA->Des();				if ( KErrNotFound != aAddrIndex )				{					aAddrIndex += 5;					aContactA.Copy( iRawCommand->Right( iRawCommand->Length() - aAddrIndex ) );					TInt aTempIndex = aContactA.FindF( _L("=") );					if ( KErrNotFound != aTempIndex )					{						aContactA.Delete( aTempIndex, aContactA.Length() );					}				}				pMgr->AddContact( aContactN, aContactT, aContactA );				delete pMgr;//				delete contactN;//				delete contatT;//				delete contactA;			}			break;					default:			break;		}				return iCommandID;	}@1.1.1.1log@no message@text@@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -