//********************************************************************* //* Microsoft Windows ** //* Copyright(c) Microsoft Corp., 1999 ** //********************************************************************* // // MSOBWEB.H - Header for the implementation of CObWebBrowser // // HISTORY: // // 1/27/99 a-jaswed Created. // // Class which will call up an IOleSite and the WebOC // and provide external interfaces. #ifndef _MSOBWEB_H_ #define _MSOBWEB_H_ #include #include #include "cunknown.h" #include "obweb.h" #include "iosite.h" #include "wmp.h" class CObWebBrowser : public CUnknown, public IObWebBrowser, public IDispatch { // Declare the delegating IUnknown. DECLARE_IUNKNOWN public: static HRESULT CreateInstance (IUnknown* pOuterUnknown, CUnknown** ppNewComponent); // IObWebBrowser Members virtual HRESULT __stdcall AttachToWindow (HWND hWnd); virtual HRESULT __stdcall PreTranslateMessage (LPMSG lpMsg); virtual HRESULT __stdcall Navigate (WCHAR* pszUrl, WCHAR* pszTarget); virtual HRESULT __stdcall ListenToWebBrowserEvents (IUnknown* pUnk); virtual HRESULT __stdcall StopListeningToWebBrowserEvents (IUnknown* pUnk); virtual HRESULT __stdcall get_WebBrowserDoc (IDispatch** ppDisp); virtual HRESULT __stdcall ObWebShowWindow (); virtual HRESULT __stdcall SetExternalInterface (IUnknown* pUnk); virtual HRESULT __stdcall Stop(); STDMETHOD (PlayBackgroundMusic) (); STDMETHOD (StopBackgroundMusic) (); STDMETHOD (UnhookScriptErrorHandler) (); // IDispatch Members STDMETHOD (GetTypeInfoCount) (UINT* pcInfo); STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo** ); STDMETHOD (GetIDsOfNames) (REFIID, OLECHAR**, UINT, LCID, DISPID* ); STDMETHOD (Invoke) (DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr); private: HWND m_hMainWnd; COleSite* m_pOleSite; LPOLEOBJECT m_lpOleObject; IWebBrowser2* m_lpWebBrowser; DWORD m_dwcpCookie; DWORD m_dwDrawAspect; BOOL m_fInPlaceActive; // Script error reporting stuff BOOL m_fOnErrorWasHooked; // Need a convenient place to have a WMP control COleSite* m_pOleSiteWMP; LPOLEOBJECT m_lpOleObjectWMP; IWMPPlayer* m_pWMPPlayer; // IUnknown virtual HRESULT __stdcall NondelegatingQueryInterface( const IID& iid, void** ppv); CObWebBrowser (IUnknown* pOuterUnknown); virtual ~CObWebBrowser (); virtual void FinalRelease (); // Notify derived classes that we are releasing void InitBrowserObject (); void InPlaceActivate (); void UIActivate (); void CloseOleObject (); void UnloadOleObject (); HRESULT ConnectToConnectionPoint (IUnknown* punkThis, REFIID riidEvent, BOOL fConnect, IUnknown* punkTarget, DWORD* pdwCookie, IConnectionPoint** ppcpOut); STDMETHOD(onerror) (IN VARIANT* pvarMsg, IN VARIANT* pvarUrl, IN VARIANT* pvarLine, OUT VARIANT_BOOL* pfResult); }; #define SETDefFormatEtc(fe, cf, med) \ {\ (fe).cfFormat=cf;\ (fe).dwAspect=DVASPECT_CONTENT;\ (fe).ptd=NULL;\ (fe).tymed=med;\ (fe).lindex=-1;\ }; #endif