| 124 | } |
| 125 | |
| 126 | void CDialogModules::SetSelected() |
| 127 | { |
| 128 | POSITION pos = m_ModuleViewList.GetFirstSelectedItemPosition(); |
| 129 | while (pos) |
| 130 | { |
| 131 | int nItem = m_ModuleViewList.GetNextSelectedItem(pos); |
| 132 | |
| 133 | nItem = FindModuleByName(m_ModuleViewList.GetItemText(nItem, 0)); |
| 134 | |
| 135 | CMainFrame* pFrame = static_cast<CMainFrame*>(AfxGetApp()->m_pMainWnd); |
| 136 | CChildFrame* pChild = static_cast<CChildFrame*>(pFrame->CreateNewChild(RUNTIME_CLASS(CChildFrame), IDR_ReClass2015TYPE, theApp.m_hMDIMenu, theApp.m_hMDIAccel)); |
| 137 | |
| 138 | int extension_size = MemMapModule[ nItem ].Name.ReverseFind( '.' ); |
| 139 | if ( extension_size == -1 ) extension_size = 0; |
| 140 | else extension_size = MemMapModule[ nItem ].Name.GetLength( ) - extension_size; |
| 141 | |
| 142 | CString ClassName = MemMapModule[ nItem ].Name.Left( MemMapModule[ nItem ].Name.GetLength( ) - extension_size ) + _T( "_base" ); |
| 143 | |
| 144 | CNodeClass* pNewClass = GetClassByName(ClassName); |
| 145 | if (!pNewClass) |
| 146 | { |
| 147 | pNewClass = new CNodeClass; |
| 148 | pNewClass->Name = ClassName; |
| 149 | |
| 150 | TCHAR strStart[64]; |
| 151 | _stprintf(strStart, _T("%IX"), MemMapModule[nItem].Start); |
| 152 | pNewClass->strOffset = strStart; |
| 153 | pNewClass->offset = MemMapModule[nItem].Start; |
| 154 | pNewClass->pChildWindow = pChild; |
| 155 | pNewClass->idx = (int)theApp.Classes.size(); |
| 156 | |
| 157 | theApp.Classes.push_back(pNewClass); |
| 158 | |
| 159 | DWORD offset = 0; |
| 160 | for (int i = 0; i < 64 / sizeof(size_t); i++) |
| 161 | { |
| 162 | CNodeHex* pNode = new CNodeHex; |
| 163 | pNode->pParent = pNewClass; |
| 164 | pNode->offset = offset; |
| 165 | offset += pNode->GetMemorySize(); |
| 166 | pNewClass->Nodes.push_back(pNode); |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | pChild->m_wndView.m_pClass = pNewClass; |
| 171 | |
| 172 | // This will get overwritten for each module that is selected |
| 173 | pChild->SetTitle(ClassName); |
| 174 | pChild->SetWindowText(ClassName); |
| 175 | pFrame->UpdateFrameTitleForDocument(ClassName); |
| 176 | } |
| 177 | } |
| 178 | |
| 179 | //int (CALLBACK *PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM); |
| 180 | int CALLBACK CDialogModules::CompareFunction(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) |
nothing calls this directly
no test coverage detected