bool CLuaInterpreter::StartFromFile(const std::string& fileName, T_NOTIFICATIONCALLBACK pNotificationCallback /*= NULL*/, LPVOID lpParam /*= NULL*/)
{
    if (m_bIsRunning)
    {
        return false;
    }
    // copie le code
    m_Code.clear();
    m_FileName = fileName;
    m_pNotificationCallback = pNotificationCallback;
    m_lpParam               = lpParam;

    CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd;
    // effacement de la fenetre de sortie des traces LUA
    pMainFrame->ClearTrace(CTraceBar::LUA_TRACE);
    // et activation de la page
    pMainFrame->ShowTrace(CTraceBar::LUA_TRACE);

    // demarre le thread
    m_pThreadExec.reset(new CAdeThreadAsMember(StaticProcThreadExec, this));
    m_pThreadExec->BeginThread(THREAD_PRIORITY_NORMAL);
    return true;
}