Did quite a bit of research trying to figure out how to get this to work properly. I read that if you filter WM\_NOTIFY -> NM\_CLICK, it would catch the actual click event of the syslink. Trouble is that it catches the event, though it gets stuck in a endless recursion and in a few seconds you have hundreds of browser windows or w/e the link open's up as.

**Steps taken**:

1. Create Syslink on dialog
2. Add title to Syslink control link and change IDD to IDC\_LINK1
3. Filter WM\_NOTIFY for NM\_CLICK events

```
   case WM_NOTIFY:
  //case NM_CLICK:
  switch(LOWORD(wParam))
  {
      case NM_CLICK:
         switch(LOWORD(wParam))
     {
             case IDC_LINK1:
                 // Standard ShellExecute with added check for IsLinkCtrl to make sure its the right kind of control.
                 OpenLink(hWndDlg, LOWORD(wParam));            
         break;
     }
     break;
  }
  break;

```

I guess my real question is how do I do this properly? I don't see any good examples that show how a Syslink is properly filtered to execute a link as a url.