summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/mfc42/afxinet.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/sdk/inc/mfc42/afxinet.h')
-rw-r--r--public/sdk/inc/mfc42/afxinet.h671
1 files changed, 671 insertions, 0 deletions
diff --git a/public/sdk/inc/mfc42/afxinet.h b/public/sdk/inc/mfc42/afxinet.h
new file mode 100644
index 000000000..25b6e623c
--- /dev/null
+++ b/public/sdk/inc/mfc42/afxinet.h
@@ -0,0 +1,671 @@
+// This is a part of the Microsoft Foundation Classes C++ library.
+// Copyright (C) 1992-1996 Microsoft Corporation
+// All rights reserved.
+//
+// This source code is only intended as a supplement to the
+// Microsoft Foundation Classes Reference and related
+// electronic documentation provided with the library.
+// See these sources for detailed information regarding the
+// Microsoft Foundation Classes product.
+
+#ifndef _MAC
+
+#ifndef __AFXINET_H_
+#define __AFXINET_H_
+
+#ifndef __AFX_H__
+ #include <afx.h>
+#endif
+
+#ifndef _WININET_
+#include <wininet.h>
+#endif
+
+#ifndef _AFXDLL
+#pragma comment(lib, "WININET.LIB")
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// classes that are declared in this file
+
+class CInternetSession; // from CObject
+
+class CGopherLocator; // from CObject
+
+class CInternetFile; // from CStdioFile (FILETXT.CPP)
+ class CHttpFile;
+ class CGopherFile;
+
+class CInternetConnection;
+ class CFtpConnection;
+ class CGopherConnection;
+ class CHttpConnection;
+
+class CFtpFileFind; // from CFileFind (FILEFIND.CPP)
+class CGopherFileFind;
+
+class CInternetException;
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Global Functions
+
+BOOL AFXAPI AfxParseURL(LPCTSTR pstrURL, DWORD& dwServiceType,
+ CString& strServer, CString& strObject, INTERNET_PORT& nPort);
+
+DWORD AFXAPI AfxGetInternetHandleType(HINTERNET hQuery);
+
+// see CInternetException at the bottom of this file
+
+void AFXAPI AfxThrowInternetException(DWORD dwContext, DWORD dwError = 0);
+
+// these are defined by WININET.H
+
+#define AFX_INET_SERVICE_FTP INTERNET_SERVICE_FTP
+#define AFX_INET_SERVICE_HTTP INTERNET_SERVICE_HTTP
+#define AFX_INET_SERVICE_GOPHER INTERNET_SERVICE_GOPHER
+
+// these are types that MFC parsing functions understand
+
+#define AFX_INET_SERVICE_UNK 0x1000
+#define AFX_INET_SERVICE_FILE (AFX_INET_SERVICE_UNK+1)
+#define AFX_INET_SERVICE_MAILTO (AFX_INET_SERVICE_UNK+2)
+#define AFX_INET_SERVICE_MID (AFX_INET_SERVICE_UNK+3)
+#define AFX_INET_SERVICE_CID (AFX_INET_SERVICE_UNK+4)
+#define AFX_INET_SERVICE_NEWS (AFX_INET_SERVICE_UNK+5)
+#define AFX_INET_SERVICE_NNTP (AFX_INET_SERVICE_UNK+6)
+#define AFX_INET_SERVICE_PROSPERO (AFX_INET_SERVICE_UNK+7)
+#define AFX_INET_SERVICE_TELNET (AFX_INET_SERVICE_UNK+8)
+#define AFX_INET_SERVICE_WAIS (AFX_INET_SERVICE_UNK+9)
+#define AFX_INET_SERVICE_AFS (AFX_INET_SERVICE_UNK+10)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// classes that are declared in this file
+
+class CInternetSession : public CObject
+{
+public:
+ CInternetSession(LPCTSTR pstrAgent = NULL,
+ DWORD dwContext = 1,
+ DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,
+ LPCTSTR pstrProxyName = NULL,
+ LPCTSTR pstrProxyBypass = NULL,
+ DWORD dwFlags = 0);
+
+ BOOL QueryOption(DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufLen) const;
+ BOOL QueryOption(DWORD dwOption, DWORD& dwValue) const;
+ BOOL QueryOption(DWORD dwOption, CString& refString) const;
+
+ BOOL SetOption(DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength,
+ DWORD dwFlags = 0);
+ BOOL SetOption(DWORD dwOption, DWORD dwValue, DWORD dwFlags = 0);
+
+ CStdioFile* OpenURL(LPCTSTR pstrURL,
+ DWORD dwContext = 1, DWORD dwFlags = 0,
+ LPCTSTR pstrHeaders = NULL, DWORD dwHeadersLength = 0);
+
+ CFtpConnection* GetFtpConnection(LPCTSTR pstrServer,
+ LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
+ BOOL bPassive = FALSE);
+
+ CHttpConnection* GetHttpConnection(LPCTSTR pstrServer,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
+ LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL);
+
+ CGopherConnection* GetGopherConnection(LPCTSTR pstrServer,
+ LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
+
+ BOOL EnableStatusCallback(BOOL bEnable = TRUE);
+
+ DWORD ServiceTypeFromHandle(HINTERNET hQuery);
+
+// operations
+
+ DWORD GetContext() const;
+ operator HINTERNET() const;
+ virtual void Close();
+
+// overridables
+ virtual void OnStatusCallback(DWORD dwContext, DWORD dwInternetStatus,
+ LPVOID lpvStatusInformation, DWORD dwStatusInformationLength);
+
+// implementation
+ DECLARE_DYNAMIC(CInternetSession)
+ ~CInternetSession();
+
+protected:
+ DWORD m_dwContext;
+ HINTERNET m_hSession;
+ INTERNET_STATUS_CALLBACK m_pOldCallback;
+ BOOL m_bCallbackEnabled;
+
+public:
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+};
+
+
+////////////////////////////////////////////////////////////////////////////
+// Internet File Access Wrapper
+
+class CInternetFile : public CStdioFile
+{
+// Constructors
+protected:
+ CInternetFile(HINTERNET hFile, LPCTSTR pstrFileName,
+ CInternetConnection* pConnection, BOOL bReadMode);
+ CInternetFile(HINTERNET hFile, HINTERNET hSession,
+ LPCTSTR pstrFileName, LPCTSTR pstrServer, DWORD dwContext,
+ BOOL bReadMode);
+
+// Attributes
+protected:
+ HINTERNET m_hFile;
+public:
+ operator HINTERNET() const;
+ DWORD GetContext() const;
+
+// Operations
+ BOOL SetWriteBufferSize(UINT nWriteSize);
+ BOOL SetReadBufferSize(UINT nReadSize);
+
+ BOOL QueryOption(DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufLen) const;
+ BOOL QueryOption(DWORD dwOption, DWORD& dwValue) const;
+ BOOL QueryOption(DWORD dwOption, CString& refString) const;
+
+ BOOL SetOption(DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength,
+ DWORD dwFlags = 0);
+ BOOL SetOption(DWORD dwOption, DWORD dwValue, DWORD dwFlags = 0);
+
+// Overridables
+ virtual LONG Seek(LONG lOffset, UINT nFrom);
+
+ virtual UINT Read(void* lpBuf, UINT nCount);
+ virtual void Write(const void* lpBuf, UINT nCount);
+
+ virtual void Abort();
+ virtual void Flush();
+
+ virtual void Close();
+ virtual DWORD GetLength() const;
+
+ virtual BOOL ReadString(CString& rString);
+ virtual LPTSTR ReadString(LPTSTR pstr, UINT nMax);
+ virtual void WriteString(LPCTSTR pstr);
+
+ // Not supported by CInternetFile
+ void LockRange(DWORD dwPos, DWORD dwCount);
+ void UnlockRange(DWORD dwPos, DWORD dwCount);
+ CFile* Duplicate() const;
+ virtual void SetLength(DWORD dwNewLen);
+
+// Implementation
+public:
+ virtual ~CInternetFile();
+
+protected:
+ BOOL m_bReadMode;
+ DWORD m_dwContext;
+ HINTERNET m_hConnection;
+
+ CString m_strServerName;
+
+ UINT m_nWriteBufferSize;
+ UINT m_nWriteBufferPos;
+ LPBYTE m_pbWriteBuffer;
+
+ UINT m_nReadBufferSize;
+ UINT m_nReadBufferPos;
+ LPBYTE m_pbReadBuffer;
+ UINT m_nReadBufferBytes;
+
+#ifdef _DEBUG
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+
+ friend class CInternetSession;
+ friend class CFtpConnection;
+ friend class CHttpConnection;
+ friend class CGopherConnection;
+ DECLARE_DYNAMIC(CInternetFile)
+};
+
+
+class CHttpFile : public CInternetFile
+{
+// Constructors
+protected:
+ CHttpFile(HINTERNET hFile, HINTERNET hSession, LPCTSTR pstrObject,
+ LPCTSTR pstrServer, LPCTSTR pstrVerb, DWORD dwContext);
+ CHttpFile(HINTERNET hFile, LPCTSTR pstrVerb, LPCTSTR pstrObject,
+ CHttpConnection* pConnection);
+
+// Operations
+public:
+ BOOL AddRequestHeaders(LPCTSTR pstrHeaders,
+ DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW, int dwHeadersLen = -1);
+ BOOL AddRequestHeaders(CString& str,
+ DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW);
+
+ BOOL SendRequest(LPCTSTR pstrHeaders = NULL, DWORD dwHeadersLen = 0,
+ LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0);
+ BOOL SendRequest(CString& strHeaders,
+ LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0);
+ BOOL QueryInfo(DWORD dwInfoLevel, LPVOID lpvBuffer,
+ LPDWORD lpdwBufferLength, LPDWORD lpdwIndex = NULL) const;
+ BOOL QueryInfo(DWORD dwInfoLevel, CString& str,
+ LPDWORD dwIndex = NULL) const;
+ BOOL QueryInfo(DWORD dwInfoLevel, SYSTEMTIME* pSysTime,
+ LPDWORD dwIndex = NULL) const;
+ BOOL QueryInfoStatusCode(DWORD& dwStatusCode) const;
+
+ DWORD ErrorDlg(CWnd* pParent = NULL, DWORD dwError = ERROR_INTERNET_INCORRECT_PASSWORD,
+ DWORD dwFlags = FLAGS_ERROR_UI_FLAGS_GENERATE_DATA | FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS,
+ LPVOID* lppvData = NULL);
+
+// Attributes
+public:
+ CString GetVerb() const;
+ CString GetObject() const;
+ virtual CString GetFileURL() const;
+ virtual void Close();
+
+// Implementation
+public:
+ virtual ~CHttpFile();
+protected:
+ CString m_strObject;
+ CString m_strVerb;
+
+#ifdef _DEBUG
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+
+ friend class CHttpConnection;
+ friend class CInternetSession;
+ DECLARE_DYNAMIC(CHttpFile)
+};
+
+// class CGopherFile is declared after CGopherLocator, below
+
+
+////////////////////////////////////////////////////////////////////////////
+// Connection types
+
+class CInternetConnection : public CObject
+{
+public:
+ CInternetConnection(CInternetSession* pSession, LPCTSTR pstrServer,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
+ DWORD dwContext = 1);
+
+// Operations
+ operator HINTERNET() const;
+ DWORD GetContext() const;
+ CInternetSession* GetSession() const;
+
+ CString GetServerName() const;
+
+ BOOL QueryOption(DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufLen) const;
+ BOOL QueryOption(DWORD dwOption, DWORD& dwValue) const;
+ BOOL QueryOption(DWORD dwOption, CString& refString) const;
+
+ BOOL SetOption(DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength,
+ DWORD dwFlags = 0);
+ BOOL SetOption(DWORD dwOption, DWORD dwValue, DWORD dwFlags = 0);
+
+// Implementation
+protected:
+ HINTERNET m_hConnection;
+ DWORD m_dwContext;
+ CInternetSession* m_pSession;
+ virtual void Close();
+
+ CString m_strServerName;
+ INTERNET_PORT m_nPort;
+
+public:
+ ~CInternetConnection();
+ DECLARE_DYNAMIC(CInternetConnection)
+
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+ void AssertValid() const;
+#endif
+};
+
+class CFtpConnection : public CInternetConnection
+{
+public:
+ CFtpConnection(CInternetSession* pSession, HINTERNET hConnected,
+ LPCTSTR pstrServer, DWORD dwContext);
+ CFtpConnection(CInternetSession* pSession, LPCTSTR pstrServer,
+ LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL,
+ DWORD dwContext = 0,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
+ BOOL bPassive = FALSE);
+
+ BOOL SetCurrentDirectory(LPCTSTR pstrDirName);
+
+ BOOL GetCurrentDirectory(CString& strDirName) const;
+ BOOL GetCurrentDirectory(LPTSTR pstrDirName, LPDWORD lpdwLen) const;
+ BOOL GetCurrentDirectoryAsURL(LPTSTR pstrName, LPDWORD lpdwLen) const;
+ BOOL GetCurrentDirectoryAsURL(CString& strDirName) const;
+
+ BOOL RemoveDirectory(LPCTSTR pstrDirName);
+ BOOL CreateDirectory(LPCTSTR pstrDirName);
+ BOOL Rename(LPCTSTR pstrExisting, LPCTSTR pstrNew);
+ BOOL Remove(LPCTSTR pstrFileName);
+
+ BOOL PutFile(LPCTSTR pstrLocalFile, LPCTSTR pstrRemoteFile,
+ DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1);
+
+ BOOL GetFile(LPCTSTR pstrRemoteFile, LPCTSTR pstrLocalFile,
+ BOOL bFailIfExists = TRUE,
+ DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL,
+ DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1);
+
+ CInternetFile* OpenFile(LPCTSTR pstrFileName,
+ DWORD dwAccess = GENERIC_READ,
+ DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1);
+
+ virtual void Close();
+
+// implementation
+ ~CFtpConnection();
+
+protected:
+ CString m_strServerName;
+
+public:
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+ virtual void AssertValid() const;
+#endif
+
+ DECLARE_DYNAMIC(CFtpConnection)
+};
+
+class CHttpConnection : public CInternetConnection
+{
+public:
+ enum {
+ _HTTP_VERB_MIN = 0,
+ HTTP_VERB_POST = 0,
+ HTTP_VERB_GET = 1,
+ HTTP_VERB_HEAD = 2,
+ HTTP_VERB_PUT = 3,
+ HTTP_VERB_LINK = 4,
+ HTTP_VERB_DELETE = 5,
+ HTTP_VERB_UNLINK = 6,
+ _HTTP_VERB_MAX = 6,
+ };
+
+public:
+ CHttpConnection(CInternetSession* pSession, HINTERNET hConnected,
+ LPCTSTR pstrServer, DWORD dwContext);
+ CHttpConnection(CInternetSession* pSession, LPCTSTR pstrServer,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
+ LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL,
+ DWORD dwContext = 1);
+
+ CHttpFile* OpenRequest(LPCTSTR pstrVerb, LPCTSTR pstrObjectName,
+ LPCTSTR pstrReferer = NULL,DWORD dwContext = 1,
+ LPCTSTR* ppstrAcceptTypes = NULL, LPCTSTR pstrVersion = NULL,
+ DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);
+
+ CHttpFile* OpenRequest(int nVerb, LPCTSTR pstrObjectName,
+ LPCTSTR pstrReferer = NULL, DWORD dwContext = 1,
+ LPCTSTR* ppstrAcceptTypes = NULL, LPCTSTR pstrVersion = NULL,
+ DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);
+
+// implementation
+ ~CHttpConnection();
+ virtual void Close();
+
+protected:
+ CString m_strServerName;
+ static const LPCTSTR szHtmlVerbs[];
+
+public:
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+ virtual void AssertValid() const;
+#endif
+
+ friend class CInternetSession; // just to access szHtmlVerbs
+ DECLARE_DYNAMIC(CHttpConnection)
+};
+
+class CGopherConnection : public CInternetConnection
+{
+public:
+ CGopherConnection(CInternetSession* pSession,
+ HINTERNET hConnected, LPCTSTR pstrServer, DWORD dwContext);
+
+ CGopherConnection(CInternetSession* pSession, LPCTSTR pstrServer,
+ LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL,
+ DWORD dwContext = 0,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
+
+ CGopherFile* OpenFile(CGopherLocator& refLocator, DWORD dwFlags = 0,
+ LPCTSTR pstrView = NULL, DWORD dwContext = 1);
+
+ CGopherLocator CreateLocator(LPCTSTR pstrDisplayString,
+ LPCTSTR pstrSelectorString, DWORD dwGopherType);
+
+ BOOL CGopherConnection::GetAttribute(CGopherLocator& refLocator,
+ CString strRequestedAttributes, CString& strResult);
+
+ static CGopherLocator CreateLocator(LPCTSTR pstrLocator);
+ static CGopherLocator CreateLocator(LPCTSTR pstrServerName,
+ LPCTSTR pstrDisplayString,
+ LPCTSTR pstrSelectorString, DWORD dwGopherType,
+ INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
+
+// implementation
+ ~CGopherConnection();
+ virtual void Close();
+
+public:
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+ virtual void AssertValid() const;
+#endif
+ DECLARE_DYNAMIC(CGopherConnection)
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CFtpFileFind
+
+class CFtpFileFind : public CFileFind
+{
+public:
+ CFtpFileFind(CFtpConnection* pConnection, DWORD dwContext = 1);
+ virtual ~CFtpFileFind();
+
+ virtual BOOL FindFile(LPCTSTR pstrName = NULL,
+ DWORD dwFlags = INTERNET_FLAG_RELOAD);
+ virtual BOOL FindNextFile();
+ CString GetFileURL() const;
+
+// implementation
+protected:
+ virtual void CloseContext();
+ CFtpConnection* m_pConnection;
+ DWORD m_dwContext;
+
+public:
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+ virtual void AssertValid() const;
+#endif
+
+ DECLARE_DYNAMIC(CFtpFileFind)
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CGopherLocator
+
+class CGopherLocator : public CObject
+{
+public:
+ ~CGopherLocator();
+ operator LPCTSTR() const;
+ CGopherLocator(const CGopherLocator& ref);
+ BOOL GetLocatorType(DWORD& dwRef) const;
+
+private:
+ // this only created by CGopherConnection::CreateLocator or by serialization
+ CGopherLocator(LPCTSTR pstrLocator, DWORD dwLocLen);
+
+ CString m_Locator; // _not_ a zero-terminated string!
+ DWORD m_dwBufferLength;
+
+ friend class CGopherConnection;
+ friend class CGopherFile;
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CGopherFile
+
+class CGopherFile : public CInternetFile
+{
+// Constructors
+protected:
+ CGopherFile(HINTERNET hFile, CGopherLocator& refLocator,
+ CGopherConnection* pConnection);
+ CGopherFile(HINTERNET hFile, HINTERNET hSession,
+ LPCTSTR pstrLocator, DWORD dwLocLen, DWORD dwContext);
+
+// Operations
+public:
+ virtual void Close();
+ virtual void Write(const void* lpBuf, UINT nCount);
+ void WriteString(LPCTSTR pstr);
+
+// Implementation
+protected:
+ CGopherLocator m_Locator;
+public:
+ virtual ~CGopherFile();
+
+#ifdef _DEBUG
+ virtual void AssertValid() const;
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+
+ friend class CInternetSession;
+ friend class CGopherConnection;
+ DECLARE_DYNAMIC(CGopherFile)
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CGopherFileFind
+
+class CGopherFileFind : public CFileFind
+{
+public:
+ CGopherFileFind(CGopherConnection* pConnection, DWORD dwContext = 1);
+ virtual ~CGopherFileFind();
+
+ virtual BOOL FindFile(CGopherLocator& refLocator, LPCTSTR pstrString,
+ DWORD dwFlags = INTERNET_FLAG_RELOAD);
+ virtual BOOL FindFile(LPCTSTR pstrString,
+ DWORD dwFlags = INTERNET_FLAG_RELOAD);
+ virtual BOOL FindNextFile();
+
+ virtual BOOL IsDots() const;
+
+ virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
+ virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;
+ virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
+ virtual BOOL GetLastWriteTime(CTime& refTime) const;
+ virtual BOOL GetLastAccessTime(CTime& refTime) const;
+ virtual BOOL GetCreationTime(CTime& refTime) const;
+
+ CGopherLocator GetLocator() const;
+ CString GetScreenName() const;
+
+ virtual DWORD GetLength() const;
+#if defined(_X86_) || defined(_ALPHA_)
+ virtual __int64 GetLength64() const;
+#endif
+
+protected:
+ virtual void CloseContext();
+ CGopherConnection* m_pConnection;
+ DWORD m_dwContext;
+
+// implementation
+public:
+ // Unsupported APIs
+ CString GetFileName() const;
+ CString GetFilePath() const;
+ CString GetFileTitle() const;
+ CString GetFileURL() const;
+ CString GetRoot() const;
+
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+ virtual void AssertValid() const;
+#endif
+ DECLARE_DYNAMIC(CGopherFileFind)
+};
+
+
+///////////////////////////////////////////////////////////////////////
+// CInternetException
+
+class CInternetException : public CException
+{
+public:
+// Constructor
+ CInternetException(DWORD dwError);
+
+// Attributes
+ DWORD m_dwError;
+ DWORD m_dwContext;
+
+// Implementation
+public:
+ ~CInternetException();
+#ifdef _DEBUG
+ virtual void Dump(CDumpContext& dc) const;
+#endif
+ virtual BOOL GetErrorMessage(LPTSTR lpstrError, UINT nMaxError,
+ PUINT pnHelpContext = NULL);
+ DECLARE_DYNAMIC(CInternetException)
+};
+
+/////////////////////////////////////////////////////////////////////////////
+// Inline function declarations
+
+#ifdef _AFX_ENABLE_INLINES
+#define _AFXINET_INLINE inline
+#include <afxinet.inl>
+#endif
+
+#undef AFX_DATA
+#define AFX_DATA
+
+#ifdef _AFX_MINREBUILD
+#pragma component(minrebuild, on)
+#endif
+#ifndef _AFX_FULLTYPEINFO
+#pragma component(mintypeinfo, off)
+#endif
+
+#endif // __AFXINET_H__
+
+#endif // _MAC