Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

102 lines
2.9 KiB

// --------------------------------------------------------------------------------
// trawler.h
// --------------------------------------------------------------------------------
#ifndef __TRAWLER_H__
#define __TRAWLER_H__
#include "imnxport.h"
#define CCH_MAX 4096
interface IMimeMessage;
class CTrawler : public INNTPCallback
{
public:
CTrawler(void);
~CTrawler(void);
STDMETHODIMP QueryInterface(REFIID, LPVOID*);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// ----------------------------------------------------------------------------
// ITransportCallback methods
// ----------------------------------------------------------------------------
STDMETHODIMP OnLogonPrompt(
LPINETSERVER pInetServer,
IInternetTransport *pTransport);
STDMETHODIMP_(INT) OnPrompt(
HRESULT hrError,
LPCTSTR pszText,
LPCTSTR pszCaption,
UINT uType,
IInternetTransport *pTransport);
STDMETHODIMP OnStatus(
IXPSTATUS ixpstatus,
IInternetTransport *pTransport);
STDMETHODIMP OnError(
IXPSTATUS ixpstatus,
LPIXPRESULT pIxpResult,
IInternetTransport *pTransport);
STDMETHODIMP OnProgress(
DWORD dwIncrement,
DWORD dwCurrent,
DWORD dwMaximum,
IInternetTransport *pTransport);
STDMETHODIMP OnCommand(
CMDTYPE cmdtype,
LPSTR pszLine,
HRESULT hrResponse,
IInternetTransport *pTransport);
STDMETHODIMP OnTimeout(
DWORD *pdwTimeout,
IInternetTransport *pTransport);
// ----------------------------------------------------------------------------
// INNTPCallback methods
// ----------------------------------------------------------------------------
STDMETHODIMP OnResponse(
LPNNTPRESPONSE pResponse);
HRESULT Init();
HRESULT Close();
HRESULT DoTrawl();
private:
ULONG m_cRef,
m_uMin,
m_uMax;
INNTPTransport *m_pNNTP;
char m_szGroups[CCH_MAX],
m_szTypes[CCH_MAX],
m_szPath[MAX_PATH],
m_szServer[MAX_PATH];
LPSTREAM m_pstm;
void ShowMsg(LPSTR psz, BYTE fgColor);
void Error(LPSTR psz);
void OnArticle(LPSTR lpszLines, ULONG cbLines, BOOL fDone);
void DumpMsg(IMimeMessage *pMsg);
HRESULT LoadIniData();
HRESULT SelectGroup(LPSTR lpszGroup);
HRESULT DumpGroup(LPSTR lpszGroup);
HRESULT IsValidType(char *szExt);
};
HRESULT HrCreateTrawler(CTrawler **ppTrawler);
#endif // __TRAWLER_H__