diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/sdk/inc/mfc42/afxinet.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/mfc42/afxinet.h | 671 |
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 |