THLinkCtrl is a freeware OWL class that supports Internet Hyperlinks from
standard Windows applications just like they are displayed in Web browsers.

This code is based on MFC class CHLinkCtl by PJ Naughter. Very special thanks
  EMail: pjn@indigo.ie
  Web: http://indigo.ie/~pjn

When you run the program you will notice that the icon changes to a hand when you
move over the edit controls and when you click on the text the URL will be executed.
You can also right click on the control to get a standard context menu.
Any URL such as "http://", "mailto://", "file://", "ftp://" etc can be used.

Basically all you need to do is associate a TEdit instance with the edit control
you want to turn into a hyperlink. Note that the edit control must have the read
only style set. It also must have the WS_TABSTOP removed. This is to give the
appearance of a static text control. The Edit control caption is the initial
hyperlink description.

In your dialogs SetupWindow() function call the SetHyperLink with the URL you want
to link to and it's description e.g:

void THLinkTestDlg::SetupWindow()
{
  TDialog::SetupWindow();

  hLinkCtl.SetHyperLink(
    _T("http://www.members.aol.com/SoftEngage"));
}

All the styles etc can be customized using the member functions provided. Some
of the features it includes are:

Hot tracking look
Drop shadow effect
Context Menu
Properties dialog ala IE3
Add to Favorites & Desktop
Clipboard support
Alignment support

Some places I find this class very useful is to spruce up an otherwise plain about
box in your windows applications.

To use THLinkCtrl in your project simply include HLinkCtl.cpp from the test application
in your application and #include HLinkCtl.h in whatever modules what to use it. You
will also need to include the following resource from hlinktest.rc into your rc file.

IDC_HLINK Cursor
IDD_HLINK_PROPERTIES dialog
IDI_HLINK_URL icon
IDR_HLINK_POPUP menu
All the contents of the single string table

You will also need to initialise the OLE libraries as the control makes use of a number
of COM Interface. This can be done by placing a call to to OleInitialize() in your apps
InitMainWindow function.

If you want to use german language instead of english add GERMAN
to the project's Defines.

Tested with Borland C++ 5.02, OWL 5.02 under Windows NT 4.0 SP3 but I think
the class would work with Windows 95 too.

Please send me bug reports, bug fixes, enhancements, requests, etc., and
I'll try to keep this in next versions:
  EMail: dieter.windau@usa.net
  Web:   http://www.members.aol.com/SoftEngage

Happy coding.

