HRESULT CRunErr::CreateDebugger() { // Debugger-DLL nicht installiert if (!g_SummitModuls[DEBUGGER].fIsInstalled) return E_FAIL; EnableTriasWindow(false); CMacroScriptExtension *pExt = (CMacroScriptExtension *)g_pTE; ASSERT(NULL != pExt); m_pScriptDebugger = new CBScriptDebug(pExt->ebInst(), pExt->MWind(), m_pOperateScripts); ASSERT(NULL != m_pScriptDebugger); if (NULL == m_pScriptDebugger) return E_OUTOFMEMORY; if (NULL != m_pOperateScripts) { // öffnet Stream ASSERT(!m_strName.IsEmpty()); if (!m_pScriptDebugger -> OpenStream((LPSTR)(LPCSTR)m_strName)) return E_FAIL; } ASSERT(!m_strText.IsEmpty()); // immer if (!ebDebugger_SetText(GetDebuggerWnd(), m_strText)) return E_FAIL; return NOERROR; }
CRunErr::~CRunErr() { // erst TRiAS wieder aktivieren, dann Debugger zerlegen, da sonst // jemand anders als TRiAS aktiviert wird EnableTriasWindow(true); m_pScriptDebugger = NULL; }
CRunErr::~CRunErr() { if (m_pOperateScripts) { m_pOperateScripts -> Release(); m_pOperateScripts = NULL; } // erst TRiAS wieder aktivieren, dann Debugger zerlegen, da sonst // jemand anders als TRiAS aktiviert wird EnableTriasWindow(true); // intern DestroyWindow() if (NULL != m_pScriptDebugger) { if (m_fRunModal) m_pScriptDebugger -> Close(); delete m_pScriptDebugger; m_pScriptDebugger = NULL; } }
HRESULT CRunErr::CreateDebugger(UINT uiWMClose, BOOL fOpen, ebWORD wLineNr, IObjectManagement *pIOM, IStreamInfo *pISI) { ASSERT(!m_strName.IsEmpty()); if (m_strName.IsEmpty()) return E_INVALIDARG; EnableTriasWindow(false); HRESULT hr = NOERROR; // Neuen Debugger kreieren, Baum füllen, DebCtrl init. if (NULL == m_pScriptDebugger) hr = ::CreateDebugger(g_pBSE -> MWind(), m_strName, fOpen, uiWMClose, pIOM, pISI, &m_pScriptDebugger); else // Nur neuen Script öffnen hr = m_pScriptDebugger -> Init(m_strName, fOpen, pIOM, pISI); if (FAILED(hr)) return hr; m_pScriptDebugger -> SetEditOnly(true);// Nur editieren möglich ebDebugger_SelectLines(GetDebuggerWnd(), wLineNr-2, wLineNr-1, true); return hr; }