📄 mtlbrowser.h
字号:
#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 + -