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

📄 mtlbrowser.h

📁 一个使用wtl写的完整的多窗口浏览器
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __MTLBROWSER_H__
#define __MTLBROWSER_H__

#pragma once

#ifndef __MTLCOM_H__
	#error mtlbrowser.h requires mtlcom.h to be included first
#endif
////////////////////////////////////////////////////////////////////////////
// MTL Version 0.10
// Copyright (C) 2001 MB<mb2@geocities.co.jp>
// All rights unreserved.
//
// This file is a part of Mb Template Library.
// The code and information is *NOT* provided "as-is" without
// warranty of any kind, either expressed or implied.
//
// MtlBrowser.h: Last updated: March 17, 2001
/////////////////////////////////////////////////////////////////////////////
namespace MTL
{

/////////////////////////////////////////////////////////////////////////////
// IWebBrowser2 wrapper
class CWebBrowser2
{
public:
	CComPtr<IWebBrowser2> m_spBrowser;

// Ctor
	CWebBrowser2(IWebBrowser2* pBrowser = NULL) : m_spBrowser(pBrowser)
	{
	}

	bool IsBrowserNull() 
	{
		return (m_spBrowser.p == NULL);
	}

// properties
	void SetRegisterAsBrowser(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_RegisterAsBrowser(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetRegisterAsDropTarget(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_RegisterAsDropTarget(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetTheaterMode(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_TheaterMode(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetVisible(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_Visible(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetMenuBar(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_MenuBar(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetToolBar(int nNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_ToolBar(nNewValue);
	}
	void SetOffline(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_Offline(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetSilent(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_Silent(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void GoBack()
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->GoBack();
	}
	void GoForward()
	{ 
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->GoForward();
	}
	void GoHome()
	{
		ATLASSERT(m_spBrowser != NULL); 
		m_spBrowser->GoHome();
	}
	void GoSearch()
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->GoSearch();
	}
	void Refresh()
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->Refresh();
	}
	void Refresh2(int nLevel)
	{
		ATLASSERT(m_spBrowser != NULL);
		CComVariant v((long)nLevel);
		m_spBrowser->Refresh2(&v); 
	}
	void Stop()
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->Stop();
	}
	void SetFullScreen(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_FullScreen(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetAddressBar(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_AddressBar(bNewValue ? VARIANT_TRUE : VARIANT_FALSE);
	}
	void SetHeight(long nNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_Height(nNewValue);
	}
	void PutProperty(LPCTSTR lpszPropertyName, long lValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		PutProperty(lpszPropertyName, CComVariant(lValue));
	}
	void PutProperty(LPCTSTR lpszPropertyName, short nValue)
	{
		ATLASSERT(m_spBrowser != NULL); 
		PutProperty(lpszPropertyName, CComVariant(nValue));
	}
	void PutProperty(LPCTSTR lpszPropertyName, LPCTSTR lpszValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		PutProperty(lpszPropertyName, CComVariant(lpszValue)); 
	}
	void PutProperty(LPCTSTR lpszPropertyName, double dValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		PutProperty(lpszPropertyName, CComVariant(dValue));
	}
	void SetTop(long nNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_Top(nNewValue);
	}
	void SetLeft(long nNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_Left(nNewValue);
	}
	void SetStatusBar(bool bNewValue)
	{
		ATLASSERT(m_spBrowser != NULL);
		m_spBrowser->put_StatusBar(bNewValue ? VARIANT_TRUE : VARIANT_FALSE); 
	}

	CString GetType() const
	{
		ATLASSERT(m_spBrowser != NULL);
	
		CComBSTR bstr;
		m_spBrowser->get_Type(&bstr);
		CString retVal(bstr);
		return retVal;
	}

	long GetLeft() const
	{
		ATLASSERT(m_spBrowser != NULL);

		long result;
		m_spBrowser->get_Left(&result);
		return result;
	}

	long GetTop() const
	{
		ATLASSERT(m_spBrowser != NULL);
		long result;
		m_spBrowser->get_Top(&result);
		return result;
	}

	int GetToolBar() const
	{
		ATLASSERT(m_spBrowser != NULL);
		int result;
		m_spBrowser->get_ToolBar(&result);
		return result;
	}

	long GetHeight() const
	{
		ATLASSERT(m_spBrowser != NULL);
		long result;
		m_spBrowser->get_Height(&result);
		return result;
	}

	bool GetVisible() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_Visible(&result);
		return (result == VARIANT_TRUE);
	}

	CString GetLocationName() const
	{
		ATLASSERT(m_spBrowser != NULL);

		CComBSTR bstr;
		m_spBrowser->get_LocationName(&bstr);
		CString retVal(bstr);
		return retVal;
	}

	CString GetLocationURL() const
	{
		ATLASSERT(m_spBrowser != NULL);

		CComBSTR bstr;
		m_spBrowser->get_LocationURL(&bstr);
		CString retVal(bstr);
		return retVal;
	}

	bool GetBusy() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_Busy(&result);
		return (result == VARIANT_TRUE);
	}

	READYSTATE GetReadyState() const
	{
		ATLASSERT(m_spBrowser != NULL);

		READYSTATE result;
		m_spBrowser->get_ReadyState(&result);
		return result;
	}

	bool GetOffline() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_Offline(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetSilent() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_Silent(&result);
		return (result == VARIANT_TRUE);
	}

	IDispatch* GetApplication() const
	{
		ATLASSERT(m_spBrowser != NULL);

		IDispatch* result;
		m_spBrowser->get_Application(&result);
		return result;
	}


	IDispatch* GetParentBrowser() const
	{
		ATLASSERT(m_spBrowser != NULL);

		IDispatch* result;
		m_spBrowser->get_Parent(&result);
		return result;
	}

	IDispatch* GetContainer() const
	{
		ATLASSERT(m_spBrowser != NULL);

		IDispatch* result;
		m_spBrowser->get_Container(&result);
		return result;
	}

	IDispatch* GetHtmlDocument() const
	{
		ATLASSERT(m_spBrowser != NULL);

		IDispatch* result;
		m_spBrowser->get_Document(&result);
		return result;
	}

	bool GetTopLevelContainer() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_TopLevelContainer(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetMenuBar() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_MenuBar(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetFullScreen() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_FullScreen(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetStatusBar() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_StatusBar(&result);
		return (result == VARIANT_TRUE);
	}

	OLECMDF QueryStatusWB(OLECMDID cmdID) const
	{
		ATLASSERT(m_spBrowser != NULL);

		OLECMDF result;
		m_spBrowser->QueryStatusWB(cmdID, &result);
		return result;
	}

	void ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt,
		VARIANT* pvaIn, VARIANT* pvaOut)
	{
		ATLASSERT(m_spBrowser != NULL);

		m_spBrowser->ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
	}

	bool GetRegisterAsBrowser() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_RegisterAsBrowser(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetRegisterAsDropTarget() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_RegisterAsDropTarget(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetTheaterMode() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_TheaterMode(&result);
		return (result == VARIANT_TRUE);
	}

	bool GetAddressBar() const
	{
		ATLASSERT(m_spBrowser != NULL);

		VARIANT_BOOL result;
		m_spBrowser->get_AddressBar(&result);
		return (result == VARIANT_TRUE);
	}

// operations
	bool LoadFromResource(LPCTSTR lpszResource)
	{
		HINSTANCE hInstance = _Module.GetModuleInstance();
		ATLASSERT(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 LoadFromResource(UINT nRes)
	{
		HINSTANCE hInstance = _Module.GetModuleInstance();
		ATLASSERT(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 Navigate(LPCTSTR lpszURL, DWORD dwFlags = 0 ,
		LPCTSTR lpszTargetFrameName = NULL,
		LPCTSTR lpszHeaders = NULL, LPVOID lpvPostData = NULL,
		DWORD dwPostDataLen = 0)
	{
		CComBSTR bstrURL(lpszURL);

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

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

		CComVariant vHeaders;
		CComVariant vTargetFrameName;

⌨️ 快捷键说明

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