00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00025 #pragma once
00026
00027 #ifndef __WTL_TABBED_FRAME_H__
00028 #error HtmlFrame.h requires TabbedFrame.h to be included first
00029 #endif
00030
00031 #include <ExDispid.h>
00032
00033 #include "ChildFrm.h"
00034 #include "HtmlView.h"
00035
00037
00038 class CMainFrame;
00039
00040 static _ATL_FUNC_INFO TitleChangeInfo = {CC_STDCALL, VT_EMPTY, 1, { VT_BSTR } };
00041 static _ATL_FUNC_INFO NavigateComplete2Info = {CC_STDCALL, VT_EMPTY, 2, { VT_DISPATCH, (VT_BYREF | VT_VARIANT)}};
00042 static _ATL_FUNC_INFO DocumentCompleteInfo = {CC_STDCALL, VT_EMPTY, 2, { VT_DISPATCH, (VT_BYREF | VT_VARIANT) } };
00043
00045
00046 class CHtmlFrame :
00047 public CChildFrame,
00048 public IDispEventSimpleImpl<0, CHtmlFrame, &DIID_DWebBrowserEvents2>
00049 {
00050 protected:
00051 public:
00052 DECLARE_FRAME_WND_CLASS(NULL, IDR_MDICHILD)
00053
00054
00055 CHtmlView *m_pHtmlView;
00056
00057 CComPtr<IUnknown> m_punkBrowser;
00058
00059
00060 CHtmlFrame(CMainFrame *pMainFrame);
00061 virtual void OnFinalMessage(HWND );
00062
00063 void SetCommandBarCtrlForContextMenu(CTabbedMDICommandBarCtrl* pCmdBar);
00064
00065 BEGIN_MSG_MAP(CHtmlFrame)
00066 MESSAGE_HANDLER(WM_CREATE, OnCreate)
00067 MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
00068 MESSAGE_HANDLER(WM_FORWARDMSG, OnForwardMsg)
00069 MESSAGE_HANDLER(WM_SETTINGCHANGE, OnSettingChange)
00070
00071 MESSAGE_HANDLER(UWM_MDICHILDSHOWTABCONTEXTMENU, OnShowTabContextMenu)
00072
00073 COMMAND_ID_HANDLER(ID_FILE_SAVE, OnFileSave)
00074 COMMAND_ID_HANDLER(ID_FILE_CLOSE, OnFileClose)
00075
00076 CHAIN_MSG_MAP(CChildFrame)
00077
00078 CHAIN_CLIENT_COMMANDS ()
00079
00080 REFLECT_NOTIFICATIONS()
00081
00082 END_MSG_MAP()
00083
00084
00085
00086
00087
00088
00089 LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
00090 LRESULT OnDestroy(UINT , WPARAM , LPARAM , BOOL& bHandled);
00091 LRESULT OnForwardMsg(UINT , WPARAM , LPARAM lParam, BOOL& );
00092 LRESULT OnSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& );
00093
00094
00095 CHtmlView* GetView() { return m_pHtmlView; }
00096
00097 CMainFrame* GetMainFrame() { return m_pMainFrame; }
00098
00099 LRESULT OnShowTabContextMenu(UINT , WPARAM , LPARAM lParam, BOOL& bHandled);
00100 LRESULT OnFileSave(WORD , WORD , HWND , BOOL& );
00101 LRESULT OnFileClose(WORD , WORD , HWND , BOOL& );
00102
00103 public:
00104 BEGIN_SINK_MAP(CHtmlFrame)
00105 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_TITLECHANGE, OnTitleChange, &TitleChangeInfo)
00106 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, OnNavigateComplete2, &NavigateComplete2Info)
00107 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete, &DocumentCompleteInfo)
00108 END_SINK_MAP()
00109
00110 void __stdcall OnTitleChange(BSTR sTitle);
00111 void __stdcall OnNavigateComplete2(IDispatch* pDisp, VARIANT* vtURL);
00112 void __stdcall OnDocumentComplete(IDispatch* pDisp, VARIANT* vtURL);
00113 };