NAME

EXTENSION_CONTROL_BLOCK - ISAPI extension request information.


SYNOPSIS

 typedef struct {
   DWORD     cbSize;            /* Size of this struct. */
   DWORD     dwVersion;         /* Version info of this spec */
   HCONN     ConnID;            /* Context number: not to be modified! */
   DWORD     dwHttpStatusCode;  /* HTTP Status code */

   /* null terminated log info specific to this Extension DLL */
   CHAR lpszLogData[HSE_LOG_BUFFER_LEN];

   /* strings giving equivalents of CGI spec's environment: */
   LPCSTR    lpszMethod;        /* REQUEST_METHOD */
   LPCSTR    lpszQueryString;   /* QUERY_STRING */
   LPCSTR    lpszPathInfo;      /* PATH_INFO */
   LPCSTR    lpszPathTranslated;/* PATH_TRANSLATED */

   /* description of data from the client: */
   DWORD     cbTotalBytes;      /* Total bytes indicated from client */
   DWORD     cbAvailable;       /* Available number of bytes */
   LPBYTE    lpbData;           /* Pointer to cbAvailable bytes */
   LPCSTR    lpszContentType;   /* Content type of client data */

   BOOL (WINAPI * GetServerVariable) ( HCONN       hConn,
                                       LPSTR       lpszVariableName,
                                       LPVOID      lpvBuffer,
                                       LPDWORD     lpdwSizeofBuffer );

   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 );
 } EXTENSION_CONTROL_BLOCK;


DESCRIPTION

When an ISAPI-enabled web server delegates processing to the HttpExtensionProc of an extension library, it communicates the request being processed, and the stage of its processing being handled, in an EXTENSION_CONTROL_BLOCK. This provides data describing the request along with functions by which the extension can obtain support from the server and communicate with the client who made the request.

The functions (methods or callbacks, as you will) in the structure are documented separately, as if they were library functions. The EXTENSION_CONTROL_BLOCK's ConnID field should be used as first argument to these functions.


SEE ALSO

isapi(7), HttpExtensionProc(3), GetServerVariable(3), WriteClient(3) ReadClient(3), ServerSupportFunction(3).


FILES

$ZEUSHOME/web/include/httpext.h $ZEUSHOME/web/include/wintypes.h $ZEUSHOME/webadmin/docroot/docs/modules/isapi/*.html


COPYRIGHT

Copyright (C) 2000-2001 Zeus Technology Limited. All rights reserved.