aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_local/evntsink.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Plugins/Library/ml_local/evntsink.cpp')
-rw-r--r--Src/Plugins/Library/ml_local/evntsink.cpp239
1 files changed, 239 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_local/evntsink.cpp b/Src/Plugins/Library/ml_local/evntsink.cpp
new file mode 100644
index 00000000..e3301e39
--- /dev/null
+++ b/Src/Plugins/Library/ml_local/evntsink.cpp
@@ -0,0 +1,239 @@
+/**************************************************************************
+ THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF
+ ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+ PARTICULAR PURPOSE.
+
+ Copyright 1998 Microsoft Corporation. All Rights Reserved.
+**************************************************************************/
+
+/**************************************************************************
+
+ File: evntsink.cpp
+
+ Description: This file contains the implementation of the event sink.
+
+**************************************************************************/
+
+/**************************************************************************
+ #include statements
+**************************************************************************/
+
+#include "main.h"
+#include <windows.h>
+#include "evntsink.h"
+
+/**************************************************************************
+ function prototypes
+**************************************************************************/
+
+/**************************************************************************
+ global variables and definitions
+**************************************************************************/
+
+/**************************************************************************
+
+ CEventSink::CEventSink()
+
+**************************************************************************/
+
+CEventSink::CEventSink()
+{
+ m_cRefs = 1;
+}
+
+/**************************************************************************
+
+ CEventSink::QueryInterface()
+
+**************************************************************************/
+
+STDMETHODIMP CEventSink::QueryInterface(REFIID riid, PVOID *ppvObject)
+{
+ if (!ppvObject)
+ return E_POINTER;
+
+ if (IsEqualIID(riid, IID_IDispatch))
+ *ppvObject = (IDispatch *)this;
+ else if (IsEqualIID(riid, IID_IUnknown))
+ *ppvObject = this;
+ else
+ {
+ *ppvObject = NULL;
+ return E_NOINTERFACE;
+ }
+
+ AddRef();
+ return S_OK;
+}
+
+/**************************************************************************
+
+ CEventSink::AddRef()
+
+**************************************************************************/
+
+ULONG CEventSink::AddRef(void)
+{
+ return ++m_cRefs;
+}
+
+/**************************************************************************
+
+ CEventSink::Release()
+
+**************************************************************************/
+
+ULONG CEventSink::Release(void)
+{
+ if (--m_cRefs)
+ return m_cRefs;
+
+ delete this;
+ return 0;
+}
+
+/**************************************************************************
+
+ CEventSink::GetIDsOfNames()
+
+**************************************************************************/
+
+HRESULT CEventSink::GetIDsOfNames(REFIID riid, OLECHAR FAR* FAR* rgszNames, unsigned int cNames, LCID lcid, DISPID FAR* rgdispid)
+{
+ *rgdispid = DISPID_UNKNOWN;
+ return DISP_E_UNKNOWNNAME;
+}
+
+/**************************************************************************
+
+ CEventSink::GetTypeInfo()
+
+**************************************************************************/
+
+HRESULT CEventSink::GetTypeInfo(unsigned int itinfo, LCID lcid, ITypeInfo FAR* FAR* pptinfo)
+{
+ return E_NOTIMPL;
+}
+
+/**************************************************************************
+
+ CEventSink::GetTypeInfoCount()
+
+**************************************************************************/
+
+HRESULT CEventSink::GetTypeInfoCount(unsigned int FAR * pctinfo)
+{
+ return E_NOTIMPL;
+}
+
+/**************************************************************************
+
+ CEventSink::Invoke()
+
+**************************************************************************/
+
+void main_setStatusText(LPCWSTR txt)
+{
+ char dest[512];
+ dest[0]=0;
+ WideCharToMultiByte(CP_ACP,0,txt,-1,dest,sizeof(dest),NULL,NULL);
+ //SetDlgItemText(m_hwnd,IDC_STATUS,dest);
+}
+
+void main_beforeNavigate(LPCWSTR txt)
+{
+ VARIANT *blah=(VARIANT *)txt;
+ char dest[512];
+ dest[0]=0;
+ WideCharToMultiByte(CP_ACP,0,blah->bstrVal,-1,dest,sizeof(dest),NULL,NULL);
+ //SetDlgItemText(m_hwnd,IDC_QUICKSEARCH,dest);
+}
+
+HRESULT CEventSink::Invoke(DISPID dispid, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS FAR *pdispparams, VARIANT FAR *pvarResult, EXCEPINFO FAR * pexecinfo, unsigned int FAR *puArgErr)
+{
+ switch (dispid)
+ {
+ // void StatusTextChange([in] BSTR Text);
+ case 0x66:
+ main_setStatusText(pdispparams->rgvarg[0].bstrVal);
+ //m_pApp->eventStatusTextChange(pdispparams->rgvarg[0].bstrVal);
+ break;
+
+ // void ProgressChange([in] long Progress, [in] long ProgressMax);
+ case 0x6c:
+ break;
+
+ // void CommandStateChange([in] long Command, [in] VARIANT_BOOL Enable);
+ case 0x69:
+ //m_pApp->eventCommandStateChange(pdispparams->rgvarg[1].lVal, pdispparams->rgvarg[0].boolVal);
+ break;
+
+ // void DownloadBegin();
+ case 0x6a:
+ //m_pApp->eventDownloadBegin();
+ break;
+
+ // void DownloadComplete();
+ case 0x68:
+ //m_pApp->eventDownloadComplete();
+ break;
+
+ // void TitleChange([in] BSTR Text);
+ case 0x071:
+ //m_pApp->eventTitleChange(pdispparams->rgvarg[0].bstrVal);
+ break;
+
+ // void PropertyChange([in] BSTR szProperty);
+ case 0x70:
+ //m_pApp->eventPropertyChange(pdispparams->rgvarg[0].bstrVal);
+ break;
+
+ // void BeforeNavigate2([in] IDispatch* pDisp, [in] VARIANT* URL, [in] VARIANT* Flags, [in] VARIANT* TargetFrameName, [in] VARIANT* PostData, [in] VARIANT* Headers, [in, out] VARIANT_BOOL* Cancel);
+ case 0xfa:
+ main_beforeNavigate(pdispparams->rgvarg[5].bstrVal);
+ break;
+
+ // void NewWindow2([in, out] IDispatch** ppDisp, [in, out] VARIANT_BOOL* Cancel);
+ case 0xfb:
+ break;
+
+ // void NavigateComplete2([in] IDispatch* pDisp, [in] VARIANT* URL);
+ case 0xfc:
+ break;
+
+ // void DocumentComplete([in] IDispatch* pDisp, [in] VARIANT* URL);
+ case 0x0103:
+ break;
+
+ // void OnQuit();
+ case 0xfd:
+ break;
+
+ // void OnVisible([in] VARIANT_BOOL Visible);
+ case 0xfe:
+ break;
+
+ // void OnToolBar([in] VARIANT_BOOL ToolBar);
+ case 0xff:
+ break;
+
+ // void OnMenuBar([in] VARIANT_BOOL MenuBar);
+ case 0x0100:
+ break;
+
+ // void OnStatusBar([in] VARIANT_BOOL StatusBar);
+ case 0x0101:
+ break;
+
+ // void OnFullScreen([in] VARIANT_BOOL FullScreen);
+ case 0x0102:
+ break;
+
+ // void OnTheaterMode([in] VARIANT_BOOL TheaterMode);
+ case 0x0104:
+ break;
+ }
+
+ return S_OK;
+}