⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixedhtmlview.cpp

📁 myie的源程序是用VC++写自已可以扩搌使用
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FixedHtmlView.cpp : implementation file
//

#include "stdafx.h"
#include "MyIE.h"
#include "FixedHtmlView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define IDC_BROWSER_CONTROL 2

/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView

IMPLEMENT_DYNCREATE(CFixedHtmlView, CView)

CFixedHtmlView::CFixedHtmlView()
{//11/7
	m_pBrowserApp = NULL;
}

CFixedHtmlView::~CFixedHtmlView()
{//11/7
	if (m_pBrowserApp != NULL)
		m_pBrowserApp->Release();
	if(m_wndBrowser.m_hWnd!=NULL)
		m_wndBrowser.DestroyWindow();
}


BEGIN_MESSAGE_MAP(CFixedHtmlView, CView)
	//{{AFX_MSG_MAP(CFixedHtmlView)
	ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
	ON_WM_PARENTNOTIFY()
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_COMMAND(ID_FILE_PRINTPREVIEW, OnFilePrintpreview)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BEGIN_EVENTSINK_MAP(CFixedHtmlView, CView)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 102 /* StatusTextChange */, OnStatusTextChange, VTS_BSTR)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 108 /* ProgressChange */, OnProgressChange, VTS_I4 VTS_I4)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 105 /* CommandStateChange */, OnCommandStateChange, VTS_I4 VTS_BOOL)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 106 /* DownloadBegin */, OnDownloadBegin, VTS_NONE)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 104 /* DownloadComplete */, OnDownloadComplete, VTS_NONE)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 113 /* TitleChange */, OnTitleChange, VTS_BSTR)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 252 /* NavigateComplete2 */, NavigateComplete2, VTS_DISPATCH VTS_PVARIANT)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 250 /* BeforeNavigate2 */, BeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 112 /* PropertyChange */, OnPropertyChange, VTS_BSTR)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 251 /* NewWindow2 */, OnNewWindow2, VTS_PDISPATCH VTS_PBOOL)
	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 259 /* DocumentComplete */, DocumentComplete, VTS_DISPATCH VTS_PVARIANT)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 253 /* OnQuit */, OnQuit, VTS_NONE)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 254 /* OnVisible */, OnVisible, VTS_BOOL)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 255 /* OnToolBar */, OnToolBar, VTS_BOOL)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 256 /* OnMenuBar */, OnMenuBar, VTS_BOOL)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 257 /* OnStatusBar */, OnStatusBar, VTS_BOOL)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 258 /* OnFullScreen */, OnFullScreen, VTS_BOOL)
//	ON_EVENT(CFixedHtmlView, IDC_BROWSER_CONTROL, 260 /* OnTheaterMode */, OnTheaterMode, VTS_BOOL)
END_EVENTSINK_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView drawing

void CFixedHtmlView::OnDraw(CDC* pDC)
{
//	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

//11/7
void CFixedHtmlView::OnDestroy()
{
	if (m_pBrowserApp != NULL)
		m_pBrowserApp->Release();
}

/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView diagnostics

#ifdef _DEBUG
void CFixedHtmlView::AssertValid() const
{
	CView::AssertValid();
}

void CFixedHtmlView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView message handlers


/*int CFixedHtmlView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	// Create the embedded browser control:
	// No TRY block needed.
	return 0;
}*/

/*
CString CFixedHtmlView::GetType() 
{
	CString str = m_wndBrowser.GetType();
	return str;
}

long CFixedHtmlView::GetLeft() 
{
	return m_wndBrowser.GetLeft();
}


long CFixedHtmlView::GetTop() 
{
	return m_wndBrowser.GetTop();
}

int CFixedHtmlView::GetToolBar() 
{
	return m_wndBrowser.GetToolBar();
}

long CFixedHtmlView::GetHeight() 
{
	return m_wndBrowser.GetHeight();
}

BOOL CFixedHtmlView::GetVisible() 
{
	return m_wndBrowser.GetVisible();
}
*/
CString CFixedHtmlView::GetLocationName() 
{
	return m_wndBrowser.GetLocationName();
}

CString CFixedHtmlView::GetLocationURL() 
{
	return m_wndBrowser.GetLocationURL();
}
/*
BOOL CFixedHtmlView::GetBusy() 
{
	return m_wndBrowser.GetBusy();
}*/

READYSTATE CFixedHtmlView::GetReadyState() 
{
	return (READYSTATE)m_wndBrowser.GetReadyState();
}
/*
BOOL CFixedHtmlView::GetOffline() 
{
	return m_wndBrowser.GetOffline();
}

BOOL CFixedHtmlView::GetSilent() 
{
	return m_wndBrowser.GetSilent();
}
*/
LPDISPATCH CFixedHtmlView::GetApplication() 
{
	return m_wndBrowser.GetApplication();
}


LPDISPATCH CFixedHtmlView::GetParentBrowser() 
{
	return m_wndBrowser.GetParent();
}
/*
LPDISPATCH CFixedHtmlView::GetContainer() 
{
	return m_wndBrowser.GetContainer();
}*/

LPDISPATCH CFixedHtmlView::GetHtmlDocument() 
{
	if(m_pBrowserApp != NULL)
		return m_wndBrowser.GetDocument();
	else
		return NULL;
}
/*
BOOL CFixedHtmlView::GetTopLevelContainer() 
{
	return m_wndBrowser.GetTopLevelContainer();
}

BOOL CFixedHtmlView::GetMenuBar() 
{
	return m_wndBrowser.GetMenuBar();
}

BOOL CFixedHtmlView::GetFullScreen() 
{
	return m_wndBrowser.GetFullScreen();
}

BOOL CFixedHtmlView::GetStatusBar() 
{
	return m_wndBrowser.GetStatusBar();
}
*/
OLECMDF CFixedHtmlView::QueryStatusWB(OLECMDID cmdID) 
{
	return (OLECMDF)m_wndBrowser.QueryStatusWB(cmdID);
}

void CFixedHtmlView::ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt,
	VARIANT* pvaIn, VARIANT* pvaOut)
{
	//((IWebBrowser2*)m_wndBrowser.GetApplication())->ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
	if(m_pBrowserApp != NULL)
		m_pBrowserApp->ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
}
/*
BOOL CFixedHtmlView::GetRegisterAsBrowser() 
{
	return m_wndBrowser.GetRegisterAsBrowser();
}

BOOL CFixedHtmlView::GetRegisterAsDropTarget() 
{
	return m_wndBrowser.GetRegisterAsDropTarget();
}

BOOL CFixedHtmlView::GetTheaterMode() 
{
	return m_wndBrowser.GetTheaterMode();
}

BOOL CFixedHtmlView::GetAddressBar() 
{
	return m_wndBrowser.GetAddressBar();
}*/

