This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/httpext.h

330 lines
12 KiB
C
Raw Normal View History

/*
* httpext.h HTTP server extension definitions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _HTTPEXT_H_
#define _HTTPEXT_H_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#include <windows.h>
#if (_WIN32_WINNT >= 0x0400)
#include <wincrypt.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Connection handle */
typedef LPVOID HCONN;
/* Version numbers */
#define HSE_VERSION_MAJOR 7
#define HSE_VERSION_MINOR 5
#define HSE_VERSION MAKELONG( HSE_VERSION_MINOR, HSE_VERSION_MAJOR )
/* String lengths */
#define HSE_LOG_BUFFER_LEN 80
#define HSE_MAX_EXT_DLL_NAME_LEN 256
/* HTTP server extension status codes */
#define HSE_STATUS_SUCCESS 1
#define HSE_STATUS_SUCCESS_AND_KEEP_CONN 2
#define HSE_STATUS_PENDING 3
#define HSE_STATUS_ERROR 4
/* HTTP server extension request codes */
#define HSE_REQ_BASE 0
#define HSE_REQ_SEND_URL_REDIRECT_RESP (HSE_REQ_BASE + 1)
#define HSE_REQ_SEND_URL (HSE_REQ_BASE + 2)
#define HSE_REQ_SEND_RESPONSE_HEADER (HSE_REQ_BASE + 3)
#define HSE_REQ_DONE_WITH_SESSION (HSE_REQ_BASE + 4)
#define HSE_REQ_END_RESERVED 1000
#define HSE_REQ_MAP_URL_TO_PATH (HSE_REQ_END_RESERVED + 1)
#define HSE_REQ_GET_SSPI_INFO (HSE_REQ_END_RESERVED + 2)
#define HSE_APPEND_LOG_PARAMETER (HSE_REQ_END_RESERVED + 3)
#define HSE_REQ_IO_COMPLETION (HSE_REQ_END_RESERVED + 5)
#define HSE_REQ_TRANSMIT_FILE (HSE_REQ_END_RESERVED + 6)
#define HSE_REQ_REFRESH_ISAPI_ACL (HSE_REQ_END_RESERVED + 7)
#define HSE_REQ_IS_KEEP_CONN (HSE_REQ_END_RESERVED + 8)
#define HSE_REQ_ASYNC_READ_CLIENT (HSE_REQ_END_RESERVED + 10)
#define HSE_REQ_GET_IMPERSONATION_TOKEN (HSE_REQ_END_RESERVED + 11)
#define HSE_REQ_MAP_URL_TO_PATH_EX (HSE_REQ_END_RESERVED + 12)
#define HSE_REQ_ABORTIVE_CLOSE (HSE_REQ_END_RESERVED + 14)
#define HSE_REQ_GET_CERT_INFO_EX (HSE_REQ_END_RESERVED + 15)
#define HSE_REQ_SEND_RESPONSE_HEADER_EX (HSE_REQ_END_RESERVED + 16)
#define HSE_REQ_CLOSE_CONNECTION (HSE_REQ_END_RESERVED + 17)
#define HSE_REQ_IS_CONNECTED (HSE_REQ_END_RESERVED + 18)
#define HSE_REQ_MAP_UNICODE_URL_TO_PATH (HSE_REQ_END_RESERVED + 23)
#define HSE_REQ_MAP_UNICODE_URL_TO_PATH_EX (HSE_REQ_END_RESERVED + 24)
#define HSE_REQ_EXEC_UNICODE_URL (HSE_REQ_END_RESERVED + 25)
#define HSE_REQ_EXEC_URL (HSE_REQ_END_RESERVED + 26)
#define HSE_REQ_GET_EXEC_URL_STATUS (HSE_REQ_END_RESERVED + 27)
#define HSE_REQ_SEND_CUSTOM_ERROR (HSE_REQ_END_RESERVED + 28)
#define HSE_REQ_IS_IN_PROGRESS (HSE_REQ_END_RESERVED + 30)
#define HSE_REQ_REPORT_UNHEALTHY (HSE_REQ_END_RESERVED + 32)
#define HSE_REQ_NORMALIZE_URL (HSE_REQ_END_RESERVED + 33)
#define HSE_REQ_VECTOR_SEND (HSE_REQ_END_RESERVED + 37)
#define HSE_REQ_GET_ANONYMOUS_TOKEN (HSE_REQ_END_RESERVED + 38)
#define HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK (HSE_REQ_END_RESERVED + 40)
#define HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN (HSE_REQ_END_RESERVED + 41)
#define HSE_REQ_GET_TRACE_INFO (HSE_REQ_END_RESERVED + 42)
#define HSE_REQ_SET_FLUSH_FLAG (HSE_REQ_END_RESERVED + 43)
#define HSE_REQ_GET_TRACE_INFO_EX (HSE_REQ_END_RESERVED + 44)
#define HSE_REQ_RAISE_TRACE_EVENT (HSE_REQ_END_RESERVED + 45)
#define HSE_REQ_GET_CONFIG_OBJECT (HSE_REQ_END_RESERVED + 46)
#define HSE_REQ_GET_WORKER_PROCESS_SETTINGS (HSE_REQ_END_RESERVED + 47)
#define HSE_REQ_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK (HSE_REQ_END_RESERVED + 48)
#define HSE_REQ_CANCEL_IO (HSE_REQ_END_RESERVED + 49)
#define HSE_REQ_GET_CHANNEL_BINDING_TOKEN (HSE_REQ_END_RESERVED + 50)
/* TerminateExtension() flags */
#define HSE_TERM_ADVISORY_UNLOAD 0x00000001L
#define HSE_TERM_MUST_UNLOAD 0x00000002L
/* I/O flags */
#define HSE_IO_SYNC 0x00000001L
#define HSE_IO_ASYNC 0x00000002L
#define HSE_IO_DISCONNECT_AFTER_SEND 0x00000004L
#define HSE_IO_SEND_HEADERS 0x00000008L
#define HSE_IO_FINAL_SEND 0x00000010L
#define HSE_IO_CACHE_RESPONSE 0x00000020L
#define HSE_IO_TRY_SKIP_CUSTOM_ERRORS 0x00000040L
#define HSE_IO_NODELAY 0x00001000L
/* URL flags */
#define HSE_URL_FLAGS_READ 0x00000001L
#define HSE_URL_FLAGS_WRITE 0x00000002L
#define HSE_URL_FLAGS_EXECUTE 0x00000004L
#define HSE_URL_FLAGS_SSL 0x00000008L
#define HSE_URL_FLAGS_DONT_CACHE 0x00000010L
#define HSE_URL_FLAGS_NEGO_CERT 0x00000020L
#define HSE_URL_FLAGS_REQUIRE_CERT 0x00000040L
#define HSE_URL_FLAGS_MAP_CERT 0x00000080L
#define HSE_URL_FLAGS_SSL128 0x00000100L
#define HSE_URL_FLAGS_SCRIPT 0x00000200L
#define HSE_URL_FLAGS_MASK 0x000003FFL
/* HSE_REQ_EXEC_URL flags */
#define HSE_EXEC_URL_NO_HEADERS 0x00000002L
#define HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR 0x00000004L
#define HSE_EXEC_URL_IGNORE_VALIDATION_AND_RANGE 0x00000010L
#define HSE_EXEC_URL_DISABLE_CUSTOM_ERROR 0x00000020L
#define HSE_EXEC_URL_SSI_CMD 0x00000040L
#define HSE_EXEC_URL_HTTP_CACHE_ELIGIBLE 0x00000080L
/* Vector element types */
#define HSE_VECTOR_ELEMENT_TYPE_MEMORY_BUFFER 0L
#define HSE_VECTOR_ELEMENT_TYPE_FILE_HANDLE 1L
/* Application type flags */
#define HSE_APP_FLAG_IN_PROCESS 0L
#define HSE_APP_FLAG_ISOLATED_OOP 1L
#define HSE_APP_FLAG_POOLED_OOP 2L
/* GetExtensionVersion() parameters */
typedef struct _HSE_VERSION_INFO {
DWORD dwExtensionVersion;
CHAR lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN];
} HSE_VERSION_INFO;
typedef HSE_VERSION_INFO *LPHSE_VERSION_INFO;
/* Extension control block */
typedef struct _EXTENSION_CONTROL_BLOCK {
DWORD cbSize;
DWORD dwVersion;
HCONN ConnID;
DWORD dwHttpStatusCode;
CHAR lpszLogData[HSE_LOG_BUFFER_LEN];
LPSTR lpszMethod;
LPSTR lpszQueryString;
LPSTR lpszPathInfo;
LPSTR lpszPathTranslated;
DWORD cbTotalBytes;
DWORD cbAvailable;
LPBYTE lpbData;
LPSTR lpszContentType;
BOOL (WINAPI *GetServerVariable)( HCONN, LPSTR, LPVOID, LPDWORD );
BOOL (WINAPI *WriteClient)( HCONN, LPVOID, LPDWORD, DWORD );
BOOL (WINAPI *ReadClient)( HCONN, LPVOID, LPDWORD );
BOOL (WINAPI *ServerSupportFunction)( HCONN, DWORD, LPVOID, LPDWORD, LPDWORD );
} EXTENSION_CONTROL_BLOCK;
typedef EXTENSION_CONTROL_BLOCK *LPEXTENSION_CONTROL_BLOCK;
/* Extended URL mapping information */
typedef struct _HSE_URL_MAPEX_INFO {
CHAR lpszPath[MAX_PATH];
DWORD dwFlags;
DWORD cchMatchingPath;
DWORD cchMatchingURL;
DWORD dwReserved1;
DWORD dwReserved2;
} HSE_URL_MAPEX_INFO;
typedef HSE_URL_MAPEX_INFO *LPHSE_URL_MAPEX_INFO;
/* Unicode extended URL mapping information */
typedef struct _HSE_UNICODE_URL_MAPEX_INFO {
WCHAR lpszPath[MAX_PATH];
DWORD dwFlags;
DWORD cchMatchingPath;
DWORD cchMatchingURL;
} HSE_UNICODE_URL_MAPEX_INFO;
typedef HSE_UNICODE_URL_MAPEX_INFO *LPHSE_UNICODE_URL_MAPEX_INFO;
/* I/O completion callback */
typedef VOID (WINAPI *PFN_HSE_IO_COMPLETION)( EXTENSION_CONTROL_BLOCK *, PVOID, DWORD, DWORD );
/* HSE_REQ_TRANSMIT_FILE parameters */
typedef struct _HSE_TF_INFO {
PFN_HSE_IO_COMPLETION pfnHseIO;
PVOID pContext;
HANDLE hFile;
LPCSTR pszStatusCode;
DWORD BytesToWrite;
DWORD Offset;
PVOID pHead;
DWORD HeadLength;
PVOID pTail;
DWORD TailLength;
DWORD dwFlags;
} HSE_TF_INFO;
typedef HSE_TF_INFO *LPHSE_TF_INFO;
/* Extended send header information */
typedef struct _HSE_SEND_HEADER_EX_INFO {
LPCSTR pszStatus;
LPCSTR pszHeader;
DWORD cchStatus;
DWORD cchHeader;
BOOL fKeepConn;
} HSE_SEND_HEADER_EX_INFO;
typedef HSE_SEND_HEADER_EX_INFO *LPHSE_SEND_HEADER_EX_INFO;
/* HSE_REQ_EXEC_URL user information */
typedef struct _HSE_EXEC_URL_USER_INFO {
HANDLE hImpersonationToken;
LPSTR pszCustomUserName;
LPSTR pszCustomAuthType;
} HSE_EXEC_URL_USER_INFO;
typedef HSE_EXEC_URL_USER_INFO *LPHSE_EXEC_URL_USER_INFO;
/* HSE_REQ_EXEC_URL entity information */
typedef struct _HSE_EXEC_URL_ENTITY_INFO {
DWORD cbAvailable;
LPVOID lpbData;
} HSE_EXEC_URL_ENTITY_INFO;
typedef HSE_EXEC_URL_ENTITY_INFO *LPHSE_EXEC_URL_ENTITY_INFO;
/* HSE_REQ_EXEC_URL status */
typedef struct _HSE_EXEC_URL_STATUS {
USHORT uHttpStatusCode;
USHORT uHttpSubStatus;
DWORD dwWin32Error;
} HSE_EXEC_URL_STATUS;
typedef HSE_EXEC_URL_STATUS *LPHSE_EXEC_URL_STATUS;
/* HSE_REQ_EXEC_URL parameters */
typedef struct _HSE_EXEC_URL_INFO {
LPSTR pszUrl;
LPSTR pszMethod;
LPSTR pszChildHeaders;
LPHSE_EXEC_URL_USER_INFO pUserInfo;
LPHSE_EXEC_URL_ENTITY_INFO pEntity;
DWORD dwExecUrlFlags;
} HSE_EXEC_URL_FLAGS;
typedef HSE_EXEC_URL_FLAGS *LPHSE_EXEC_URL_FLAGS;
/* HSE_REQ_EXEC_UNICODE_URL user information */
typedef struct _HSE_EXEC_UNICODE_URL_USER_INFO {
HANDLE hImpersonationToken;
LPWSTR pszCustomUserName;
LPSTR pszCustomAuthType;
} HSE_EXEC_UNICODE_URL_USER_INFO;
typedef HSE_EXEC_UNICODE_URL_USER_INFO *LPHSE_EXEC_UNICODE_URL_USER_INFO;
/* HSE_REQ_EXEC_UNICODE_URL parameters */
typedef struct _HSE_EXEC_UNICODE_URL_INFO {
LPWSTR pszUrl;
LPSTR pszMethod;
LPSTR pszChildHeaders;
LPHSE_EXEC_UNICODE_URL_USER_INFO pUserInfo;
LPHSE_EXEC_URL_ENTITY_INFO pEntity;
DWORD dwExecUrlFlags;
} HSE_EXEC_UNICODE_URL_INFO;
typedef HSE_EXEC_UNICODE_URL_INFO *LPHSE_EXEC_UNICODE_URL_INFO;
/* Custom error information */
typedef struct _HSE_CUSTOM_ERROR_INFO {
CHAR *pszStatus;
USHORT uHttpSubError;
BOOL fAsync;
} HSE_CUSTOM_ERROR_INFO;
typedef HSE_CUSTOM_ERROR_INFO *LPHSE_CUSTOM_ERROR_INFO;
/* Vector element */
typedef struct _HSE_VECTOR_ELEMENT {
DWORD ElementType;
PVOID pvContext;
ULONGLONG cbOffset;
ULONGLONG cbSize;
} HSE_VECTOR_ELEMENT;
typedef HSE_VECTOR_ELEMENT *LPHSE_VECTOR_ELEMENT;
/* Response vector */
typedef struct _HSE_RESPONSE_VECTOR {
DWORD dwFlags;
LPSTR pszStatus;
LPSTR pszHeaders;
DWORD nElementCount;
LPHSE_VECTOR_ELEMENT lpElementArray;
} HSE_RESPONSE_VECTOR;
typedef HSE_RESPONSE_VECTOR *LPHSE_RESPONSE_VECTOR;
/* Cache invalidation callback */
typedef HRESULT (WINAPI *PFN_HSE_CACHE_INVALIDATION_CALLBACK)( WCHAR * );
/* Certificate context (extended version) */
#if (_WIN32_WINNT >= 0x0400)
typedef struct _CERT_CONTEXT_EX {
CERT_CONTEXT CertContext;
DWORD cbAllocated;
DWORD dwCertificateFlags;
} CERT_CONTEXT_EX;
#endif
/* Trace information */
typedef struct _HSE_TRACE_INFO {
BOOL fTraceRequest;
BYTE TraceContextId[16];
DWORD dwReserved1;
DWORD dwReserved2;
} HSE_TRACE_INFO;
typedef HSE_TRACE_INFO *LPHSE_TRACE_INFO;
/* Custom interface callback */
typedef HRESULT (WINAPI *PFN_HSE_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK)( LPCWSTR, LPCWSTR, DWORD, PVOID * );
/* Functions exported by HTTP server extensions */
BOOL WINAPI GetExtensionVersion( HSE_VERSION_INFO * );
DWORD WINAPI HttpExtensionProc( EXTENSION_CONTROL_BLOCK * );
BOOL WINAPI TerminateExtension( DWORD );
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _HTTPEXT_H_ */