📄 reqsock.h
字号:
// ReqSock.h : interface of the CRequestSocket class
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (c) 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.
class CRequest;
class CHttpSvrDoc;
class CRequestSocket : public CAsyncSocket
{
DECLARE_DYNCREATE(CRequestSocket)
CRequestSocket( void );
protected:
void StuffFileType( void );
BOOL m_bKeepOpen;
BOOL m_bWantKeepOpen;
enum REQSTATUS
{
REQ_REQUEST=0, REQ_HEADER, REQ_BODY, REQ_SIMPLE, REQ_DONE
};
CRequest* m_pRequest; // request object
CByteArray m_buf;
int m_cbOut;
CString m_strLine;
REQSTATUS m_reqStatus;
HANDLE m_hFile;
int m_nRefs;
BOOL m_bKilled;
public:
CHttpSvrDoc* m_pDoc;
BOOL CheckExt( const CString& strExt, CString& strAvail, DWORD dwType );
BOOL IsSvrApp( void );
BOOL CheckDefault( UINT uList, BOOL bExecute );
CString StripLast( CString& strPath );
int StuffStatus( const CString& strStatus );
CRequestSocket( CHttpSvrDoc* pDoc );
~CRequestSocket( void );
virtual int AddRef( void );
virtual int Release( void );
#ifdef IMPL_CGI
BOOL CGIStart( void );
void CGIDone( void );
CWinThread* m_pThread;
CEvent* m_pCancel;
#endif // IMPL_CGI
protected:
BOOL StartSvrApp( void );
BOOL FromHttpTime( const CString& strHttp, CTime& timeHttp );
BOOL IfModSince( const CTime& timeIfMod );
CString GetHttpDate( LPFILETIME pft = NULL );
BOOL GetLine( const CByteArray& bytes, int nBytes, int& ndx );
void ProcessLine( void );
BOOL BodySent( void );
void AddToBody( int nBytes, int ndx );
BOOL StartResponse( void );
BOOL FindTarget( CString& strFile );
BOOL URLtoPath( CString& strFile );
BOOL PathToURL( CString& strFile );
BOOL StuffHeading( void );
void StartTargetStuff( void );
int StuffString( const CString& );
int StuffString( UINT uId );
int StuffStatus( UINT uMsg );
int StuffError( UINT uMsg );
int StuffHeader( CString strName, CString strValue );
int StuffHeader( CString strName, int nValue );
// methods not supported by Mac version....
void StuffListing( void );
int StuffListingFile( WIN32_FIND_DATA* fd, const CString& strDir, BOOL bIcons );
protected:
virtual void OnReceive(int nErrorCode);
virtual void OnSend(int nErrorCode);
virtual void OnClose(int nErrorCode);
friend UINT CGIThread( LPVOID );
};
CString Decode( const CString& str, BOOL bQuery = FALSE );
#ifdef IMPL_CGI
void HeaderToEnvVar( CString& strVar );
class CEnvironment
{
public:
CStringList m_list;
int m_nSize;
CEnvironment( void );
~CEnvironment( void );
BOOL Add( CString name, CString value );
LPVOID GetBlock( void );
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -