[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, ¶ms, 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