[GME-commit]
GMESRC/GME/Console Console.odl,1.2,1.3 ConsoleCtl.cpp,1.3,1.4
ConsoleCtl.h,1.3,1.4 ScriptEdit.cpp,1.1,1.2 ScriptEdit.h,1.3,1.4
ScriptHost.cpp,1.1,1.2 ScriptHost.h,1.3,1.4
gme-commit at list.isis.vanderbilt.edu
gme-commit at list.isis.vanderbilt.edu
Fri Apr 15 19:24:12 CDT 2005
Update of /project/gme-repository/GMESRC/GME/Console
In directory escher:/tmp/cvs-serv19080/Console
Modified Files:
Console.odl ConsoleCtl.cpp ConsoleCtl.h ScriptEdit.cpp
ScriptEdit.h ScriptHost.cpp ScriptHost.h
Log Message:
GME:
'gme' variable comes to live when gme starts.
'it' variable is available when there is opened model
Mga:
ObjectByPath method can search based on plain name sequences
CVS User: Zoltan Molnar, ISIS (zolmol)
Index: ScriptHost.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/ScriptHost.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ScriptHost.cpp 2 Dec 2004 23:00:43 -0000 1.1
--- ScriptHost.cpp 15 Apr 2005 18:24:10 -0000 1.2
***************
*** 33,38 ****
_bstr_t project("project");
_bstr_t gme("gme");
COMTHROW(m_iscript->AddNamedItem(gme, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
! COMTHROW(m_iscript->AddNamedItem(project, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
}
COMTHROW(m_iscript->SetScriptState(SCRIPTSTATE_CONNECTED));
--- 33,40 ----
_bstr_t project("project");
_bstr_t gme("gme");
+ _bstr_t this_model("it");
COMTHROW(m_iscript->AddNamedItem(gme, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
! if( m_mgaproj != NULL) COMTHROW(m_iscript->AddNamedItem(project, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
! if( m_actMod != NULL) COMTHROW(m_iscript->AddNamedItem(this_model, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
}
COMTHROW(m_iscript->SetScriptState(SCRIPTSTATE_CONNECTED));
***************
*** 82,86 ****
if (dwReturnMask&SCRIPTINFO_IUNKNOWN)
{
! if ((_bstr_t)pstrName == _bstr_t("gme"))
{
CComPtr<IUnknown> punk(m_gmeptr);
--- 84,88 ----
if (dwReturnMask&SCRIPTINFO_IUNKNOWN)
{
! if (m_gmeptr && (_bstr_t)pstrName == _bstr_t("gme"))
{
CComPtr<IUnknown> punk(m_gmeptr);
***************
*** 88,92 ****
*ppiunkItem = punk;
}
! else if ((_bstr_t)pstrName == _bstr_t("project"))
{
CComPtr<IUnknown> punk(m_mgaproj);
--- 90,94 ----
*ppiunkItem = punk;
}
! else if (m_mgaproj && (_bstr_t)pstrName == _bstr_t("project"))
{
CComPtr<IUnknown> punk(m_mgaproj);
***************
*** 94,97 ****
--- 96,105 ----
*ppiunkItem = punk;
}
+ else if (m_actMod && (_bstr_t)pstrName == _bstr_t("it"))
+ {
+ CComPtr<IUnknown> punk(m_actMod);
+ ((IUnknown*)punk)->AddRef();
+ *ppiunkItem = punk;
+ }
}
if (dwReturnMask&SCRIPTINFO_ITYPEINFO)
***************
*** 136,141 ****
// write to console
CString desc = expinfo.bstrDescription;
! char err[500];
! sprintf(err, "Scripting Error: %s, Position: %d", desc, ch);
m_console->Message((LPCTSTR)err, MSG_ERROR);
}
--- 144,155 ----
// write to console
CString desc = expinfo.bstrDescription;
! // make the error description html readable
! desc.Replace( "<", "<"); // replacing <
! desc.Replace( ">", ">"); // >
! desc.Replace("\r\n", "<br>"); // 0d0a newlines
! desc.Replace("\n", "<br>"); // 0a newlines
!
! char err[5000];
! sprintf(err, "Scripting Error at Position: %d Line: %u<br>%s", ch, line, desc);
m_console->Message((LPCTSTR)err, MSG_ERROR);
}
***************
*** 158,162 ****
}
! STDMETHODIMP CScriptHost::SetGME(IDispatch *gmeapp)
{
--- 172,176 ----
}
! STDMETHODIMP CScriptHost::SetGMEApp(IDispatch *gmeapp)
{
***************
*** 166,172 ****
{
m_gmeptr.Release();
- m_mgaproj.Release();
if (gmeapp == NULL)
{
// delete names
if (m_iscript != NULL)
--- 180,189 ----
{
m_gmeptr.Release();
if (gmeapp == NULL)
{
+ // release other pointers
+ m_mgaproj.Release();
+ m_actMod.Release();
+
// delete names
if (m_iscript != NULL)
***************
*** 187,196 ****
COMTHROW(gip.QueryInterface(&m_gmeptr));
COMTHROW(m_gmeptr->get_MgaProject(&m_mgaproj));
_bstr_t project("project");
! _bstr_t gme("gme");
! COMTHROW(m_iscript->AddNamedItem(gme, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
COMTHROW(m_iscript->AddNamedItem(project, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
COMTHROW(m_iscript->SetScriptState(SCRIPTSTATE_CONNECTED));
}
--- 204,241 ----
COMTHROW(gip.QueryInterface(&m_gmeptr));
+ _bstr_t gme("gme");
+ COMTHROW(m_iscript->AddNamedItem(gme, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
+ COMTHROW(m_iscript->SetScriptState(SCRIPTSTATE_CONNECTED));
+ }
+ catch(hresult_exception &e)
+ {
+ return e.hr;
+ }
+ return S_OK;
+ }
+
+ STDMETHODIMP CScriptHost::SetGMEProj(IDispatch *gmeapp)
+ {
+
+ if (m_gmeptr == NULL && gmeapp == NULL)
+ return S_OK;
+ try
+ {
+ m_mgaproj.Release();
+ m_actMod.Release();
+
+ if (gmeapp == NULL) // means close project
+ {
+ return S_OK;
+ }
+
COMTHROW(m_gmeptr->get_MgaProject(&m_mgaproj));
+ COMTHROW( m_gmeptr->get_OleIt( &m_actMod ));
+
_bstr_t project("project");
! _bstr_t this_model("it");
COMTHROW(m_iscript->AddNamedItem(project, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
+ COMTHROW(m_iscript->AddNamedItem(this_model, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE));
COMTHROW(m_iscript->SetScriptState(SCRIPTSTATE_CONNECTED));
}
***************
*** 199,202 ****
--- 244,248 ----
return e.hr;
}
+
return S_OK;
}
Index: ScriptEdit.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/ScriptEdit.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ScriptEdit.h 26 Jan 2005 21:34:37 -0000 1.3
--- ScriptEdit.h 15 Apr 2005 18:24:10 -0000 1.4
***************
*** 26,29 ****
--- 26,30 ----
bool Init(CConsoleCtrl *console);
void SetGMEApp(IDispatch *disp);
+ void SetGMEProj(IDispatch *dsp);
protected:
Index: Console.odl
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/Console.odl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Console.odl 2 Dec 2004 22:00:03 -0000 1.2
--- Console.odl 15 Apr 2005 18:24:10 -0000 1.3
***************
*** 44,47 ****
--- 44,48 ----
[id(5)] void SetGMEApp(IDispatch *disp);
+ [id(6)] void SetGMEProj(IDispatch *disp);
[id(DISPID_ABOUTBOX)] void AboutBox();
};
***************
*** 74,78 ****
[id(1), helpstring("method InitEngine")] HRESULT InitEngine([in] void* m_console, [in] BSTR engineProgid);
[id(2), helpstring("method ProcessString")] HRESULT ProcessString([in] BSTR input);
! [id(3), helpstring("method SetGME")] HRESULT SetGME([in] IDispatch* gmeapp);
};
--- 75,80 ----
[id(1), helpstring("method InitEngine")] HRESULT InitEngine([in] void* m_console, [in] BSTR engineProgid);
[id(2), helpstring("method ProcessString")] HRESULT ProcessString([in] BSTR input);
! [id(3), helpstring("method SetGMEApp")] HRESULT SetGMEApp([in] IDispatch* gmeapp);
! [id(4), helpstring("method SetGMEProj")] HRESULT SetGMEProj([in] IDispatch* gmeproj);
};
Index: ConsoleCtl.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/ConsoleCtl.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ConsoleCtl.h 26 Jan 2005 17:28:22 -0000 1.3
--- ConsoleCtl.h 15 Apr 2005 18:24:10 -0000 1.4
***************
*** 59,62 ****
--- 59,63 ----
afx_msg void SetGMEApp(IDispatch *disp);
+ afx_msg void SetGMEProj(IDispatch *disp);
afx_msg void AboutBox();
Index: ConsoleCtl.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/ConsoleCtl.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ConsoleCtl.cpp 26 Jan 2005 17:28:22 -0000 1.3
--- ConsoleCtl.cpp 15 Apr 2005 18:24:10 -0000 1.4
***************
*** 44,47 ****
--- 44,48 ----
//}}AFX_DISPATCH_MAP
DISP_FUNCTION(CConsoleCtrl, "SetGMEApp", SetGMEApp, VT_EMPTY, VTS_DISPATCH)
+ DISP_FUNCTION(CConsoleCtrl, "SetGMEProj", SetGMEProj, VT_EMPTY, VTS_DISPATCH)
DISP_FUNCTION_ID(CConsoleCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()
***************
*** 234,237 ****
--- 235,243 ----
{
m_edit.SetGMEApp(disp);
+ }
+
+ void CConsoleCtrl::SetGMEProj(IDispatch *disp)
+ {
+ m_edit.SetGMEProj(disp);
}
Index: ScriptEdit.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/ScriptEdit.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ScriptEdit.cpp 2 Dec 2004 23:00:43 -0000 1.1
--- ScriptEdit.cpp 15 Apr 2005 18:24:10 -0000 1.2
***************
*** 126,131 ****
catch(hresult_exception &e)
{
! char s[200];
! sprintf(s, "Scripting Error: %d", e.hr);
m_console->Message((LPCTSTR)s, MSG_ERROR);
}
--- 126,131 ----
catch(hresult_exception &e)
{
! char s[1000];
! sprintf(s, "Scripting Error: 0x%x", e.hr);
m_console->Message((LPCTSTR)s, MSG_ERROR);
}
***************
*** 137,148 ****
try
{
! COMTHROW(m_host->SetGME(disp));
}
catch(hresult_exception &e)
{
! char s[200];
! sprintf(s, "Scripting Error: %d", e.hr);
m_console->Message((LPCTSTR)s, MSG_ERROR);
}
}
--- 137,161 ----
try
{
! COMTHROW(m_host->SetGMEApp(disp));
}
catch(hresult_exception &e)
{
! char s[1000];
! sprintf(s, "Scripting Error: 0x%x", e.hr);
m_console->Message((LPCTSTR)s, MSG_ERROR);
}
}
+ void CScriptEdit::SetGMEProj(IDispatch *disp)
+ {
+ try
+ {
+ COMTHROW(m_host->SetGMEProj(disp));
+ }
+ catch(hresult_exception &e)
+ {
+ char s[1000];
+ sprintf(s, "Scripting Error: 0x%x", e.hr);
+ m_console->Message((LPCTSTR)s, MSG_ERROR);
+ }
+ }
Index: ScriptHost.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Console/ScriptHost.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ScriptHost.h 26 Jan 2005 21:34:37 -0000 1.3
--- ScriptHost.h 15 Apr 2005 18:24:10 -0000 1.4
***************
*** 25,28 ****
--- 25,32 ----
public:
CScriptHost()
+ : m_console(0)
+ , m_iscript(0)
+ , m_iscriptParse(0)
+ , m_enginePID("")
{
}
***************
*** 45,49 ****
// IActiveScriptSite
public:
! STDMETHOD(SetGME)(/*[in]*/ IDispatch* gmeapp);
STDMETHOD(GetLCID)(/*[out]*/ LCID *plcid);
STDMETHOD(GetItemInfo)(
--- 49,54 ----
// IActiveScriptSite
public:
! STDMETHOD(SetGMEApp)(/*[in]*/ IDispatch* gmeapp);
! STDMETHOD(SetGMEProj)(/*[in]*/ IDispatch* gmeproj);
STDMETHOD(GetLCID)(/*[out]*/ LCID *plcid);
STDMETHOD(GetItemInfo)(
***************
*** 69,74 ****
_bstr_t m_enginePID;
! CComPtr<IGMEOLEApp> m_gmeptr;
CComPtr<IMgaProject> m_mgaproj;
};
--- 74,81 ----
_bstr_t m_enginePID;
! CComPtr<IGMEOLEApp> m_gmeptr;
CComPtr<IMgaProject> m_mgaproj;
+ CComPtr<IGMEOLEIt> m_actMod;
+
};
More information about the GME-commit
mailing list