Unit HTTPExt

*****************************************************} { } { Delphi ISAPI Interface } { Version 1.0 HTTP Server Extension interface. } { } { Copyright (c) 1996 Borland International } { } {

Classes

Functions

Types

HCONN
PEXTENSION_CONTROL_BLOCK
PHSE_VERSION_INFO
TEXTENSION_CONTROL_BLOCK
TGetServerVariableProc
THSE_VERSION_INFO
TReadClientProc
TServerSupportFunctionProc
TWriteClientProc

Constants

HSE_LOG_BUFFER_LEN
HSE_MAX_EXT_DLL_NAME_LEN
HSE_REQ_BASE
HSE_REQ_DONE_WITH_SESSION
HSE_REQ_END_RESERVED
HSE_REQ_GET_SSPI_INFO
HSE_REQ_MAP_URL_TO_PATH
HSE_REQ_SEND_RESPONSE_HEADER
HSE_REQ_SEND_URL
HSE_REQ_SEND_URL_REDIRECT_RESP
HSE_STATUS_ERROR
HSE_STATUS_PENDING
HSE_STATUS_SUCCESS
HSE_STATUS_SUCCESS_AND_KEEP_CONN
HSE_VERSION_MAJOR
HSE_VERSION_MINOR

Variables


Functions


Types


HCONN = THandle

PEXTENSION_CONTROL_BLOCK = ^TEXTENSION_CONTROL_BLOCK
passed to extension procedure on a new request //
PHSE_VERSION_INFO = ^THSE_VERSION_INFO
passed to GetExtensionVersion //
TEXTENSION_CONTROL_BLOCK = record
cbSize : DWORD;
dwVersion : DWORD;
ConnID : HCONN;
dwHttpStatusCode : DWORD;
lpszLogData : array [0..HSE_LOG_BUFFER_LEN-1] of Char;
lpszMethod : PChar;
lpszQueryString : PChar;
lpszPathInfo : PChar;
lpszPathTranslated : PChar;
cbTotalBytes : DWORD;
cbAvailable : DWORD;
lpbData : Pointer;
lpszContentType : PChar;
GetServerVariable : TGetServerVariableProc;
WriteClient : TWriteClientProc;
ReadClient : TReadClientProc;
ServerSupportFunction : TServerSupportFunctionProc;
end;

TGetServerVariableProc = function ( hConn: HCONN;
                                      VariableName: PChar;
				      Buffer: Pointer;
                                      var Size: DWORD ): BOOL stdcall

THSE_VERSION_INFO = record
dwExtensionVersion : DWORD;
lpszExtensionDesc : array [0..HSE_MAX_EXT_DLL_NAME_LEN-1] of Char;
end;

TReadClientProc  = function ( ConnID: HCONN;
                                Buffer: Pointer;
                                var Size: DWORD ): BOOL stdcall

TServerSupportFunctionProc = function ( hConn: HCONN;
                                          HSERRequest: DWORD;
                                          Buffer: Pointer;
                                          var Size: DWORD;
                                          var DataType: DWORD ): BOOL stdcall

TWriteClientProc = function ( ConnID: HCONN;
                                Buffer: Pointer;
                                var Bytes: DWORD;
                                dwReserved: DWORD ): BOOL stdcall

Constants

HSE_LOG_BUFFER_LEN = 80

minor version of this spec

HSE_MAX_EXT_DLL_NAME_LEN = 256

HSE_REQ_BASE = 0

The following are the values to request services with the ServerSupportFunction. Values from 0 to 1000 are reserved for future versions of the interface

HSE_REQ_DONE_WITH_SESSION = ( HSE_REQ_BASE + 4 )

HSE_REQ_END_RESERVED = 1000

HSE_REQ_GET_SSPI_INFO = (HSE_REQ_END_RESERVED+2)

HSE_REQ_MAP_URL_TO_PATH = (HSE_REQ_END_RESERVED+1)

These are Microsoft specific extensions //

HSE_REQ_SEND_RESPONSE_HEADER = (HSE_REQ_BASE + 3 )

HSE_REQ_SEND_URL = ( HSE_REQ_BASE + 2 )

HSE_REQ_SEND_URL_REDIRECT_RESP = ( HSE_REQ_BASE + 1 )

HSE_STATUS_ERROR = 4

HSE_STATUS_PENDING = 3

HSE_STATUS_SUCCESS = 1

the following are the status codes returned by the Extension DLL

HSE_STATUS_SUCCESS_AND_KEEP_CONN = 2

HSE_VERSION_MAJOR = 1

HSE_VERSION_MINOR = 0

major version of this spec

Variables