| 144 | } |
| 145 | |
| 146 | void CDialogModules::SetSelected( ) |
| 147 | { |
| 148 | POSITION pos = m_ModuleList.GetFirstSelectedItemPosition( ); |
| 149 | while (pos) |
| 150 | { |
| 151 | int nItem = m_ModuleList.GetNextSelectedItem( pos ); |
| 152 | nItem = FindModuleByName( m_ModuleList.GetItemText( nItem, 0 ) ); |
| 153 | |
| 154 | MemMapInfo mod = g_MemMapModules[nItem]; |
| 155 | |
| 156 | if (g_bSymbolResolution && m_SymbolLoad.GetCheck( ) == BST_CHECKED) |
| 157 | g_ReClassApp.m_pSymbolLoader->LoadSymbolsForModule( mod.Path, mod.Start, mod.Size ); |
| 158 | |
| 159 | int extension_size = mod.Name.ReverseFind( '.' ); |
| 160 | extension_size = (extension_size == -1) ? 0 : (mod.Name.GetLength( ) - extension_size); |
| 161 | |
| 162 | CString ClassName = mod.Name.Left( mod.Name.GetLength( ) - extension_size ) + _T( "_base" ); |
| 163 | |
| 164 | CNodeClass* pNewClass = GetClassByName( ClassName ); |
| 165 | |
| 166 | if (pNewClass != NULL) |
| 167 | { |
| 168 | CMDIFrameWnd* pMainFrame = STATIC_DOWNCAST( CMDIFrameWnd, AfxGetApp( )->m_pMainWnd ); |
| 169 | CClassFrame* pChildClassFrame = pNewClass->m_pChildClassFrame; |
| 170 | |
| 171 | // Check if its a window first to dodge the assertion in IsWindowVisible |
| 172 | if (pChildClassFrame != nullptr && |
| 173 | IsWindow( pChildClassFrame->GetSafeHwnd( ) ) && |
| 174 | pChildClassFrame->IsWindowVisible( )) |
| 175 | { |
| 176 | static_cast<CMDIChildWnd*>(pChildClassFrame)->MDIActivate( ); |
| 177 | } |
| 178 | else |
| 179 | { |
| 180 | CClassFrame* pNewChildClassFrame = STATIC_DOWNCAST( CClassFrame, |
| 181 | pMainFrame->CreateNewChild( RUNTIME_CLASS( CClassFrame ), IDR_ReClassExTYPE, g_ReClassApp.m_hMdiMenu, g_ReClassApp.m_hMdiAccel ) ); |
| 182 | |
| 183 | pNewChildClassFrame->SetClass( pNewClass ); |
| 184 | pNewChildClassFrame->SetTitle( pNewClass->GetName( ) ); |
| 185 | pNewChildClassFrame->SetWindowText( pNewClass->GetName( ) ); |
| 186 | |
| 187 | pNewClass->SetChildClassFrame( pNewChildClassFrame ); |
| 188 | |
| 189 | pMainFrame->UpdateFrameTitleForDocument( pNewClass->GetName( ) ); |
| 190 | } |
| 191 | } |
| 192 | else |
| 193 | { |
| 194 | CMainFrame* pMainFrame = static_cast<CMainFrame*>(AfxGetApp( )->m_pMainWnd); |
| 195 | CClassFrame* pChildClassFrame = STATIC_DOWNCAST( CClassFrame, |
| 196 | pMainFrame->CreateNewChild( RUNTIME_CLASS( CClassFrame ), IDR_ReClassExTYPE, g_ReClassApp.m_hMdiMenu, g_ReClassApp.m_hMdiAccel )); |
| 197 | |
| 198 | pNewClass = new CNodeClass; |
| 199 | pNewClass->SetName( ClassName ); |
| 200 | |
| 201 | TCHAR strStart[64]; |
| 202 | _stprintf_s( strStart, 64, _T( "%IX" ), mod.Start ); |
| 203 | pNewClass->SetOffsetString( strStart ); |
nothing calls this directly
no test coverage detected