// jdView.cpp : implementation of the CJdView class
//
#include "stdafx.h"
#include "jd.h"
#include "jdDoc.h"
#include "jdView.h"
#include"MainFrm.h"
#include <UrlHist.h>
#include <mshtmhst.h>
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
#import <mshtml.tlb>
typedef UINT (CALLBACK* LPFNORGFAV)(HWND, LPTSTR);
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CJdView
IMPLEMENT_DYNCREATE(CJdView, CHtmlView)
BEGIN_MESSAGE_MAP(CJdView, CHtmlView)
//{{AFX_MSG_MAP(CJdView)
ON_COMMAND(ID_BACK, OnBack)
ON_COMMAND(ID_FOWARD, OnFoward)
ON_COMMAND(ID_HOME, OnHome)
ON_COMMAND(ID_INTERNET, OnInternet)
ON_COMMAND(ID_REFLESH, OnReflesh)
ON_COMMAND(ID_STOP, OnStop)
ON_COMMAND(ID_SEARCH, OnSearch)
ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs)
ON_COMMAND(ID_YFILE, OnYfile)
ON_COMMAND(ID_FIND, OnFind)
ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
ON_COMMAND(ID_EDIT_CUT, OnEditCut)
ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
ON_COMMAND(ID_EDIT_REDO, OnEditRedo)
ON_COMMAND(ID_SELECTALL, OnSelectall)
ON_COMMAND(ID_JZGG, OnJzgg)
ON_UPDATE_COMMAND_UI(ID_JZGG, OnUpdateJzgg)
ON_COMMAND(ID_ZLTB, OnZltb)
ON_COMMAND(ID_ZLTBSUB, OnZltbsub)
ON_COMMAND(ID_GETNAME, OnGetname)
ON_COMMAND(ID_SCJADD, OnScjadd)
ON_COMMAND(ID_SCJZL, OnScjzl)
ON_COMMAND(ID_SETDEFAULTIE, OnSetdefaultie)
ON_COMMAND(ID_ZBIG, OnZbig)
ON_COMMAND(ID_JBIG, OnJbig)
ON_COMMAND(ID_ZHONG, OnZhong)
ON_COMMAND(ID_JSMALL, OnJsmall)
ON_COMMAND(ID_ZSMALL, OnZsmall)
ON_UPDATE_COMMAND_UI(ID_JBIG, OnUpdateJbig)
ON_UPDATE_COMMAND_UI(ID_JSMALL, OnUpdateJsmall)
ON_UPDATE_COMMAND_UI(ID_ZBIG, OnUpdateZbig)
ON_UPDATE_COMMAND_UI(ID_ZHONG, OnUpdateZhong)
ON_UPDATE_COMMAND_UI(ID_ZSMALL, OnUpdateZsmall)
ON_COMMAND(ID_ZLHISTORY, OnZlhistory)
ON_COMMAND(ID_XZREAD, OnXzread)
ON_COMMAND(ID_MMREAD, OnMmread)
ON_UPDATE_COMMAND_UI(ID_MMREAD, OnUpdateMmread)
ON_COMMAND(ID_FILE_NEW, OnFileNew)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CHtmlView::OnFilePrint)
ON_MESSAGE(WM_JDQOPEN, OnJdqopen)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CJdView construction/destruction
CComModule _Module; // 由于要使用 CComDispatchDriver ATL的智能指针,所以声明它是必须的
#include <atlcom.h>
void CJdView::fz(CString&name,CComVariant &vv)
{if(name=="username")vv=username;
else if(name=="psw")vv="jdq123456";
else if(name=="psw1")vv="jdq123456";
else if(name=="email")vv="jdqmath@sohu.com";
else if(name=="question")vv="jdq2020_1";
else if(name=="answer")vv="jdq2020_1";
else if(name=="sfz")vv="510721890201891";
else if(name=="mobil")vv="7894561";
else vv="unkwun";
}
CJdView::CJdView()
{useri=0;username="jdq2020_1_1";ispop=0;
wz.SetSize(0,5);
fontsize=2;
}
CJdView::~CJdView()
{
}
BOOL CJdView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CHtmlView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CJdView drawing
void CJdView::OnDraw(CDC* pDC)
{
CJdDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
Navigate2(pDoc->url,NULL,NULL);}
void CJdView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
::CoInitialize(NULL);
CJdDoc* pDoc = GetDocument();
pDoc->vhwnd=GetSafeHwnd();
loadwz();
GoHome();
}
/////////////////////////////////////////////////////////////////////////////
// CJdView printing
/////////////////////////////////////////////////////////////////////////////
// CJdView diagnostics
#ifdef _DEBUG
void CJdView::AssertValid() const
{
CHtmlView::AssertValid();
}
void CJdView::Dump(CDumpContext& dc) const
{
CHtmlView::Dump(dc);
}
CJdDoc* CJdView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CJdDoc)));
return (CJdDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CJdView message handlers
void CJdView::OnJdqopen()
{CJdDoc* pDoc = GetDocument();
Navigate2(pDoc->url,NULL,NULL);
}
void CJdView::OnBack()
{
GoBack();
}
void CJdView::OnFoward()
{ GoForward();
}
void CJdView::OnHome()
{GoHome(); }
void CJdView::OnInternet()
{MSHTML::IHTMLDocument2Ptr pdoc;
COleVariant varinput,varoutput;
IOleCommandTarget *pCmd;
HRESULT hr;
pdoc=GetHtmlDocument();
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
if(SUCCEEDED(hr))
{
varinput=_T("");
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
}
}
void CJdView::OnReflesh()
{Refresh();}
void CJdView::OnStop()
{Stop();}
void CJdView::OnSearch()
{GoSearch(); }
void CJdView::OnFileSaveAs()
{
COleVariant bstr;
ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT, &bstr, NULL);
}
void CJdView::OnYfile()
{
MSHTML::IHTMLDocument2Ptr pdoc;
_variant_t varinput,varoutput;
IOleCommandTarget *pCmd;
HRESULT hr;
pdoc=GetHtmlDocument();
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
if(SUCCEEDED(hr))
{
varinput=_T("");
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
}
}
void CJdView::OnFind()
{
MSHTML::IHTMLDocument2Ptr pdoc;
_variant_t varinput,varoutput;
IOleCommandTarget *pCmd;
HRESULT hr;
pdoc=GetHtmlDocument();
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
if(SUCCEEDED(hr))
{
varinput=_T("");
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
}
}
void CJdView::OnEditCopy()
{ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
}
void CJdView::OnEditPaste()
{ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
}
void CJdView::OnEditCut()
{ExecWB(OLECMDID_CUT,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
}
void CJdView::OnEditUndo()
{ExecWB(OLECMDID_UNDO,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
}
void CJdView::OnEditRedo()
{ExecWB(OLECMDID_REDO,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
}
/*typedef
enum OLECMDEXECOPT
{ OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
OLECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
} OLECMDEXECOPT;
OLECMDID_STOPDOWNLOAD is supported for QueryStatus Only
typedef
enum OLECMDID
{OLECMDID_OPEN = 1,
OLECMDID_NEW = 2,
OLECMDID_SAVE = 3,
OLECMDID_SAVEAS = 4,
OLECMDID_SAVECOPYAS = 5,
OLECMDID_PRINT = 6,
OLECMDID_PRINTPREVIEW = 7,
OLECMDID_PAGESETUP = 8,
OLECMDID_SPELL = 9,
OLECMDID_PROPERTIES = 10,
OLECMDID_CUT = 11,
OLECMDID_COPY = 12,
OLECMDID_PASTE = 13,
OLECMDID_PASTESPECIAL = 14,
OLECMDID_UNDO = 15,
OLECMDID_REDO = 16,
OLECMDID_SELECTALL = 17,
OLECMDID_CLEARSELECTION = 18,
OLECMDID_ZOOM = 19,
OLECMDID_GETZOOMRANGE = 20,
OLECMDID_UPDATECOMMANDS = 21,
OLECMDID_REFRESH = 22,
OLECMDID_STOP = 23,
OLECMDID_HIDETOOLBARS = 24,
OLECMDID_SETPROGRESSMAX = 25,
OLECMDID_SETPROGRESSPOS = 26,
OLECMDID_SETPROGRESSTEXT = 27,
OLECMDID_SETTITLE = 28,
OLECMDID_SETDOWNLOADSTATE = 29,
OLECMDID_STOPDOWNLOAD = 30,
OLECMDID_ONTOOLBARACTIVATED = 31,
OLECMDID_FIND = 32,
OLECMDID_DELETE = 33,
OLECMDID_HTTPEQUIV = 34,
OLECMDID_HTTPEQUIV_DONE = 35,
OLECMDID_ENABLE_INTERACTION = 36,
OLECMDID_ONUNLOAD = 37,
OLECMDID_PROPERTYBAG2 = 38,
OLECMDID_PREREFRESH = 39
} OLECMDID;*/
void CJdView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel)
{CString s=lpszURL;LPCTSTR lp;
CMainFrame *pm=(CMainFrame *)AfxGetMainWnd();
CComboBox* pb=(CComboBox*)pm->m_wndDlgBar.GetDlgItem(IDC_COMBOADDRRESS);
pb->SetWindowT