|
Figure 1
New MFC Internet Server API Classes
Class Name | Description | CHttpServer | Basis for DLL-based Internet server extensions | CHttpFilter | Creates an Internet server message | CHttpServerContext | Cooperates with CHttpServer to handle concurrent, multiple client requests | CHttpFilterContext | Cooperates with CHttpFilter to handle concurrent, multiple client requests | CHtmlStream | Models an HTML stream file |
Figure 2
WWWQUOTE Parse Map
CWWWQuote theExtension;
BEGIN_PARSE_MAP(CWWWQuote, CHttpServer)
DEFAULT_PARSE_COMMAND(Quote, CWWWQuote)
ON_PARSE_COMMAND(Quote, CWWWQuote, ITS_EMPTY)
ON_PARSE_COMMAND(Issues, CWWWQuote, ITS_PSTR)
ON_PARSE_COMMAND_PARAMS("Method")
ON_PARSE_COMMAND(GetQuotes, CWWWQuote, ITS_PSTR ITS_I4,
ITS_I4 ITS_I4 ITS_I4 ITS_I4 ITS_I4)
ON_PARSE_COMMAND_PARAMS("Ticker=~ Month=0 Year=0 MinMonth=0 MinYear=0 "
"MaxMonth=0 MaxYear=0")
ON_PARSE_COMMAND(PreviousMonth, CWWWQuote,
ITS_PSTR ITS_I4 ITS_I4 ITS_I4 ITS_I4 ITS_I4 ITS_I4)
ON_PARSE_COMMAND_PARAMS("Ticker Month Year MinMonth MinYear "
"MaxMonth MaxYear")
ON_PARSE_COMMAND(NextMonth, CWWWQuote,
ITS_PSTR ITS_I4 ITS_I4 ITS_I4 ITS_I4 ITS_I4 ITS_I4)
ON_PARSE_COMMAND_PARAMS("Ticker Month Year MinMonth MinYear MaxMonth MaxYear")
END_PARSE_MAP(CWWWQuote)
Figure 3
Extension Control Block
typedef struct _EXTENSION_CONTROL_BLOCK {
DWORD cbSize; //IN
DWORD dwVersion //IN
HCONN ConnID; //IN
DWORD dwHttpStatusCode; //OUT
CHAR lpszLogData[HSE_LOG_BUFFER_LEN]; //OUT
LPSTR lpszMethod; //IN
LPSTR lpszQueryString; //IN
LPSTR lpszPathInfo; //IN
LPSTR lpszPathTranslated; //IN
DWORD cbTotalBytes; //IN
DWORD cbAvailable; //IN
LPBYTE lpbData; //IN
LPSTR lpszContentType; //IN
BOOL ( WINAPI * GetServerVariable )
( HCONN hConn,
LPSTR lpszVariableName,
LPVOID lpvBuffer,
LPDWORD lpdwSize );
BOOL ( WINAPI * WriteClient )
( HCONN ConnID,
LPVOID Buffer,
LPDWORD lpdwBytes,
DWORD dwReserved );
BOOL ( WINAPI * ReadClient )
( HCONN ConnID,
LPVOID lpvBuffer,
LPDWORD lpdwSize );
BOOL ( WINAPI * ServerSupportFunction )
( HCONN hConn,
DWORD dwHSERRequest,
LPVOID lpvBuffer,
LPDWORD lpdwSize,
LPDWORD lpdwDataType );
}
Figure 4
WinInet Classes
Class Name | Description | CInternetSession | Creates and initializes one or more Internet sessions, describing the connection to a proxy server if necessary. | CInternetConnection | Manages the connection to a server. It's the base class for CFtpConnection, CHttpConnection, and CGopherConnection. | CFtpConnection | Manages a connection to a server using FTP and supports direct manipulation of directories and files on the FTP server side of the connection. | CGopherConnection | Manages a connection to a Gopher server. The class contains a constructor and three additional member functions: OpenFile, CreateLocator, and GetAttribute. | CHttpConnection | Manages an HTTP connection. Contains a constructor and the member function OpenRequest. | CInternetFile | The base class for the CHttpFile and CGopherFile file classes. Allows access to files on remote systems that use Internet protocols. | CHttpFile | Finds and read files on an HTTP server. | CGopherFile | Finds and reads files on a Gopher server. The Gopher service supported by this class is read-only. | CFileFind | Performs local and Internet file searches and is the base class for CGopherFileFind and CFtpFileFind. | CGopherFileFind | Searches Gopher servers. | CFtpFileFind | Searches FTP servers. | CInternetException | Encapsulates an Internet-related exception condition. | AfxParseURL | Parses URLs of the form <service>://server/dir/dir/object.ext:<port> | AfxGetInternetHandleType | Determines the type of an Internet handle. |
|