123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- #include "main.h"
- #include <windows.h>
- #include "evntsink.h"
- CEventSink::CEventSink()
- {
- m_cRefs = 1;
- }
- 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;
- }
- ULONG CEventSink::AddRef(void)
- {
- return ++m_cRefs;
- }
- ULONG CEventSink::Release(void)
- {
- if (--m_cRefs)
- return m_cRefs;
- delete this;
- return 0;
- }
- HRESULT CEventSink::GetIDsOfNames(REFIID riid, OLECHAR FAR* FAR* rgszNames, unsigned int cNames, LCID lcid, DISPID FAR* rgdispid)
- {
- *rgdispid = DISPID_UNKNOWN;
- return DISP_E_UNKNOWNNAME;
- }
- HRESULT CEventSink::GetTypeInfo(unsigned int itinfo, LCID lcid, ITypeInfo FAR* FAR* pptinfo)
- {
- return E_NOTIMPL;
- }
- HRESULT CEventSink::GetTypeInfoCount(unsigned int FAR * pctinfo)
- {
- return E_NOTIMPL;
- }
- void main_setStatusText(LPCWSTR txt)
- {
- char dest[512];
- dest[0]=0;
- WideCharToMultiByte(CP_ACP,0,txt,-1,dest,sizeof(dest),NULL,NULL);
-
- }
- 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);
-
- }
- 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)
- {
-
- case 0x66:
- main_setStatusText(pdispparams->rgvarg[0].bstrVal);
-
- break;
-
- case 0x6c:
- break;
-
- case 0x69:
-
- break;
-
- case 0x6a:
-
- break;
-
- case 0x68:
-
- break;
-
-
- case 0x071:
-
- break;
-
- case 0x70:
-
- break;
-
- case 0xfa:
- main_beforeNavigate(pdispparams->rgvarg[5].bstrVal);
- break;
-
- case 0xfb:
- break;
-
-
- case 0xfc:
- break;
-
- case 0x0103:
- break;
-
- case 0xfd:
- break;
-
- case 0xfe:
- break;
-
- case 0xff:
- break;
-
- case 0x0100:
- break;
-
- case 0x0101:
- break;
-
-
- case 0x0102:
- break;
-
-
- case 0x0104:
- break;
- }
- return S_OK;
- }
|