[commit] r1817 - trunk/GME/Console

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Wed Feb 1 17:28:55 CST 2012


Author: ksmyth
Date: Wed Feb  1 17:28:55 2012
New Revision: 1817

Log:
Add gme script element to web page

Modified:
   trunk/GME/Console/ConsoleCtl.cpp
   trunk/GME/Console/ConsoleCtl.h
   trunk/GME/Console/HtmlCtrl.cpp
   trunk/GME/Console/HtmlCtrl.h

Modified: trunk/GME/Console/ConsoleCtl.cpp
==============================================================================
--- trunk/GME/Console/ConsoleCtl.cpp	Wed Feb  1 17:28:42 2012	(r1816)
+++ trunk/GME/Console/ConsoleCtl.cpp	Wed Feb  1 17:28:55 2012	(r1817)
@@ -410,6 +410,8 @@
 {
 	AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
 	m_edit.SetGMEApp(disp);
+	m_gmeptr = disp;
+	AddGMEToScript();
 }
 
 void CConsoleCtrl::SetGMEProj(IDispatch *disp)
@@ -882,4 +884,42 @@
 	return FALSE;
 }
 
+HRESULT CConsoleCtrl::AddGMEToScript()
+{
+	HRESULT hr;
+
+	CComPtr<IHTMLDocument2> pHtmlDoc;
+	CComPtr<IDispatch> pDispatch = m_browser.GetHtmlDocument();
+	COMTHROW(pDispatch.QueryInterface(&pHtmlDoc));
+
+	CComPtr<IDispatch> script;
+	pHtmlDoc->get_Script(&script);
+	CComPtr<IDispatchEx> scriptex;
+	if (script)
+	{
+		script->QueryInterface(IID_IDispatchEx, (void**)&scriptex);
+	}
+	
+	if(script == NULL) // || m_gmeptr == NULL)
+		return E_INVALIDARG;
+
+	DISPID dispIdThis = 0;
+	hr = scriptex->GetDispID(_bstr_t(L"gme"), fdexNameEnsure | fdexNameCaseSensitive, &dispIdThis);
+	if (FAILED(hr))
+		return hr;
+	if (dispIdThis == 0)
+		return E_FAIL;
+
+	DISPID dispIdPut = DISPID_PROPERTYPUT;
+	DISPPARAMS params = {0};
+	EXCEPINFO ei;
+			
+	CComVariant arg = m_gmeptr;
+	params.cArgs = 1;
+	params.rgvarg = &arg;
+	params.cNamedArgs = 1;
+	params.rgdispidNamedArgs = &dispIdPut;
+			
+	return scriptex->InvokeEx(dispIdThis, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT, &params, NULL, &ei, NULL);
+}
 

Modified: trunk/GME/Console/ConsoleCtl.h
==============================================================================
--- trunk/GME/Console/ConsoleCtl.h	Wed Feb  1 17:28:42 2012	(r1816)
+++ trunk/GME/Console/ConsoleCtl.h	Wed Feb  1 17:28:55 2012	(r1817)
@@ -109,6 +109,8 @@
 	afx_msg __int64 GetCWnd() { return (__int64)(void*)(CWnd*)this; }
 	afx_msg void SetCWnd(void*) {  }
 	BOOL PreTranslateMessage(MSG* pMsg);
+	HRESULT AddGMEToScript();
+	CComPtr<IDispatch> m_gmeptr;
 };
 
 //{{AFX_INSERT_LOCATION}}

Modified: trunk/GME/Console/HtmlCtrl.cpp
==============================================================================
--- trunk/GME/Console/HtmlCtrl.cpp	Wed Feb  1 17:28:42 2012	(r1816)
+++ trunk/GME/Console/HtmlCtrl.cpp	Wed Feb  1 17:28:55 2012	(r1817)
@@ -145,3 +145,12 @@
 		ctrl->FireClickMGAID(lpszWhere);
 	}
 }
+
+void CHtmlCtrl::OnDocumentComplete(LPCTSTR lpszURL)
+{
+	CWnd *wnd = GetParent();
+	if (wnd->IsKindOf(RUNTIME_CLASS(CConsoleCtrl))) {
+		CConsoleCtrl *ctrl = STATIC_DOWNCAST(CConsoleCtrl, wnd);
+		ctrl->AddGMEToScript();
+	}
+}

Modified: trunk/GME/Console/HtmlCtrl.h
==============================================================================
--- trunk/GME/Console/HtmlCtrl.h	Wed Feb  1 17:28:42 2012	(r1816)
+++ trunk/GME/Console/HtmlCtrl.h	Wed Feb  1 17:28:55 2012	(r1817)
@@ -55,9 +55,7 @@
 
 	// override to handle links to "app:mumble...". lpszWhere will be "mumble"
     virtual void OnMgaURL(LPCTSTR lpszWhere);
-
-
-
+	virtual void OnDocumentComplete(LPCTSTR lpszURL);
 
 // Implementation
 protected:


More information about the gme-commit mailing list