// HpLnkDlg.cpp : implementation file // #include "stdafx.h" #include "AnnDemo.h" #include "HpLnkDlg.h" #include "afxinet.h" #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CHyperLinkDlg dialog CHyperLinkDlg::CHyperLinkDlg(CWnd* pParent /*=NULL*/) : CDialog(CHyperLinkDlg::IDD, pParent) { //{{AFX_DATA_INIT(CHyperLinkDlg) m_nHyperLinkType = 0; m_Program = _T(""); m_WebPage = _T(""); //}}AFX_DATA_INIT } void CHyperLinkDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CHyperLinkDlg) DDX_Radio(pDX, IDC_RADIO1, m_nHyperLinkType); DDX_Text(pDX, IDC_PROGRAM, m_Program); DDV_MaxChars(pDX, m_Program, 260); DDX_Text(pDX, IDC_WEBPAGE, m_WebPage); DDV_MaxChars(pDX, m_WebPage, 260); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CHyperLinkDlg, CDialog) //{{AFX_MSG_MAP(CHyperLinkDlg) ON_BN_CLICKED(IDC_RADIO1, OnRadio) ON_BN_CLICKED(IDC_RADIO2, OnRadio) ON_BN_CLICKED(IDC_RADIO3, OnRadio) ON_BN_CLICKED(IDC_RADIO4, OnRadio) ON_BN_CLICKED(IDC_RADIO5, OnRadio) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CHyperLinkDlg message handlers void CHyperLinkDlg::OnRadio() { // TODO: Add your control notification handler code here UpdateData(); if (m_nHyperLinkType == 3) GetDlgItem(IDC_PROGRAM)->EnableWindow(TRUE); else GetDlgItem(IDC_PROGRAM)->EnableWindow(FALSE); if(m_nHyperLinkType ==4) GetDlgItem(IDC_WEBPAGE)->EnableWindow(TRUE); else GetDlgItem(IDC_WEBPAGE)->EnableWindow(FALSE); } void CHyperLinkDlg::OnOK() { // TODO: Add extra validation here UpdateData(); switch (m_nHyperLinkType) { case 3: if (!m_Program.GetLength()) { AfxMessageBox(_T("Please enter program name"),MB_ICONSTOP|MB_OK); return; } else //if (_access((LPTSTR)(LPCTSTR)m_Program,04)!=0) { L_TCHAR szTemp[_MAX_PATH]; L_INT iBufLen = _MAX_PATH; LPTSTR lpFilePart; DWORD dRet; dRet = SearchPath( NULL, // pointer to search path (LPTSTR)(LPCTSTR)m_Program, // pointer to filename NULL, // pointer to extension iBufLen, // size, in characters, of buffer szTemp, // pointer to buffer for found filename &lpFilePart // pointer to pointer to file component); ); if (dRet == 0) { AfxMessageBox(_T("Invalid path"),MB_ICONSTOP|MB_OK); return; } } break; case 4: if (!m_WebPage.GetLength()) { AfxMessageBox(_T("Please enter a URL name") ,MB_ICONSTOP|MB_OK); return; } else { DWORD dwServiceType; CString strServer; CString strObject; INTERNET_PORT nPort; BOOL bParsed = AfxParseURL(m_WebPage, dwServiceType, strServer, strObject, nPort); if (!bParsed) { AfxMessageBox(_T("Invalid URL entered!") ,MB_ICONSTOP|MB_OK); return; } } } CDialog::OnOK(); } BOOL CHyperLinkDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here OnRadio(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }