/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ // MozillaBrowser.h : Declaration of the CMozillaBrowser #ifndef __MOZILLABROWSER_H_ #define __MOZILLABROWSER_H_ // This file is autogenerated by the ATL proxy wizard // so don't edit it! #include "CPMozillaControl.h" class CWebShellContainer; // Commands sent via WM_COMMAND #define ID_PRINT 1 #define ID_PAGESETUP 2 // Some definitions which are used to make firing events easier #define CDWebBrowserEvents1 CProxyDWebBrowserEvents #define CDWebBrowserEvents2 CProxyDWebBrowserEvents2 // A list of objects typedef CComPtr CComUnkPtr; typedef std::vector ObjectList; ///////////////////////////////////////////////////////////////////////////// // CMozillaBrowser class ATL_NO_VTABLE CMozillaBrowser : public CComObjectRootEx, public CComCoClass, public CComControl, public CDWebBrowserEvents1, public CDWebBrowserEvents2, public CStockPropImpl, public IProvideClassInfo2Impl<&CLSID_MozillaBrowser, &DIID_DWebBrowserEvents2, &LIBID_MOZILLACONTROLLib>, public IPersistStreamInitImpl, public IPersistStorageImpl, public IQuickActivateImpl, public IOleControlImpl, public IOleObjectImpl, public IOleInPlaceActiveObjectImpl, public IViewObjectExImpl, public IOleInPlaceObjectWindowlessImpl, public IDataObjectImpl, public ISupportErrorInfo, public IOleCommandTarget, public IConnectionPointContainerImpl, public ISpecifyPropertyPagesImpl { friend CWebShellContainer; public: CMozillaBrowser(); virtual ~CMozillaBrowser(); DECLARE_REGISTRY_RESOURCEID(IDR_MOZILLABROWSER) BEGIN_COM_MAP(CMozillaBrowser) // IE web browser interface COM_INTERFACE_ENTRY(IWebBrowser2) COM_INTERFACE_ENTRY_IID(IID_IDispatch, IWebBrowser2) COM_INTERFACE_ENTRY_IID(IID_IWebBrowser, IWebBrowser2) COM_INTERFACE_ENTRY_IID(IID_IWebBrowserApp, IWebBrowser2) COM_INTERFACE_ENTRY_IMPL(IViewObjectEx) COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx) COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx) COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject) COM_INTERFACE_ENTRY_IMPL(IOleControl) COM_INTERFACE_ENTRY_IMPL(IOleObject) // COM_INTERFACE_ENTRY_IMPL(IQuickActivate) // This causes size assertion in ATL COM_INTERFACE_ENTRY_IMPL(IPersistStorage) COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit) COM_INTERFACE_ENTRY_IMPL(ISpecifyPropertyPages) COM_INTERFACE_ENTRY_IMPL(IDataObject) COM_INTERFACE_ENTRY(IOleCommandTarget) COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2) COM_INTERFACE_ENTRY(ISupportErrorInfo) COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer) COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents, CDWebBrowserEvents1) COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents2, CDWebBrowserEvents2) END_COM_MAP() BEGIN_PROPERTY_MAP(CMozillaBrowser) // Example entries // PROP_ENTRY("Property Description", dispid, clsid) PROP_PAGE(CLSID_StockColorPage) END_PROPERTY_MAP() BEGIN_CONNECTION_POINT_MAP(CMozillaBrowser) // Fires IE events CONNECTION_POINT_ENTRY(DIID_DWebBrowserEvents2) CONNECTION_POINT_ENTRY(DIID_DWebBrowserEvents) END_CONNECTION_POINT_MAP() BEGIN_MSG_MAP(CMozillaBrowser) MESSAGE_HANDLER(WM_CREATE, OnCreate) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) MESSAGE_HANDLER(WM_SIZE, OnSize) MESSAGE_HANDLER(WM_PAINT, OnPaint) MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus) MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus) COMMAND_ID_HANDLER(ID_PRINT, OnPrint) COMMAND_ID_HANDLER(ID_PAGESETUP, OnPageSetup) END_MSG_MAP() // Windows message handlers LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnPrint(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); LRESULT OnPageSetup(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); // IViewObjectEx STDMETHOD(GetViewStatus)(DWORD* pdwStatus) { ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n")); *pdwStatus = VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE; return S_OK; } // Protected members protected: // Flag to prevent multiple object registrations static BOOL m_bRegistryInitialized; // Pointer to web shell manager CWebShellContainer * m_pWebShellContainer; // Mozilla interfaces nsIWebShell * m_pIWebShell; nsIPref * m_pIPref; // Indicates the browser is busy doing something BOOL m_bBusy; // Contains an error message if startup went wrong tstring m_sErrorMessage; // Property list PropertyList m_PropertyList; // Ready status of control READYSTATE m_nBrowserReadyState; // List of registered browser helper objects ObjectList m_cBrowserHelperList; virtual HRESULT CreateWebShell(); virtual HRESULT GetDOMDocument(nsIDOMDocument **pDocument); virtual BOOL IsValid(); virtual HRESULT LoadBrowserHelpers(); virtual HRESULT UnloadBrowserHelpers(); public: // IOleObjectImpl overrides HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect); // IOleObject overrides virtual HRESULT STDMETHODCALLTYPE CMozillaBrowser::GetClientSite(IOleClientSite **ppClientSite); // IWebBrowser implementation virtual HRESULT STDMETHODCALLTYPE GoBack(void); virtual HRESULT STDMETHODCALLTYPE GoForward(void); virtual HRESULT STDMETHODCALLTYPE GoHome(void); virtual HRESULT STDMETHODCALLTYPE GoSearch(void); virtual HRESULT STDMETHODCALLTYPE Navigate(BSTR URL, VARIANT __RPC_FAR *Flags, VARIANT __RPC_FAR *TargetFrameName, VARIANT __RPC_FAR *PostData, VARIANT __RPC_FAR *Headers); virtual HRESULT STDMETHODCALLTYPE Refresh(void); virtual HRESULT STDMETHODCALLTYPE Refresh2(VARIANT __RPC_FAR *Level); virtual HRESULT STDMETHODCALLTYPE Stop( void); virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch __RPC_FAR *__RPC_FAR *ppDisp); virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch __RPC_FAR *__RPC_FAR *ppDisp); virtual HRESULT STDMETHODCALLTYPE get_Container(IDispatch __RPC_FAR *__RPC_FAR *ppDisp); virtual HRESULT STDMETHODCALLTYPE get_Document(IDispatch __RPC_FAR *__RPC_FAR *ppDisp); virtual HRESULT STDMETHODCALLTYPE get_TopLevelContainer(VARIANT_BOOL __RPC_FAR *pBool); virtual HRESULT STDMETHODCALLTYPE get_Type(BSTR __RPC_FAR *Type); virtual HRESULT STDMETHODCALLTYPE get_Left(long __RPC_FAR *pl); virtual HRESULT STDMETHODCALLTYPE put_Left(long Left); virtual HRESULT STDMETHODCALLTYPE get_Top(long __RPC_FAR *pl); virtual HRESULT STDMETHODCALLTYPE put_Top(long Top); virtual HRESULT STDMETHODCALLTYPE get_Width(long __RPC_FAR *pl); virtual HRESULT STDMETHODCALLTYPE put_Width(long Width); virtual HRESULT STDMETHODCALLTYPE get_Height(long __RPC_FAR *pl); virtual HRESULT STDMETHODCALLTYPE put_Height(long Height); virtual HRESULT STDMETHODCALLTYPE get_LocationName(BSTR __RPC_FAR *LocationName); virtual HRESULT STDMETHODCALLTYPE get_LocationURL(BSTR __RPC_FAR *LocationURL); virtual HRESULT STDMETHODCALLTYPE get_Busy(VARIANT_BOOL __RPC_FAR *pBool); // IWebBrowserApp implementation virtual HRESULT STDMETHODCALLTYPE Quit(void); virtual HRESULT STDMETHODCALLTYPE ClientToWindow(int __RPC_FAR *pcx, int __RPC_FAR *pcy); virtual HRESULT STDMETHODCALLTYPE PutProperty(BSTR Property, VARIANT vtValue); virtual HRESULT STDMETHODCALLTYPE GetProperty(BSTR Property, VARIANT __RPC_FAR *pvtValue); virtual HRESULT STDMETHODCALLTYPE get_Name(BSTR __RPC_FAR *Name); virtual HRESULT STDMETHODCALLTYPE get_HWND(long __RPC_FAR *pHWND); virtual HRESULT STDMETHODCALLTYPE get_FullName(BSTR __RPC_FAR *FullName); virtual HRESULT STDMETHODCALLTYPE get_Path(BSTR __RPC_FAR *Path); virtual HRESULT STDMETHODCALLTYPE get_Visible(VARIANT_BOOL __RPC_FAR *pBool); virtual HRESULT STDMETHODCALLTYPE put_Visible(VARIANT_BOOL Value); virtual HRESULT STDMETHODCALLTYPE get_StatusBar(VARIANT_BOOL __RPC_FAR *pBool); virtual HRESULT STDMETHODCALLTYPE put_StatusBar(VARIANT_BOOL Value); virtual HRESULT STDMETHODCALLTYPE get_StatusText(BSTR __RPC_FAR *StatusText); virtual HRESULT STDMETHODCALLTYPE put_StatusText(BSTR StatusText); virtual HRESULT STDMETHODCALLTYPE get_ToolBar(int __RPC_FAR *Value); virtual HRESULT STDMETHODCALLTYPE put_ToolBar(int Value); virtual HRESULT STDMETHODCALLTYPE get_MenuBar(VARIANT_BOOL __RPC_FAR *Value); virtual HRESULT STDMETHODCALLTYPE put_MenuBar(VARIANT_BOOL Value); virtual HRESULT STDMETHODCALLTYPE get_FullScreen(VARIANT_BOOL __RPC_FAR *pbFullScreen); virtual HRESULT STDMETHODCALLTYPE put_FullScreen(VARIANT_BOOL bFullScreen); // IWebBrowser2 implementation virtual HRESULT STDMETHODCALLTYPE Navigate2(VARIANT __RPC_FAR *URL, VARIANT __RPC_FAR *Flags, VARIANT __RPC_FAR *TargetFrameName, VARIANT __RPC_FAR *PostData, VARIANT __RPC_FAR *Headers); virtual HRESULT STDMETHODCALLTYPE QueryStatusWB(OLECMDID cmdID, OLECMDF __RPC_FAR *pcmdf); virtual HRESULT STDMETHODCALLTYPE ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, VARIANT __RPC_FAR *pvaIn, VARIANT __RPC_FAR *pvaOut); virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(VARIANT __RPC_FAR *pvaClsid, VARIANT __RPC_FAR *pvarShow, VARIANT __RPC_FAR *pvarSize); virtual HRESULT STDMETHODCALLTYPE get_ReadyState(READYSTATE __RPC_FAR *plReadyState); virtual HRESULT STDMETHODCALLTYPE get_Offline(VARIANT_BOOL __RPC_FAR *pbOffline); virtual HRESULT STDMETHODCALLTYPE put_Offline(VARIANT_BOOL bOffline); virtual HRESULT STDMETHODCALLTYPE get_Silent(VARIANT_BOOL __RPC_FAR *pbSilent); virtual HRESULT STDMETHODCALLTYPE put_Silent(VARIANT_BOOL bSilent); virtual HRESULT STDMETHODCALLTYPE get_RegisterAsBrowser(VARIANT_BOOL __RPC_FAR *pbRegister); virtual HRESULT STDMETHODCALLTYPE put_RegisterAsBrowser(VARIANT_BOOL bRegister); virtual HRESULT STDMETHODCALLTYPE get_RegisterAsDropTarget(VARIANT_BOOL __RPC_FAR *pbRegister); virtual HRESULT STDMETHODCALLTYPE put_RegisterAsDropTarget(VARIANT_BOOL bRegister); virtual HRESULT STDMETHODCALLTYPE get_TheaterMode(VARIANT_BOOL __RPC_FAR *pbRegister); virtual HRESULT STDMETHODCALLTYPE put_TheaterMode(VARIANT_BOOL bRegister); virtual HRESULT STDMETHODCALLTYPE get_AddressBar(VARIANT_BOOL __RPC_FAR *Value); virtual HRESULT STDMETHODCALLTYPE put_AddressBar(VARIANT_BOOL Value); virtual HRESULT STDMETHODCALLTYPE get_Resizable(VARIANT_BOOL __RPC_FAR *Value); virtual HRESULT STDMETHODCALLTYPE put_Resizable(VARIANT_BOOL Value); // IOleCommandTarget implementation virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID __RPC_FAR *pguidCmdGroup, ULONG cCmds, OLECMD __RPC_FAR prgCmds[], OLECMDTEXT __RPC_FAR *pCmdText); virtual HRESULT STDMETHODCALLTYPE Exec(const GUID __RPC_FAR *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT __RPC_FAR *pvaIn, VARIANT __RPC_FAR *pvaOut); public: HRESULT OnDraw(ATL_DRAWINFO& di); }; #endif //__MOZILLABROWSER_H_