// HyperLink.h : header file
//
//
// HyperLink static control. Will open the default browser with the given URL
// when the user clicks on the link.
//
// Copyright Chris Maunder, 1997
// Feel free to use and distribute.

#if !defined(AFX_HYPERLINK_H__D1625061_574B_11D1_ABBA_00A0243D1382__INCLUDED_)
#define AFX_HYPERLINK_H__D1625061_574B_11D1_ABBA_00A0243D1382__INCLUDED_

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

/////////////////////////////////////////////////////////////////////////////
// CHyperLink window

class CHyperLink : public CStatic
{
// Construction/destruction
public:
	CHyperLink();
	virtual ~CHyperLink();

// Attributes
public:

// Operations
public:

	void SetURL(CString strURL);
	CString GetURL()			{ return m_strURL;   }

	void SetColours(COLORREF crLinkColour, COLORREF crVisitedColour);
	COLORREF GetLinkColour()	{ return m_crLinkColour; }
	COLORREF GetVisitedColour()	{ return m_crVisitedColour; }

	void SetVisited(BOOL bVisited = TRUE);
	BOOL GetVisited()			{ return m_bVisited; }

	void SetLinkCursor(HCURSOR hCursor) { m_hLinkCursor = hCursor; }

	void SetUnderline(BOOL bUnderline = TRUE);
	BOOL GetUnderline()			{ return m_bUnderline; }

	void SetAutoSize(BOOL bAutoSize = TRUE);
	BOOL GetAutoSize()			{ return m_bAdjustToFit; }

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CHyperLink)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL

// Implementation
protected:
	HINSTANCE GotoURL(LPCTSTR url, int showcmd);
	void ReportError(int nError);
	LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
	void PositionWindow();

// Protected attributes
protected:
	COLORREF m_crLinkColour, m_crVisitedColour;		// Hyperlink colours
	BOOL     m_bVisited;							// Has it been visited?
	BOOL	 m_bUnderline;							// underline hyperlink?
	BOOL	 m_bAdjustToFit;						// Adjust window size to fit text?
	CString  m_strURL;								// hyperlink URL
	CFont	 m_Font;								// Underline font if necessary
	HCURSOR  m_hLinkCursor;							// Cursor for hyperlink
	CToolTipCtrl m_ToolTip;							// The tooltip

	// Generated message map functions
protected:
	//{{AFX_MSG(CHyperLink)
	afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	//}}AFX_MSG
	afx_msg void OnClicked();
	DECLARE_MESSAGE_MAP()
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_HYPERLINK_H__D1625061_574B_11D1_ABBA_00A0243D1382__INCLUDED_)
