// XTHtmlView.h interface for the CXTHtmlView class.
//
// This file is a part of the XTREME CONTROLS MFC class library.
// (c)1998-2011 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////

//{{AFX_CODEJOCK_PRIVATE
#if !defined(__XTHTMLVIEW_H__)
#define __XTHTMLVIEW_H__
//}}AFX_CODEJOCK_PRIVATE

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

//===========================================================================
// Summary:
//     CXTHtmlView is a CFormView derived class. The CXTHtmlView class provides
//     the functionality of the WebBrowser control within the context of MFC's
//     document/view architecture. The WebBrowser control is a window in which
//     the user can browse sites on the World Wide Web as well as folders
//     in the local file system and on a network. The WebBrowser control supports
//     hyperlinking, Uniform Resource Locator (URL) navigation, and maintains
//     a history list.
// Remarks:
//     Using the CXTHtmlView Class in an MFC Application
//
//     In the standard MFC framework application (either SDI or MDI based),
//     the view object is commonly derived from a specialized set of classes.
//     These classes, all derived from CView, provide specialized functionality
//     beyond that provided by CView.
//
//     Basing the application's view class on CXTHtmlView provides the view
//     with the WebBrowser control. This effectively makes the application
//     a web browser. The preferred method of creating a web browser-style
//     application is to use the MFC AppWizard, and specify CXTHtmlView as
//     the view class. For more information on implementing and using the
//     WebBrowser control within MFC applications, see Web Browser-Style Applications.
//
//     The functionality of CXTHtmlView is designed for applications that access
//     the Web (and/or HTML documents). The following CXTHtmlView member functions
//     apply to the Internet Explorer application only. These functions will
//     succeed on the WebBrowser control, but they will have no visible effect.
//===========================================================================
class _XTP_EXT_CLASS CXTHtmlView : public CFormView
{
	DECLARE_DYNCREATE(CXTHtmlView)
	DECLARE_EVENTSINK_MAP()

protected:
	//-----------------------------------------------------------------------
	// Summary:
	//     Constructs a CXTHtmlView object
	//-----------------------------------------------------------------------
	CXTHtmlView();

	//-----------------------------------------------------------------------
	// Summary:
	//     Destroys a CXTHtmlView object, handles cleanup and deallocation
	//-----------------------------------------------------------------------
	virtual ~CXTHtmlView();

public:
	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the type name of the contained
	//     active document. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     A CString object containing the type name of the contained active document.
	//-----------------------------------------------------------------------
	CString GetType() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the distance between the internal
	//     left edge of the WebBrowser control and the left edge of its container.
	//     Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     The left-edge distance in pixels.
	//-----------------------------------------------------------------------
	long GetLeft() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set the horizontal position of the Internet
	//     Explorer main window.
	// Parameters:
	//     nNewValue - The screen coordinate of the left edge of the main window.
	//-----------------------------------------------------------------------
	void SetLeft(long nNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the screen coordinate of the
	//     top edge of the WebBrowser control's main window. Applies to Internet
	//     Explorer and WebBrowser.
	// Returns:
	//     The address of a variable that receives the screen coordinate of the main
	//     window's top edge.
	//-----------------------------------------------------------------------
	long GetTop() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set the distance between the internal top edge
	//     of the WebBrowser control and the top edge of its container. Applies to
	//     Internet Explorer and WebBrowser.
	// Parameters:
	//     nNewValue - The screen coordinate of the top edge of the main window.
	//-----------------------------------------------------------------------
	void SetTop(long nNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the height in pixels of the
	//     WebBrowser control's frame window.
	// Returns:
	//     The control's frame window height in pixels.
	//-----------------------------------------------------------------------
	long GetHeight() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set the height of the Internet Explorer
	//     main window. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     nNewValue - The height in pixels of the main window.
	//-----------------------------------------------------------------------
	void SetHeight(long nNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set the visibility state of the WebBrowser
	//     control. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     bNewValue - Nonzero if the control is visible, otherwise zero.
	//-----------------------------------------------------------------------
	void SetVisible(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine if the contained object is visible.
	//     Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the object is visible, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetVisible() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to get the name of the resource being displayed
	//     in the WebBrowser. If the resource is an HTML page on the World Wide
	//     Web, the name is the title of that page. If the resource is a folder
	//     or file on the network or local computer, the name is the UNC or full
	//     path of the folder or file. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     A CString object containing the name of the resource currently
	//     displayed in the WebBrowser.
	//-----------------------------------------------------------------------
	CString GetLocationName() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the ready state of the WebBrowser
	//     object. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     A READYSTATE value as described in the Platform SDK.
	//-----------------------------------------------------------------------
	READYSTATE GetReadyState() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the web browser is operating
	//     offline. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the web browser is currently offline, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetOffline() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set a value indicating whether the WebBrowser
	//     control is currently operating in offline mode. In offline mode, the
	//     browser reads HTML pages from the local cache rather than from the
	//     source document. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     bNewValue - Nonzero to read from the local cache, otherwise zero.
	//-----------------------------------------------------------------------
	void SetOffline(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether any dialog boxes can
	//     be shown in the WebBrowser control. Applies to Internet Explorer and
	//     WebBrowser.
	// Returns:
	//     Nonzero if dialog boxes cannot be displayed from
	//     the WebBrowser control, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetSilent() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set a value indicating whether any dialog
	//     boxes can be shown. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     bNewValue - If nonzero, dialog boxes will not be displayed. If
	//                 zero, dialog boxes will be displayed. The default
	//                 value is zero.
	//-----------------------------------------------------------------------
	void SetSilent(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether Internet Explorer is
	//     the top-level container of the WebBrowser control. Applies to Internet
	//     Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the container is the top-level container, otherwise
	//     returns zero.
	//-----------------------------------------------------------------------
	BOOL GetTopLevelContainer() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the URL of the resource that
	//     the WebBrowser control is currently displaying. If the resource is
	//     a folder or file on the network or local computer, the name is the
	//     UNC or full path of the folder or file. Applies to Internet Explorer
	//     and WebBrowser.
	// Returns:
	//     A CString object containing the URL of the resource currently
	//     displayed in the WebBrowser.
	//-----------------------------------------------------------------------
	CString GetLocationURL() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the WebBrowser control
	//     is engaged in a navigation or downloading operation. Applies to Internet
	//     Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the web browser is busy, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetBusy() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the automation object supported
	//     by the application that contains the WebBrowser control. Applies to
	//     Internet Explorer and WebBrowser.
	// Returns:
	//     A pointer to the IDispatch interface of the active document object.
	//-----------------------------------------------------------------------
	LPDISPATCH GetApplication() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve a pointer to the parent object
	//     of the WebBrowser control. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     A pointer to the IDispatch interface of the object that is
	//     the parent of the WebBrowser control.
	//-----------------------------------------------------------------------
	LPDISPATCH GetParentBrowser() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve an object that points to the
	//     container of the web browser. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     A pointer to the IDispatch interface of the active document object.
	//-----------------------------------------------------------------------
	LPDISPATCH GetContainer() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the HTML document for the active
	//     document. Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     A pointer to the IDispatch interface of the active document object.
	//-----------------------------------------------------------------------
	LPDISPATCH GetHtmlDocument() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve the full path of the file that
	//     Internet Explorer is currently displaying. Applies to Internet Explorer.
	//     If you use this call with a WebBrowser control, it will return no error,
	//     but it will ignore this call.
	// Returns:
	//     A CString object containing the path and name of the currently displayed
	//     file. If no path and filename exist, GetFullName returns an empty CString.
	//-----------------------------------------------------------------------
	CString GetFullName() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the toolbar is visible.
	// Returns:
	//     A value indicating whether the toolbar is visible. Nonzero
	//     if the toolbar is visible, otherwise zero.
	//-----------------------------------------------------------------------
	int GetToolBar() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to show or hide the Internet Explorer toolbar.
	//     Applies to Internet Explorer. If you use this call with a WebBrowser
	//     control, it will not return an error, but it will ignore this call.
	// Parameters:
	//     nNewValue - Indicates whether to display the toolbar. Nonzero if the toolbar
	//                 is to be displayed, otherwise zero.
	//-----------------------------------------------------------------------
	void SetToolBar(int nNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether or not the menu bar is visible.
	//     Applies to Internet Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the menu bar is visible, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetMenuBar() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to show or hide the Internet Explorer menu bar.
	//     Applies to Internet Explorer. If you use this call with a WebBrowser
	//     control, it will not return an error, but it will ignore this call.
	// Parameters:
	//     bNewValue - Nonzero to show the menu bar, otherwise zero.
	//-----------------------------------------------------------------------
	void SetMenuBar(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the WebBrowser control
	//     is operating in full-screen mode or in normal window mode. In full-screen
	//     mode, the Internet Explorer main window is maximized and the status
	//     bar, toolbar, menu bar, and title bar are hidden. Applies to Internet
	//     Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the WebBrowser is operating in full-screen mode, otherwise
	//     returns zero.
	//-----------------------------------------------------------------------
	BOOL GetFullScreen() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set Internet Explorer to either full-screen
	//     or normal window mode. In full-screen mode, the Internet Explorer
	//     main window is maximized and the status bar, toolbar, menu bar, and
	//     title bar are hidden. Applies to Internet Explorer. If you use this
	//     call with a WebBrowser control, it will not return an error, but it will
	//     ignore this call.
	// Parameters:
	//     bNewValue - Nonzero for full-screen mode, otherwise zero.
	//-----------------------------------------------------------------------
	void SetFullScreen(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to query a command status. QueryStatusWB
	//     implements the behavior of the IOleCommandTarget::QueryStatus method.
	//     Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     cmdID - The OLECMDID value of the command for which the caller needs status
	//             information.
	// Returns:
	//     The address of the OLECMDF value that receives the status of the command.
	//-----------------------------------------------------------------------
	OLECMDF QueryStatusWB(OLECMDID cmdID) const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the WebBrowser object
	//     is registered as a top-level browser for target name resolution. Applies
	//     to Internet Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the browser is registered as a top-level browser, otherwise
	//     returns zero.
	//-----------------------------------------------------------------------
	BOOL GetRegisterAsBrowser() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set a value indicating whether the WebBrowser
	//     control is registered as a top-level browser for target name resolution.
	//     A top-level browser is the browser set in the registry as the default
	//     browser. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     bNewValue - Determines whether Internet Explorer is registered as a top-level
	//                 browser. If nonzero, the web browser is registered as a top-level
	//                 browser. If zero, it is not a top-level browser. The default value
	//                 is zero.
	//-----------------------------------------------------------------------
	void SetRegisterAsBrowser(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the WebBrowser control
	//     is registered as a drop target for navigation. Applies to Internet
	//     Explorer and WebBrowser.
	// Returns:
	//     Nonzero if the browser is registered as a drop target, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetRegisterAsDropTarget() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set a value indicating whether the WebBrowser
	//     control is registered as a drop target for navigation. Applies to
	//     Internet Explorer and WebBrowser.
	// Parameters:
	//     bNewValue - Determines if the WebBrowser control is registered as a drop target
	//                 for navigation. If nonzero, the object is registered as a drop target.
	//                 If zero, it is not a drop target.
	//-----------------------------------------------------------------------
	void SetRegisterAsDropTarget(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the web browser is in
	//     theater mode. When the web browser is in theater mode, the browser
	//     main window fills the entire screen, a toolbar with a minimal set of
	//     navigational tools appears, and the status bar appears in the upper
	//     right-hand corner of the screen. Applies to Internet Explorer and
	//     WebBrowser.
	// Returns:
	//     Nonzero if the web browser is in theater mode, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetTheaterMode() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set a value indicating whether the WebBrowser
	//     control is in theater mode. When the web browser is in theater mode,
	//     the browser main window fills the entire screen, a toolbar with a minimal
	//     set of navigational tools appears, and the status bar appears in the
	//     upper right-hand corner of the screen. Applies to Internet Explorer
	//     and WebBrowser.
	// Parameters:
	//     bNewValue - Nonzero to set the WebBrowser control to theater mode, otherwise zero.
	//                 The default value is zero.
	//-----------------------------------------------------------------------
	void SetTheaterMode(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to retrieve Internet Explorer's address bar.
	//     Applies to Internet Explorer. If you use this call with a WebBrowser
	//     control, it will return no error, but it will ignore this call.
	// Returns:
	//     Nonzero if the address bar is visible, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetAddressBar() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to show or hide the Internet Explorer object's
	//     address bar. Applies to Internet Explorer. If you use this call with
	//     a WebBrowser control, it will return no error, but it will ignore this
	//     call.
	// Parameters:
	//     bNewValue - Nonzero to show address bar, otherwise zero.
	//-----------------------------------------------------------------------
	void SetAddressBar(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to determine whether the WebBrowser control
	//     displays a status bar. Applies to Internet Explorer. If you use this
	//     call with a WebBrowser control, it will return no error, but it will
	//     ignore this call.
	// Returns:
	//     Nonzero if the status bar can be displayed, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL GetStatusBar() const;

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to display the status bar. Applies to Internet
	//     Explorer. If you use this call with a WebBrowser control, it will
	//     return no error, but it will ignore this call.
	// Parameters:
	//     bNewValue - Nonzero if the status bar is visible, otherwise zero.
	//-----------------------------------------------------------------------
	void SetStatusBar(BOOL bNewValue);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function navigates backward one item in the history list.
	//     Applies to Internet Explorer and WebBrowser.
	//-----------------------------------------------------------------------
	void GoBack();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function navigates forward one item in the history list.
	//     Applies to Internet Explorer and WebBrowser.
	//-----------------------------------------------------------------------
	void GoForward();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function navigates to the current home or start page specified
	//     in the Internet Explorer Internet Options dialog box or the Internet
	//     Properties dialog box, accessed from the Control Panel. Applies to
	//     Internet Explorer and WebBrowser.
	//-----------------------------------------------------------------------
	void GoHome();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function navigates to the current search page, as specified
	//     in the Internet Explorer Internet Options dialog box or the Internet
	//     Properties dialog box, accessed from the Control Panel. Applies to
	//     Internet Explorer and WebBrowser.
	//-----------------------------------------------------------------------
	void GoSearch();

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to navigate to the resource identified by
	//     a URL. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     URL                 - A caller-allocated string that contains
	//                           the URL to navigate to, or the full path
	//                           of the file to display.
	//     dwFlags             - The flags of a variable that specifies
	//                           whether to add the resource to the history
	//                           list, whether to read to or write from the
	//                           cache, and whether to display the resource
	//                           in a new window. The variable can be a
	//                           combination of the values defined by the
	//                           BrowserNavConstants enumeration.
	//     lpszTargetFrameName - A pointer to a string that contains the
	//                           name of the frame in which to display the
	//                           resource.
	//     lpszHeaders         - A pointer to a value that specifies the HTTP
	//                           headers to send to the server. These headers
	//                           are added to the default Internet Explorer
	//                           headers. The headers can specify such things
	//                           as the action required of the server, the
	//                           type of data being passed to the server,
	//                           or a status code. This parameter is ignored
	//                           if the URL is not an HTTP URL.
	//     lpvPostData         - A pointer to the data to send with the HTTP
	//                           POST transaction. For example, the POST
	//                           transaction is used to send data gathered by an
	//                           HTML form. If this parameter does not specify
	//                           any post data, Navigate issues an HTTP GET
	//                           transaction. This parameter is ignored if
	//                           the URL is not an HTTP URL.
	//     dwPostDataLen       - Data to send with the HTTP POST transaction.
	//                           For example, the POST transaction is used to
	//                           send data gathered by an HTML form. If this
	//                           parameter does not specify any post data,
	//                           Navigate issues an HTTP GET transaction.
	//                           This parameter is ignored if the URL is
	//                           not an HTTP URL.
	//-----------------------------------------------------------------------
	void Navigate(LPCTSTR URL, DWORD dwFlags = 0, LPCTSTR lpszTargetFrameName = NULL, LPCTSTR lpszHeaders = NULL, LPVOID lpvPostData = NULL, DWORD dwPostDataLen = 0);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to navigate to the resource identified by
	//     a URL, or to the file identified by a full path. This member function
	//     extends the Navigate member function by supporting browsing on special
	//     folders, such as Desktop and My Computer, that are represented by the
	//     parameter 'pIDL'. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     pIDL                - A pointer to an ITEMIDLIST structure.
	//     dwFlags             - The flags of a variable that specifies whether
	//                           to add the resource to the history list,
	//                           whether to read to or write from the cache, and
	//                           whether to display the resource in a new window.
	//                           The variable can be a combination of the values
	//                           defined by the BrowserNavConstants enumeration.
	//     lpszTargetFrameName - A pointer to a string that contains the name of
	//                           the frame in which to display the resource.
	//-----------------------------------------------------------------------
	void Navigate2(LPITEMIDLIST pIDL, DWORD dwFlags = 0, LPCTSTR lpszTargetFrameName = NULL);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to navigate to the resource identified by
	//     a URL, or to the file identified by a full path. This member function
	//     extends the Navigate member function by supporting browsing on special
	//     folders, such as Desktop and My Computer, that are represented by the
	//     parameter 'pIDL'. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     lpszURL             - A pointer to a string containing the URL.
	//     dwFlags             - The flags of a variable that specifies whether
	//                           to add the resource to the history list,
	//                           whether to read to or write from the cache, and
	//                           whether to display the resource in a new window.
	//                           The variable can be a combination of the values
	//                           defined by the BrowserNavConstants enumeration.
	//     lpszTargetFrameName - A pointer to a string that contains the name of
	//                           the frame in which to display the resource.
	//     lpszHeaders         - A pointer to a value that specifies the HTTP
	//                           headers to send to the server. These headers are
	//                           added to the default Internet Explorer headers.
	//                           The headers can specify such things as the action
	//                           required of the server, the type of data being passed
	//                           to the server, or a status code. This parameter is
	//                           ignored if the URL is not an HTTP URL.
	//     lpvPostData         - Data to send with the HTTP POST transaction. For
	//                           example, the POST transaction is used to send data
	//                           gathered by an HTML form. If this parameter does
	//                           not specify any post data, Navigate2 issues an HTTP
	//                           GET transaction. This parameter is ignored if the
	//                           URL is not an HTTP URL.
	//     dwPostDataLen       - Length in bytes of the data pointed to by the
	//                           'lpvPostData' parameter.
	//-----------------------------------------------------------------------
	void Navigate2(LPCTSTR lpszURL, DWORD dwFlags = 0, LPCTSTR lpszTargetFrameName = NULL, LPCTSTR lpszHeaders = NULL, LPVOID lpvPostData = NULL, DWORD dwPostDataLen = 0);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to navigate to the resource identified by
	//     a URL, or to the file identified by a full path. This member function
	//     extends the Navigate member function by supporting browsing on special
	//     folders, such as Desktop and My Computer, that are represented by the
	//     parameter 'pIDL'. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     lpszURL             - A pointer to a string containing the URL.
	//     dwFlags             - The flags of a variable that specifies whether
	//                           to add the resource to the history list,
	//                           whether to read to or write from the cache, and
	//                           whether to display the resource in a new window.
	//                           The variable can be a combination of the values
	//                           defined by the BrowserNavConstants enumeration.
	//     lpszTargetFrameName - A pointer to a string that contains the name of
	//                           the frame in which to display the resource.
	//     lpszHeader          - A pointer to a value that specifies the HTTP
	//                           headers to send to the server. These headers
	//                           are added to the default Internet Explorer headers.
	//                           The headers can specify such things as the action
	//                           required of the server, the type of data being passed
	//                           to the server, or a status code. This parameter is
	//                           ignored if the URL is not an HTTP URL.
	//     baPostedData        - A reference to a CByteArray object
	//-----------------------------------------------------------------------
	void Navigate2(LPCTSTR lpszURL, DWORD dwFlags, CByteArray& baPostedData, LPCTSTR lpszTargetFrameName = NULL, LPCTSTR lpszHeader = NULL);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function reloads the URL or file that the web browser is
	//     currently displaying. Refresh contains no parameters for setting the
	//     refresh level. Applies to Internet Explorer and WebBrowser.
	//-----------------------------------------------------------------------
	void Refresh();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function reloads the file that Internet Explorer is currently
	//     displaying. Unlike Refresh, Refresh2 contains a parameter that specifies
	//     the refresh level. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     nLevel - The address of the variable specifying the refresh level.
	//              The possible variables are defined in RefreshConstants,
	//              in the Platform SDK.
	//-----------------------------------------------------------------------
	void Refresh2(int nLevel);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to cancel any pending navigation or download
	//     operation and stop any dynamic page elements, such as background sounds
	//     and animations. Applies to Internet Explorer and WebBrowser.
	//-----------------------------------------------------------------------
	void Stop();

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to set the property associated with a given
	//     object. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     lpszPropertyName - A pointer to a string containing the name
	//                        of the property to set.
	//     dValue           - The new value of the property.
	//     vtValue      - The new value of the property indicated by 'lpszProperty'.
	//     lpszValue        - A pointer to a string containing the new
	//                        value of the property.
	//     lValue           - The new value of the property.
	//     nValue           - The new value of the property.
	//-----------------------------------------------------------------------
	void PutProperty(LPCTSTR lpszPropertyName , const VARIANT& vtValue);
	void PutProperty(LPCTSTR lpszPropertyName, double dValue); // <combine CXTHtmlView::PutProperty@LPCTSTR@const VARIANT&>
	void PutProperty(LPCTSTR lpszPropertyName, LPCTSTR lpszValue); // <combine CXTHtmlView::PutProperty@LPCTSTR@const VARIANT&>
	void PutProperty(LPCTSTR lpszPropertyName, long lValue); // <combine CXTHtmlView::PutProperty@LPCTSTR@const VARIANT&>
	void PutProperty(LPCTSTR lpszPropertyName, short nValue); // <combine CXTHtmlView::PutProperty@LPCTSTR@const VARIANT&>

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to get the value of the property that is currently
	//     associated with the control. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     lpszProperty - A pointer to a string containing the property
	//                    to retrieve.
	//     strValue     - A reference to a CString object that receives
	//                    the current value of the property.
	//     lpszProperty - A pointer to a string containing the property to retrieve.
	// Returns:
	//     The lpszProperty version returns a COleVariant object, the BOOL version
	//     returns nonzero if completed successfully, otherwise returns zero.
	//-----------------------------------------------------------------------
	COleVariant GetProperty(LPCTSTR lpszProperty);
	BOOL GetProperty(LPCTSTR lpszProperty, CString& strValue); // <combine CXTHtmlView::GetProperty@LPCTSTR>

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to execute a command in the WebBrowser or
	//     Internet Explorer. See IWebBrowser2::ExecWB in the Platform SDK.
	// Parameters:
	//     cmdID      - The command to execute.
	//     cmdexecopt - The options set for executing the command.
	//     pvaIn      - A variant used for specifying the command input arguments.
	//     pvaOut     - A variant used for specifying the command output arguments.
	//-----------------------------------------------------------------------
	void ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, VARIANT* pvaIn, VARIANT* pvaOut);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to load the specified resource into
	//     the WebBrowser control. Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     nRes - The ID of the buffer containing the name of the resource to load.
	//     lpszResource - A pointer to a string containing the name of the
	//                    resource to load.
	// Returns:
	//     Nonzero if successful, otherwise returns zero.
	//-----------------------------------------------------------------------
	BOOL LoadFromResource(UINT nRes);
	BOOL LoadFromResource(LPCTSTR lpszResource); // <combine CXTHtmlView::LoadFromResource@UINT>

//{{AFX_CODEJOCK_PRIVATE
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
//}}AFX_CODEJOCK_PRIVATE

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to draw the view.
	//     Applies to Internet Explorer and WebBrowser.
	// Parameters:
	//     pDC - A pointer to the device context to be used for rendering an image.
	//-----------------------------------------------------------------------
	virtual void OnDraw(CDC* pDC);

	//-----------------------------------------------------------------------
	// Summary:
	//     Call this member function to create a WebBrowser control or container
	//     for the Internet Explorer executable.
	// Parameters:
	//     lpszClassName  - Points to a null-terminated character string
	//                      that names the Windows class. The class name
	//                      can be any name registered with the
	//                      AfxRegisterWndClass global function or the
	//                      RegisterClass Windows function. If NULL, it uses
	//                      the predefined default CFrameWnd attributes.
	//     lpszWindowName - Points to a null-terminated character string
	//                      that represents the window's name.
	//     dwStyle        - Specifies the window style attributes. By default,
	//                      the WS_VISIBLE and WS_CHILD Windows styles are set.
	//     rect           - A reference to a RECT structure specifying the
	//                      size and position of the window. The rectDefault
	//                      value allows Windows to specify the size and
	//                      position of the new window.
	//     pParentWnd     - A pointer to the parent window of the control.
	//     nID            - The ID number of the view. By default, set to
	//                      AFX_IDW_PANE_FIRST.
	//     pContext       - A pointer to a CCreateContext.  It is NULL by default.
	// Returns:
	//     Nonzero if successful, otherwise returns zero.
	//-----------------------------------------------------------------------
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework after a navigation
	//     to a hyperlink completes (on either a window or frameset element).
	//     The URL parameter can be a PIDL in the case of a shell name space entity
	//     for which there is no URL representation. Note that the URL contained
	//     in 'strURL' can be different from the URL that the browser was told to
	//     navigate to, because this URL is the canonicalized and qualified URL.
	//     For example, if an application specifies a URL of "www.microsoft.com"
	//     in a call to Navigate or Navigate2, the URL passed by OnNavigateComplete2
	//     will be  "http://www.microsoft.com/". Also, if the server has redirected
	//     the browser to a different URL, the redirected URL will be reflected
	//     here.
	// Parameters:
	//     strURL - A string expression that evaluates to the URL, UNC file
	//              name, or PIDL (a  pointer to an item identifier list)
	//              that was navigated to.
	//-----------------------------------------------------------------------
	virtual void OnNavigateComplete2(LPCTSTR strURL);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to cause an event to fire
	//     before a navigation occurs in the web browser.
	// Parameters:
	//     lpszURL             - Pointer to a string containing the URL
	//                           to navigate to.
	//     nFlags              - Reserved for future use.
	//     lpszTargetFrameName - A string that contains the name of the
	//                           frame in which to display the resource,
	//                           or NULL if no named frame is targeted
	//                           for the resource.
	//     baPostedData        - A reference to a CByteArray object containing
	//                           the data to send to the server if the HTTP
	//                           POST transaction is being used.
	//     lpszHeaders         - A pointer to a string containing additional
	//                           HTTP headers to send to the server (HTTP
	//                           URLs only). The headers can specify such things
	//                           as the action required of the server, the type
	//                           of data being passed to the server, or a status code.
	//     pbCancel            - A pointer to a cancel flag. An application can
	//                           set this parameter to nonzero to cancel the
	//                           navigation operation, or to zero to allow
	//                           it to proceed.
	//-----------------------------------------------------------------------
	virtual void OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     that the text of the status bar associated with the WebBrowser control
	//     has changed.
	// Parameters:
	//     lpszText - A string that contains the new status bar text.
	//-----------------------------------------------------------------------
	virtual void OnStatusTextChange(LPCTSTR lpszText);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     that the progress of a download operation has been updated. The container
	//     can use the information provided by this event to display the number
	//     of bytes downloaded so far or to update a progress indicator.
	// Parameters:
	//     nProgress    - Amount of total progress to show, or -1 when progress is complete.
	//     nProgressMax - Maximum progress value.
	//-----------------------------------------------------------------------
	virtual void OnProgressChange(long nProgress, long nProgressMax);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     that the enabled state of a web browser command has changed.
	// Parameters:
	//     nCommand - Identifier of the command whose enabled state has changed.
	//     bEnable  - Enabled state.  This parameter is nonzero if the command is enabled,
	//                or zero if it is disabled.
	//-----------------------------------------------------------------------
	virtual void OnCommandStateChange(long nCommand, BOOL bEnable);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to begin downloading
	//     a document. This event is fired shortly after the OnBeforeNavigate2
	//     event, unless the navigation is canceled. Any animation or "busy"
	//     indication that the container needs to display should be connected
	//     to this event.
	//-----------------------------------------------------------------------
	virtual void OnDownloadBegin();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to indicate that a
	//     navigation operation finished, was halted, or failed.
	//-----------------------------------------------------------------------
	virtual void OnDownloadComplete();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     if the title of a document in the WebBrowser control becomes available
	//     or changes. For HTML, the title might change. While HTML is still
	//     downloading, the URL of the document is set as the title. After the
	//     real title (if there is one) is parsed from the HTML, the title is
	//     changed to reflect the actual title.
	// Parameters:
	//     lpszText - The new document title.
	//-----------------------------------------------------------------------
	virtual void OnTitleChange(LPCTSTR lpszText);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     that PutProperty has changed the value of a property.
	// Parameters:
	//     lpszProperty - A pointer to a string containing the name of the property.
	//-----------------------------------------------------------------------
	virtual void OnPropertyChange(LPCTSTR lpszProperty);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when a new window is
	//     to be created for displaying a resource. This event precedes the creation
	//     of a new window from within the WebBrowser.
	// Parameters:
	//     ppDisp - A pointer to an interface pointer that, optionally, receives the
	//              IDispatch interface pointer of a new WebBrowser or Internet Explorer
	//              object.
	//     Cancel - A pointer to a cancel flag. An application can set this parameter
	//              to nonzero to cancel the navigation operation, or to zero to allow
	//              it to proceed.
	//-----------------------------------------------------------------------
	virtual void OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     that a document has reached the READYSTATE_COMPLETE state. Not every
	//     frame will fire this event, but each frame that fires an OnDownloadBegin
	//     event will fire a corresponding OnDocumentComplete event. The URL
	//     indicated by 'lpszURL' can be different from the URL that the browser
	//     was told to navigate to, because this URL is the canonicalized and
	//     qualified URL. For example, if an application specifies a URL of
	//     "www.microsoft.com" in a call to Navigate or Navigate2, the URL passed
	//     by OnNavigateComplete2 will be "http://www.microsoft.com/". Also, if
	//     the server has redirected the browser to a different URL, the redirected
	//     URL will be reflected here.
	// Parameters:
	//     lpszURL - A pointer to a string that evaluates to the URL, UNC file name, or
	//               a PIDL (a pointer to an item identifier list) that was navigated to.
	//-----------------------------------------------------------------------
	virtual void OnDocumentComplete(LPCTSTR lpszURL);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework to notify an application
	//     that the Internet Explorer application is ready to quit.
	//-----------------------------------------------------------------------
	virtual void OnQuit();

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when the window for
	//     the WebBrowser should be shown or hidden. This allows the object control
	//     host window to behave the same way the Internet Explorer window would
	//     behave.
	// Parameters:
	//     bVisible - Nonzero if the object is visible or zero otherwise.
	//-----------------------------------------------------------------------
	virtual void OnVisible(BOOL bVisible);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when the ToolBar property
	//     has changed.
	// Parameters:
	//     bToolBar - Nonzero if Internet Explorer's toolbar is visible or zero otherwise.
	//-----------------------------------------------------------------------
	virtual void OnToolBar(BOOL bToolBar);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when the MenuBar property
	//     has changed.
	// Parameters:
	//     bMenuBar - Nonzero if the Internet Explorer menu bar is visible or zero otherwise.
	//-----------------------------------------------------------------------
	virtual void OnMenuBar(BOOL bMenuBar);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when the StatusBar property
	//     has changed.
	// Parameters:
	//     bStatusBar - Nonzero if Internet Explorer's status bar is visible or zero otherwise.
	//-----------------------------------------------------------------------
	virtual void OnStatusBar(BOOL bStatusBar);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when the FullScreen property
	//     has changed.
	// Parameters:
	//     bFullScreen - Nonzero if Internet Explorer is in full screen mode or zero otherwise.
	//-----------------------------------------------------------------------
	virtual void OnFullScreen(BOOL bFullScreen);

	//-----------------------------------------------------------------------
	// Summary:
	//     This member function is called by the framework when the TheaterMode property
	//     has changed.
	// Parameters:
	//     bTheaterMode - Nonzero if Internet Explorer is in theater mode or zero otherwise.
	//-----------------------------------------------------------------------
	virtual void OnTheaterMode(BOOL bTheaterMode);

	//-----------------------------------------------------------------------
	// Summary:
	//     Called by the framework if navigation to a hyperlink fails.
	//     Override this method to provide custom navigation error handling.
	// Parameters:
	//     lpszURL   - The URL for which navigation failed.
	//     lpszFrame - The name of the frame in which the resource is
	//                 to be displayed, or NULL if no named frame was targeted for
	//                 the resource.
	//     dwError   - An error status code, if available. For a list of
	//                 the possible HRESULT and HTTP status codes, see NavigateError
	//                 Event Status Codes.
	//     pbCancel  - Specifies whether to cancel the navigation to an
	//                 error page or any further autosearch. If TRUE (the default),
	//                 continue with navigation to an error page or autosearch; if
	//                 FALSE, cancel navigation to an error page or autosearch.
	//-----------------------------------------------------------------------
	virtual void OnNavigateError(LPCTSTR lpszURL, LPCTSTR lpszFrame, DWORD dwError, BOOL* pbCancel);

protected:
//{{AFX_CODEJOCK_PRIVATE
	DECLARE_MESSAGE_MAP()

	//{{AFX_VIRTUAL(CXTHtmlView)
	virtual void NavigateComplete2(LPDISPATCH pDisp, VARIANT* URL);
	virtual void BeforeNavigate2(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers,   BOOL* Cancel);
	virtual void DocumentComplete(LPDISPATCH pDisp, VARIANT* URL);
	virtual void NavigateError(LPDISPATCH pDisp, VARIANT* pvURL, VARIANT* pvFrame, VARIANT* pvStatusCode, VARIANT_BOOL* pvbCancel);
	//}}AFX_VIRTUAL

	//{{AFX_MSG(CXTHtmlView)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnDestroy();
	afx_msg void OnFilePrint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnPaint();
	//}}AFX_MSG
//}}AFX_CODEJOCK_PRIVATE

public:
	CWnd          m_wndBrowser;      // CWnd object that represents the internet browser control associated with this view

protected:
	bool          m_bLoading;        // true when loading the browser.
	bool          m_bLoadingMessage; // true to display a loading message while a page is updating.
	CString       m_strLoading;      // Loading message string.
	IWebBrowser2* m_pBrowserApp;     // Points to the IWebBrowser2 object associated with this view.
};

//////////////////////////////////////////////////////////////////////

AFX_INLINE void CXTHtmlView::SetRegisterAsBrowser(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_RegisterAsBrowser((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetRegisterAsDropTarget(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_RegisterAsDropTarget((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetTheaterMode(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_TheaterMode((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetVisible(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_Visible((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetMenuBar(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_MenuBar((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetToolBar(int nNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_ToolBar(nNewValue);
}
AFX_INLINE void CXTHtmlView::SetOffline(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_Offline((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetSilent(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_Silent((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::GoBack() {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->GoBack();
}
AFX_INLINE void CXTHtmlView::GoForward() {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->GoForward();
}
AFX_INLINE void CXTHtmlView::GoHome() {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->GoHome();
}
AFX_INLINE void CXTHtmlView::GoSearch() {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->GoSearch();
}
AFX_INLINE void CXTHtmlView::Refresh() {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->Refresh();
}
AFX_INLINE void CXTHtmlView::Refresh2(int nLevel) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->Refresh2(COleVariant((long) nLevel, VT_I4));
}
AFX_INLINE void CXTHtmlView::Stop() {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->Stop();
}
AFX_INLINE void CXTHtmlView::SetFullScreen(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_FullScreen((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetAddressBar(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_AddressBar((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}
AFX_INLINE void CXTHtmlView::SetHeight(long nNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_Height(nNewValue);
}
AFX_INLINE void CXTHtmlView::PutProperty(LPCTSTR lpszPropertyName, long lValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) PutProperty(lpszPropertyName, COleVariant(lValue, VT_UI4));
}
AFX_INLINE void CXTHtmlView::PutProperty(LPCTSTR lpszPropertyName, short nValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) PutProperty(lpszPropertyName, COleVariant(nValue, VT_UI2));
}
AFX_INLINE void CXTHtmlView::PutProperty(LPCTSTR lpszPropertyName, LPCTSTR lpszValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) PutProperty(lpszPropertyName, COleVariant(lpszValue, VT_BSTR));
}
AFX_INLINE void CXTHtmlView::PutProperty(LPCTSTR lpszPropertyName, double dValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) PutProperty(lpszPropertyName, COleVariant(dValue));
}
AFX_INLINE void CXTHtmlView::SetTop(long nNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_Top(nNewValue);
}
AFX_INLINE void CXTHtmlView::SetLeft(long nNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_Left(nNewValue);
}
AFX_INLINE void CXTHtmlView::SetStatusBar(BOOL bNewValue) {
	ASSERT(m_pBrowserApp != NULL); if (m_pBrowserApp) m_pBrowserApp->put_StatusBar((short) (bNewValue ? AFX_OLE_TRUE : AFX_OLE_FALSE));
}

#endif // #if !defined(__XTHTMLVIEW_H__)
