void CMemoryView::ResetData(ePipeline& DataList){ CTitle* Title = (CTitle*)m_ChildList[1]; Title->DeleteAll(); Title->m_ObjectCount=0; for (int i=0; i<DataList.Size(); i+=2) { int64 InstanceID = *(int64*)DataList.GetData(i); ePipeline* InstanceItem = (ePipeline*)DataList.GetData(i+1); tstring InstanceName = InstanceItem->GetLabel(); CreateDataInstance(InstanceName); CTextItem* DataList = (CTextItem*)Title->m_ChildList[Title->m_ObjectCount-1]; for (int j=0; j<InstanceItem->Size(); j++) { ePipeline* Data = (ePipeline*)InstanceItem->GetData(j); CMemoryView::CTextItem* DataItem = Data2Item(j,Data); if (DataItem==NULL) { return; } //DataItem->m_State = SPACE_NOTOOLABR; DataList->PushChild(DataItem); } } Layout(); }
void IT_GLOBALALLOC (ENV *envp,LONGPROC f) /* GlobalAlloc */ { UINT uSel,flags; DWORD dwSize; DWORD dwMemSize; HGLOBAL hGlobal; dwSize = GETDWORD(SP+4); flags = GETWORD(SP+8); dwMemSize=dwSize; dwSize = max(32,(dwSize + 31) & 0xffffffe0); uSel = TWIN_AllocSelector(dwSize,flags); if (uSel) { hGlobal = GetSelectorHandle(uSel); CreateDataInstance((HINSTANCE)hGlobal,(HMODULE)0, GetCurrentTask()); if (flags & GMEM_MOVEABLE) { GlobalUnlock(hGlobal); uSel &= 0xfffe; } } envp->reg.sp += UINT_86 + DWORD_86 + RET_86; envp->reg.ax = LOWORD(uSel); envp->reg.dx = 0; }
LRESULT CMemoryView::OnInfoProc(WPARAM wParam, LPARAM lParam){ ePipeline* Info = (ePipeline*)wParam; int64 Type = Info->PopInt(); int64 Cmd = Info->PopInt(); if (Type == INSTANCE_OBJECT) { if(Cmd == CREATE_INSTANCE){ ePipeline* ObjData = (ePipeline*)Info->GetData(0); CreateObjectInstance(ObjData); }else if (Cmd == NAME_INSTANCE) { tstring SrceObjectName = Info->PopString(); int64 InstanceID = Info->PopInt(); tstring InstanceName = Info->PopString(); NameObjectInstance(SrceObjectName,InstanceID,InstanceName); }else if (Cmd == CLOSE_INSTANCE) { tstring SrceObjectName = Info->PopString(); int64 InstanceID = Info->PopInt(); CloseObjectInstance(SrceObjectName,InstanceID); } } else if(Type == INSTANCE_DATA) { switch(Cmd){ case CREATE_INSTANCE: { tstring InstanceName = Info->PopString(); CreateDataInstance(InstanceName); } break; case INSERT_DATA: { tstring InstanceName = Info->PopString(); int32 Index = Info->PopInt(); ePipeline* Data = (ePipeline*)Info->GetData(0); InsertData(InstanceName,Index,Data); } break; case MODIFY_DATA: { tstring InstanceName = Info->PopString(); int32 Index = Info->PopInt(); ePipeline* Data = (ePipeline*)Info->GetData(0); ModifyData(InstanceName,Index,Data); } break; case REMOVE_DATA: { tstring InstanceName = Info->PopString(); int32 Index = Info->PopInt(); RemoveData(InstanceName,Index); } break; case CLOSE_INSTANCE: { tstring InstanceName = Info->PopString(); CloseDataInstance(InstanceName); } break; case IMPORT_DATA: { tstring InstanceName = Info->PopString(); ePipeline* DataList = (ePipeline*)Info->GetData(0); ImportData(InstanceName,DataList); } break; case EXPORT_DATA: { tstring InstanceName = Info->PopString(); ExportData(InstanceName); } break; default: assert(0); break; } } m_Toolbar.m_Owner = NULL; m_SpaceSelected = NULL; m_SpaceFocused = NULL; Layout(); return 0; }