89 lines
1.5 KiB
C++
89 lines
1.5 KiB
C++
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
linkpars.h
|
|
|
|
Abstract:
|
|
|
|
Link parser class declaration. This class responsible for
|
|
parsing the html file for hyperlink.
|
|
|
|
Author:
|
|
|
|
Michael Cheuk (mcheuk)
|
|
|
|
Project:
|
|
|
|
Link Checker
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _LINKPARS_H_
|
|
#define _LINKPARS_H_
|
|
|
|
#include "link.h"
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Link parser
|
|
//
|
|
class CLinkParser
|
|
{
|
|
|
|
// Public interfaces
|
|
public:
|
|
|
|
// Constructor
|
|
CLinkParser() :
|
|
m_strLocalHostName(_T("localhost")) {}
|
|
|
|
// Parse a page of html data
|
|
void Parse(
|
|
const CString& strData,
|
|
const CString& strBaseUrl,
|
|
CLinkPtrList& rLinkPtrList
|
|
);
|
|
|
|
// Setup the local hostname. It will be uses for distinguishing
|
|
// between local and remote link
|
|
void SetLocalHostName(
|
|
const CString& strLocalHostName
|
|
)
|
|
{
|
|
m_strLocalHostName = strLocalHostName;
|
|
}
|
|
|
|
// Protected interfaces
|
|
protected:
|
|
|
|
// Parse a single "<.....>" for possible hyperlink
|
|
BOOL ParsePossibleTag(
|
|
CString& strTag
|
|
);
|
|
|
|
// Get the hyperlink value from "<.....>"
|
|
BOOL GetTagValue(
|
|
CString& strTag,
|
|
const CString& strParam);
|
|
|
|
// Create a URL from base URL & relative URL. It also check the
|
|
// result for local & remote link
|
|
BOOL CreateURL(
|
|
const CString& strRelativeURL,
|
|
const CString& strBaseURL,
|
|
CString& strURL,
|
|
BOOL& fLocalLink);
|
|
|
|
// Protected members
|
|
protected:
|
|
|
|
CString m_strLocalHostName; // local hostname
|
|
|
|
}; // class CLinkParser
|
|
|
|
#endif // _LINKPARS_H_
|