/////////////////////////////////////////////////////////////////////////////
// CFixedHtmlView operations

BOOL CFixedHtmlView::LoadFromResource(LPCTSTR lpszResource)
{
	HINSTANCE hInstance = AfxGetResourceHandle();
	ASSERT(hInstance != NULL);

	CString strResourceURL;
	BOOL bRetVal = TRUE;
	LPTSTR lpszModule = new TCHAR[_MAX_PATH];

	if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
	{
		strResourceURL.Format(_T("res://%s/%s"), lpszModule, lpszResource);
		Navigate(strResourceURL, 0, 0, 0);
	}
	else
		bRetVal = FALSE;

	delete [] lpszModule;
	return bRetVal;
}

BOOL CFixedHtmlView::LoadFromResource(UINT nRes)
{
	HINSTANCE hInstance = AfxGetResourceHandle();
	ASSERT(hInstance != NULL);

	CString strResourceURL;
	BOOL bRetVal = TRUE;
	LPTSTR lpszModule = new TCHAR[_MAX_PATH];

	if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
	{
		strResourceURL.Format(_T("res://%s/%d"), lpszModule, nRes);
		Navigate(strResourceURL, 0, 0, 0);
	}
	else
		bRetVal = FALSE;

	delete [] lpszModule;
	return bRetVal;
}

void CFixedHtmlView::Navigate(LPCTSTR lpszURL, DWORD dwFlags /* = 0 */,
	LPCTSTR lpszTargetFrameName /* = NULL */ ,
	LPCTSTR lpszHeaders /* = NULL */, LPVOID lpvPostData /* = NULL */,
	DWORD dwPostDataLen /* = 0 */)
{
	if(m_pBrowserApp == NULL)
		return;

	COleSafeArray vPostData;
	if (lpvPostData != NULL)
	{
		if (dwPostDataLen == 0)
			dwPostDataLen = lstrlen((LPCTSTR) lpvPostData);

		vPostData.CreateOneDim(VT_UI1, dwPostDataLen, lpvPostData);
	}

	CString strURL(lpszURL);
	BSTR bstrURL = strURL.AllocSysString();
//	((IWebBrowser2*)m_wndBrowser.GetApplication())
	m_pBrowserApp->Navigate(bstrURL,
		COleVariant((long) dwFlags, VT_I4),
		COleVariant(lpszTargetFrameName, VT_BSTR),
		vPostData,
		COleVariant(lpszHeaders, VT_BSTR));

	SysFreeString(bstrURL);
}


void CFixedHtmlView::Navigate2(LPCTSTR lpszURL, DWORD dwFlags /* = 0 */,
	LPCTSTR lpszTargetFrameName /* = NULL */,
	LPCTSTR lpszHeaders /* = NULL */,
	LPVOID lpvPostData /* = NULL */, DWORD dwPostDataLen /* = 0 */)
{
	if(m_pBrowserApp == NULL)
		return;

	COleSafeArray vPostData;
	if (lpvPostData != NULL)
	{
		if (dwPostDataLen == 0)
			dwPostDataLen = lstrlen((LPCTSTR) lpvPostData);

		vPostData.CreateOneDim(VT_UI1, dwPostDataLen, lpvPostData);
	}

	COleVariant vURL(lpszURL, VT_BSTR);
	COleVariant vHeaders(lpszHeaders, VT_BSTR);
	COleVariant vTargetFrameName(lpszTargetFrameName, VT_BSTR);
	COleVariant vFlags((long) dwFlags, VT_I4);

//	((IWebBrowser2*)m_wndBrowser.GetApplication())
	m_pBrowserApp->Navigate2(vURL,
		vFlags, vTargetFrameName, vPostData, vHeaders);
}


/*
void CFixedHtmlView::PutProperty(LPCTSTR lpszProperty, const VARIANT& vtValue)
{
	m_wndBrowser.PutProperty(lpszProperty, vtValue);
}

BOOL CFixedHtmlView::GetProperty(LPCTSTR lpszProperty, CString& strValue)
{

	BOOL bResult = FALSE;
	VARIANT vReturn;
	vReturn.vt = VT_BSTR;
	vReturn.bstrVal = NULL;
	vReturn = m_wndBrowser.GetProperty_(lpszProperty);

	strValue = CString(vReturn.bstrVal);

	bResult = TRUE;

	return bResult;
}

COleVariant CFixedHtmlView::GetProperty(LPCTSTR lpszProperty)
{
	COleVariant result;

	VARIANT vReturn;
	vReturn.vt = VT_BSTR;
	vReturn.bstrVal = NULL;
	vReturn = m_wndBrowser.GetProperty_(lpszProperty);

	result = vReturn;

	return result;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -