00001
00002
00003
00004
00005
00006 #if !defined(AFX_VMSDOCHOSTUIHANDLER_H__F6586962_B0E8_4009_AD67_83DF5459BE7C__INCLUDED_)
00007 #define AFX_VMSDOCHOSTUIHANDLER_H__F6586962_B0E8_4009_AD67_83DF5459BE7C__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 #include <mshtmhst.h>
00014 #include <mshtml.h>
00015 #include <comdef.h>
00016 _COM_SMARTPTR_TYPEDEF(IHTMLInputTextElement, __uuidof(IHTMLInputTextElement));
00017 _COM_SMARTPTR_TYPEDEF(IHTMLTextAreaElement, __uuidof(IHTMLTextAreaElement));
00018
00019 class vmsDocHostUIHandler : public IDocHostUIHandler
00020 {
00021 public:
00022 STDMETHOD(GetHostInfo)(DOCHOSTUIINFO *pInfo);
00023 vmsDocHostUIHandler();
00024 virtual ~vmsDocHostUIHandler();
00025
00026 HRESULT __stdcall QueryInterface(REFIID riid, void** ppvObject)
00027 {
00028 *ppvObject = NULL;
00029
00030 if (IsEqualGUID(riid, IID_IUnknown))
00031 *ppvObject = static_cast<IDocHostUIHandler*>(this);
00032
00033 if (IsEqualGUID(riid, IID_IDocHostUIHandler))
00034 *ppvObject = static_cast<IDocHostUIHandler*>(this);
00035
00036 if (*ppvObject)
00037 {
00038 ((IUnknown*)*ppvObject)->AddRef();
00039 return S_OK;
00040 }
00041 else return E_NOINTERFACE;
00042 }
00043
00044 DWORD __stdcall AddRef()
00045 {
00046 return InterlockedIncrement(&m_cRef);
00047 }
00048
00049 DWORD __stdcall Release()
00050 {
00051 InterlockedDecrement(&m_cRef);
00052 return m_cRef;
00053 }
00054
00055 STDMETHOD( ShowContextMenu )(
00056 DWORD dwID,
00057 POINT *ppt,
00058 IUnknown *pcmdtReserved,
00059 IDispatch *pdispReserved)
00060 {
00061
00062 IHTMLInputTextElementPtr spTextInp (pdispReserved);
00063 if (spTextInp != NULL)
00064 return S_FALSE;
00065 IHTMLTextAreaElementPtr spTextArea (pdispReserved);
00066 if (spTextArea != NULL)
00067 return S_FALSE;
00068
00069 return S_OK;
00070 }
00071
00072 STDMETHOD( ShowUI )(
00073 DWORD dwID,
00074 IOleInPlaceActiveObject *pActiveObject,
00075 IOleCommandTarget *pCommandTarget,
00076 IOleInPlaceFrame *pFrame,
00077 IOleInPlaceUIWindow *pDoc)
00078 { return E_NOTIMPL; }
00079
00080 STDMETHOD( HideUI )( )
00081 { return E_NOTIMPL; }
00082
00083 STDMETHOD( UpdateUI )( )
00084 { return E_NOTIMPL; }
00085
00086 STDMETHOD( EnableModeless )(
00087 BOOL fEnable)
00088 { return E_NOTIMPL; }
00089
00090 STDMETHOD( OnDocWindowActivate )(
00091 BOOL fActivate)
00092 { return E_NOTIMPL; }
00093
00094 STDMETHOD( OnFrameWindowActivate )(
00095 BOOL fActivate)
00096 { return E_NOTIMPL; }
00097
00098 STDMETHOD( ResizeBorder )(
00099 LPCRECT prcBorder,
00100 IOleInPlaceUIWindow *pUIWindow,
00101 BOOL fRameWindow)
00102 { return E_NOTIMPL; }
00103
00104 STDMETHOD( TranslateAccelerator )(
00105 LPMSG lpMsg,
00106 const GUID *pguidCmdGroup,
00107 DWORD nCmdID)
00108 { return E_NOTIMPL; }
00109
00110 STDMETHOD( GetOptionKeyPath )(
00111 LPOLESTR *pchKey,
00112 DWORD dw)
00113 { return E_NOTIMPL; }
00114
00115 STDMETHOD( GetDropTarget )(
00116 IDropTarget *pDropTarget,
00117 IDropTarget **ppDropTarget)
00118 { return E_NOTIMPL; }
00119
00120 STDMETHOD( GetExternal )(
00121 IDispatch **ppDispatch)
00122 { return E_NOTIMPL; }
00123
00124 STDMETHOD( TranslateUrl )(
00125 DWORD dwTranslate,
00126 OLECHAR *pchURLIn,
00127 OLECHAR **ppchURLOut)
00128 { return E_NOTIMPL; }
00129
00130 STDMETHOD( FilterDataObject )(
00131 IDataObject *pDO,
00132 IDataObject **ppDORet)
00133 { return E_NOTIMPL; }
00134
00135 protected:
00136 long m_cRef;
00137 };
00138
00139 #endif