void CItemShopLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const { switch( message->Protocol ) { case MP_RM_ITEM_SHOP_LOG_ACK: { const MSG_RM_ITEM_SHOP_LOG* m = ( MSG_RM_ITEM_SHOP_LOG* )message; if( m->mRequestTick != mTickCount ) { break; } // 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다 std::set< DWORD > indexSet; { for( int row = 0; row < listCtrl.GetItemCount(); ++row ) { indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) ); } } for( DWORD i = 0; i < m->mSize; ++i ) { const MSG_RM_ITEM_SHOP_LOG::Log& data = m->mLog[ i ]; const DWORD row = listCtrl.GetItemCount(); int step = 0; if( indexSet.end() != indexSet.find( data.mIndex ) ) { continue; } CString text; text.Format( _T( "%d" ), data.mIndex ); listCtrl.InsertItem( row, text, 0 ); listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) ); listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) ); text.Format( _T( "%d" ), data.mUser.mIndex ); listCtrl.SetItemText( row, ++step, text ); listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mUser.mId ) >( data.mUser.mId ) ); listCtrl.SetItemText( row, ++step, mApplication.GetItemName( data.mItem.mIndex ) ); text.Format( _T( "%d" ), data.mItem.mDbIndex ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), data.mItem.mQuantity ); listCtrl.SetItemText( row, ++step, text ); } { int minRange; int maxRange; progressCtrl.GetRange( minRange, maxRange ); progressCtrl.SetPos( progressCtrl.GetPos() + m->mSize ); CString text; text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange ); resultStatic.SetWindowText( text ); // 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함 if( progressCtrl.GetPos() == maxRange ) { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); } } break; } case MP_RM_ITEM_SHOP_LOG_SIZE_ACK: { const MSG_DWORD* m = ( MSG_DWORD* )message; const DWORD size = m->dwData; CString text; text.Format( _T( "0/%d" ), size ); resultStatic.SetWindowText( text ); progressCtrl.SetRange32( 0, size ); progressCtrl.SetPos( 0 ); findButton.EnableWindow( FALSE ); stopButton.EnableWindow( TRUE ); listCtrl.DeleteAllItems(); break; } case MP_RM_ITEM_SHOP_LOG_SIZE_NACK: { CString textThereIsNoResult; textThereIsNoResult.LoadString( IDS_STRING1 ); MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_ITEM_SHOP_LOG_STOP_ACK: { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); CString textSearchWasStopped; textSearchWasStopped.LoadString( IDS_STRING2 ); MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_ITEM_SHOP_LOG_NACK_BY_AUTH: { CString textYouHaveNoAuthority; textYouHaveNoAuthority.LoadString( IDS_STRING18 ); MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR ); break; } default: { ASSERT( 0 ); break; } } }
void CFarmLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const { switch( message->Protocol ) { case MP_RM_FARM_LOG_ACK: { // 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다 std::set< DWORD > indexSet; { for( int row = 0; row < listCtrl.GetItemCount(); ++row ) { indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) ); } } const MSG_RM_FARM_LOG* m = ( MSG_RM_FARM_LOG* )message; if( m->mRequestTick != mTickCount ) { break; } for( DWORD i = 0; i < m->mSize; ++i ) { const MSG_RM_FARM_LOG::Log& data = m->mLog[ i ]; const DWORD row = listCtrl.GetItemCount(); int step = 0; if( indexSet.end() != indexSet.find( data.mIndex ) ) { continue; } CString text; text.Format( _T( "%d" ), data.mIndex ); listCtrl.InsertItem( row, text, 0 ); listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) ); listCtrl.SetItemText( row, ++step, mApplication.GetText( FARM_LOG_KIND( data.mKind ) ) ); text.Format( _T( "%d" ), data.mFarmIndex ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), data.mZone ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), data.mPlayerIndex ); listCtrl.SetItemText( row, ++step, text ); // 080423 LUJ, 농장 개선 로그일 때는 값에 표시 // // 주의: 로그가 잘못 표시되고 있음. 소스를 고치면 기존 로그가 손상되므로, 복구툴에서 정정함 // 이에 따라 로그 타입과 실제 표시되는 텍스트가 다를 수 있음 // // 정원 -> 정원, 울타리 -> 축사, 집 -> 울타리, 창고 -> 집, 축사 -> 창고 if( FARM_LOG_KIND_UPGRADE == data.mKind ) { switch( data.mValue1 ) { case FARM_UPGRADE_LOG_KIND_GARDEN: { CString textGarden; textGarden.LoadString( IDS_STRING368 ); listCtrl.SetItemText( row, ++step, textGarden ); break; } case FARM_UPGRADE_LOG_KIND_FENCE: { CString textCage; textCage.LoadString( IDS_STRING367 ); listCtrl.SetItemText( row, ++step, textCage ); break; } case FARM_UPGRADE_LOG_KIND_HOUSE: { CString textFence; textFence.LoadString( IDS_STRING366 ); listCtrl.SetItemText( row, ++step, textFence ); break; } case FARM_UPGRADE_LOG_KIND_WAREHOUSE: { CString textHouse; textHouse.LoadString( IDS_STRING369 ); listCtrl.SetItemText( row, ++step, textHouse ); break; } case FARM_UPGRADE_LOG_KIND_ANIMALCAGE: { CString textWarehouse; textWarehouse.LoadString( IDS_STRING282 ); listCtrl.SetItemText( row, ++step, textWarehouse ); break; } default: { listCtrl.SetItemText( row, ++step, _T( "?" ) ); break; } } } else { text.Format( _T( "%d" ), data.mValue1 ); listCtrl.SetItemText( row, ++step, text ); } text.Format( _T( "%d" ), data.mValue2 ); listCtrl.SetItemText( row, ++step, text ); } { int minRange; int maxRange; progressCtrl.GetRange( minRange, maxRange ); progressCtrl.SetPos( progressCtrl.GetPos() + m->mSize ); CString text; text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange ); resultStatic.SetWindowText( text ); // 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함 if( progressCtrl.GetPos() == maxRange ) { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); } } break; } case MP_RM_FARM_LOG_SIZE_ACK: { const MSG_DWORD* m = ( MSG_DWORD* )message; const DWORD size = m->dwData; CString text; text.Format( _T( "0/%d" ), size ); resultStatic.SetWindowText( text ); progressCtrl.SetRange32( 0, size ); progressCtrl.SetPos( 0 ); findButton.EnableWindow( FALSE ); stopButton.EnableWindow( TRUE ); listCtrl.DeleteAllItems(); break; } case MP_RM_FARM_LOG_SIZE_NACK: { CString textThereIsNoResult; textThereIsNoResult.LoadString( IDS_STRING1 ); MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_FARM_LOG_STOP_ACK: { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); CString textSearchWasStopped; textSearchWasStopped.LoadString( IDS_STRING2 ); MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_FARM_LOG_NACK_BY_AUTH: { CString textYouHaveNoAuthority; textYouHaveNoAuthority.LoadString( IDS_STRING18 ); MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR ); break; } default: { ASSERT( 0 ); break; } } }
void CItemOptionLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const { switch( message->Protocol ) { case MP_RM_ITEM_OPTION_LOG_GET_ACK: { // 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다 std::set< DWORD > indexSet; { for( int row = 0; row < listCtrl.GetItemCount(); ++row ) { indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) ); } } const MSG_RM_ITEM_OPTION_LOG* m = ( MSG_RM_ITEM_OPTION_LOG* )message; for( DWORD i = 0; i < m->mSize; ++i ) { const MSG_RM_ITEM_OPTION_LOG::Log& data = m->mLog[ i ]; const DWORD row = listCtrl.GetItemCount(); int step = -1; if( indexSet.end() != indexSet.find( data.mLogIndex ) ) { continue; } CString text; text.Format( _T( "%d" ), data.mLogIndex ); listCtrl.InsertItem( row, text, ++step ); listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) ); listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) ); text.Format( _T( "%d" ), data.mItemDbIndex ); listCtrl.SetItemText( row, ++step, text ); { const ITEM_OPTION::Reinforce& reinforce = data.mOption.mReinforce; text.Format( _T( "%d" ), reinforce.mStrength ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mDexterity ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mVitality ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mIntelligence ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mWisdom ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mLife ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mMana ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mLifeRecovery ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mManaRecovery ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mPhysicAttack ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mPhysicDefence ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mMagicAttack ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), reinforce.mMagicDefence ); listCtrl.SetItemText( row, ++step, text ); // 080428 LUJ, 크리티컬 레이트가 이동 속도로 잘못 저장되고 있음 text.Format( _T( "%d" ), reinforce.mMoveSpeed ); listCtrl.SetItemText( row, ++step, text ); // 080428 LUJ, 크리티컬 데미지가 회피로 잘못 저장되고 있음 text.Format( _T( "%d" ), reinforce.mEvade ); listCtrl.SetItemText( row, ++step, text ); // 080428 LUJ, 이동 속도가 명중으로 잘못 저장되고 있음. text.Format( _T( "%d" ), reinforce.mAccuracy ); listCtrl.SetItemText( row, ++step, text ); // 080428 LUJ, 회피가 크리티컬 레이트로 잘못 저장되고 있음 text.Format( _T( "%d" ), reinforce.mCriticalRate ); listCtrl.SetItemText( row, ++step, text ); // 080428 LUJ, 명중이 크리티컬 데미지로 잘못 저장되고 있음 text.Format( _T( "%d" ), reinforce.mCriticalDamage ); listCtrl.SetItemText( row, ++step, text ); } { const ITEM_OPTION::Mix& mix = data.mOption.mMix; text.Format( _T( "%d" ), mix.mStrength ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), mix.mIntelligence ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), mix.mDexterity ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), mix.mWisdom ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), mix.mVitality ); listCtrl.SetItemText( row, ++step, text ); } { const ITEM_OPTION::Enchant& enchant = data.mOption.mEnchant; text.Format( _T( "%d" ), enchant.mIndex ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), enchant.mLevel ); listCtrl.SetItemText( row, ++step, text ); } listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mMemo ) >( data.mMemo ) ); } { int minRange; int maxRange; progressCtrl.GetRange( minRange, maxRange ); progressCtrl.SetPos( progressCtrl.GetPos() + int( m->mSize ) ); CString text; text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange ); resultStatic.SetWindowText( text ); // 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함 if( progressCtrl.GetPos() == maxRange ) { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); } } break; } case MP_RM_ITEM_OPTION_LOG_SIZE_ACK: { const MSG_DWORD* m = ( MSG_DWORD* )message; const DWORD size = m->dwData; CString text; text.Format( _T( "0/%d" ), size ); resultStatic.SetWindowText( text ); progressCtrl.SetRange32( 0, size ); progressCtrl.SetPos( 0 ); findButton.EnableWindow( FALSE ); stopButton.EnableWindow( TRUE ); listCtrl.DeleteAllItems(); break; } case MP_RM_ITEM_OPTION_LOG_SIZE_NACK: { CString textThereIsNoResult; textThereIsNoResult.LoadString( IDS_STRING1 ); MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_ITEM_OPTION_LOG_STOP_ACK: { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); CString textSearchWasStopped; textSearchWasStopped.LoadString( IDS_STRING2 ); MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_ITEM_OPTION_LOG_NACK_BY_AUTH: { CString textYouHaveNoAuthority; textYouHaveNoAuthority.LoadString( IDS_STRING18 ); MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR ); break; } default: { ASSERT( 0 ); break; } } }
void CExperienceLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const { switch( message->Protocol ) { case MP_RM_EXP_LOG_GET_SIZE_ACK: { const MSG_DWORD* m = ( MSG_DWORD* )message; const DWORD size = m->dwData; CString text; text.Format( _T( "0/%d" ), size ); resultStatic.SetWindowText( text ); progressCtrl.SetRange32( 0, size ); progressCtrl.SetPos( 0 ); findButton.EnableWindow( FALSE ); stopButton.EnableWindow( TRUE ); listCtrl.DeleteAllItems(); break; } case MP_RM_EXP_LOG_GET_SIZE_NACK: { CString textThereIsNoResult; textThereIsNoResult.LoadString( IDS_STRING1 ); MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_EXP_LOG_GET_ACK: { const MSG_RM_EXP_LOG* m = ( MSG_RM_EXP_LOG* )message; // 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다 std::set< DWORD > indexSet; { for( int row = 0; row < listCtrl.GetItemCount(); ++row ) { indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) ); } } for( DWORD i = 0; i < m->mSize; ++i ) { const MSG_RM_EXP_LOG::Log& data = m->mLog[ i ]; const DWORD row = listCtrl.GetItemCount(); int step = 0; if( indexSet.end() != indexSet.find( data.mLogIndex ) ) { continue; } CString text; text.Format( _T( "%d" ), data.mLogIndex ); listCtrl.InsertItem( row, text, 0 ); listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) ); // 080416 LUJ, 로그 종류를 문자로 표시하도록 함 listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) ); text.Format( _T( "%d" ), data.mGrade ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), data.mVariation ); listCtrl.SetItemText( row, ++step, text ); // 080716 LUJ, 킬러 종류를 번호로 표시한다 text.Format( _T( "%d" ), data.mKillerKind ); listCtrl.SetItemText( row, ++step, text ); listCtrl.SetItemText( row, ++step, mApplication.GetMonsterName( data.mKillerKind ) ); text.Format( _T( "%d" ), data.mKillerIndex ); listCtrl.SetItemText( row, ++step, text ); // 080716 LUJ, 경험치 형이 커져서 실수형으로 변경 text.Format( _T( "%0.0f" ), data.mExperience ); listCtrl.SetItemText( row, ++step, text ); // 080716 LUJ, 로그 상태에 따라 다른 형식으로 표시 switch( data.mType ) { case eExpLog_ProtectExp: { CString textProtect; textProtect.LoadString( IDS_STRING402 ); text.Format( _T( "%s: %d" ), textProtect, data.mCount ); listCtrl.SetItemText( row, ++step, text ); break; } } } { int minRange; int maxRange; progressCtrl.GetRange( minRange, maxRange ); progressCtrl.SetPos( progressCtrl.GetPos() + int( m->mSize ) ); CString text; text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange ); resultStatic.SetWindowText( text ); // 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함 if( progressCtrl.GetPos() == maxRange ) { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); } } break; } case MP_RM_EXP_LOG_GET_STOP_ACK: { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); CString textSearchWasStopped; textSearchWasStopped.LoadString( IDS_STRING2 ); MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_EXP_LOG_GET_STOP_NACK: { ASSERT( 0 ); break; } default: { break; } } }
void CSiegeLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const { switch( message->Protocol ) { case MP_RM_SIEGE_LOG_ACK: { // 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다 std::set< DWORD > indexSet; { for( int row = 0; row < listCtrl.GetItemCount(); ++row ) { indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) ); } } // 081027 LUJ, 메모를 판단해서 적절한 글로 변경한다. 원래 state안의 숫자는 // [Map]Server\SiegeWareMgr.h에 선언된 enum 상수이나, 헤더를 참조 // 하면 컴파일에 문제가 있어 유연성이 없지만 분리했다 class { public: CString operator()( const CString& text ) const { if( text == _T( "state:0" ) ) { CString textWait; textWait.LoadString( IDS_STRING420 ); return textWait; } else if( text == _T( "state:1" ) ) { CString textStart; textStart.LoadString( IDS_STRING291 ); return textStart; } else if( text == _T( "state:2" ) ) { CString textReady; textReady.LoadString( AFX_IDS_IDLEMESSAGE ); CString textInstall; textInstall.LoadString( IDS_STRING418 ); CString textWaterseed; textWaterseed.LoadString( IDS_STRING417 ); } else if( text == _T( "state:3" ) ) { CString textEnd; textEnd.LoadString( IDS_STRING292 ); return textEnd; } return text; } } Translate; const MSG_RM_SIEGE_LOG* m = ( MSG_RM_SIEGE_LOG* )message; for( DWORD i = 0; i < m->mSize; ++i ) { const MSG_RM_SIEGE_LOG::Log& data = m->mLog[ i ]; const DWORD row = listCtrl.GetItemCount(); int step = 0; if( indexSet.end() != indexSet.find( data.mIndex ) ) { continue; } CString text; text.Format( _T( "%d" ), data.mIndex ); listCtrl.InsertItem( row, text, 0 ); listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) ); listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) ); text.Format( _T( "%d" ), data.mGuildIndex ); listCtrl.SetItemText( row, ++step, text ); text.Format( _T( "%d" ), data.mPlayerIndex ); listCtrl.SetItemText( row, ++step, text ); listCtrl.SetItemText( row, ++step, Translate( CString( data.mMemo ) ) ); } { int minRange; int maxRange; progressCtrl.GetRange( minRange, maxRange ); progressCtrl.SetPos( progressCtrl.GetPos() + m->mSize ); CString text; text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange ); resultStatic.SetWindowText( text ); // 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함 if( progressCtrl.GetPos() == maxRange ) { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); } } break; } case MP_RM_SIEGE_LOG_SIZE_ACK: { const MSG_DWORD* m = ( MSG_DWORD* )message; const DWORD size = m->dwData; CString text; text.Format( _T( "0/%d" ), size ); resultStatic.SetWindowText( text ); progressCtrl.SetRange32( 0, size ); progressCtrl.SetPos( 0 ); findButton.EnableWindow( FALSE ); stopButton.EnableWindow( TRUE ); listCtrl.DeleteAllItems(); break; } case MP_RM_SIEGE_LOG_SIZE_NACK: { CString textThereIsNoResult; textThereIsNoResult.LoadString( IDS_STRING1 ); MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_SIEGE_LOG_STOP_ACK: { findButton.EnableWindow( TRUE ); stopButton.EnableWindow( FALSE ); CString textSearchWasStopped; textSearchWasStopped.LoadString( IDS_STRING2 ); MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK ); break; } case MP_RM_SIEGE_LOG_NACK_BY_AUTH: { CString textYouHaveNoAuthority; textYouHaveNoAuthority.LoadString( IDS_STRING18 ); MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR ); break; } default: { ASSERT( 0 ); break; } } }