void CIPSecDialogNotifier::StartL( const TDesC8& aBuffer, TInt aReturnValue, const RMessagePtr2& aMessage ) { __ASSERT_DEBUG( aBuffer.Length() >= 4, _L( "Buffer is empty" ) ); TPckgBuf<TVpnDialogInfo> operationBuf; aMessage.ReadL( 1, operationBuf ); TVpnDialogInfo& dialogInput = operationBuf(); TInt aDialog = dialogInput.NoteDialogId(); TInt operation = dialogInput.DialogId(); // This records whether the dialog was cancelled or not TInt dialogStatus = KErrNone; switch ( operation ) { case TPkiDialog::EEnterPwd: dialogStatus = EnterPwdL( aBuffer, aReturnValue, aMessage ); break; case TPkiDialog::EChangePwd: dialogStatus = ChangePwdL( aBuffer, aReturnValue, aMessage ); break; case TPkiDialog::EDefinePwd: dialogStatus = DefinePwdL( aBuffer, aReturnValue, aMessage ); break; case TPkiDialog::EEnterImportPwd: dialogStatus = EnterImportPwdL( aBuffer, aReturnValue, aMessage ); break; case TNoteDialog::EInfo: case TNoteDialog::EWarning: case TNoteDialog::EError: ShowNoteDlgL(aDialog); break; //Fall through default: __ASSERT_DEBUG( EFalse, _L( "Illegal IPSEC UI operation type" ) ); } aMessage.Complete( dialogStatus ); }