4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * httpext.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.httpext; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* Comment from MinGW 4e2933c620 2015-04-21 kinaba: httpext.h - Header for ISAPI extensions. 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: This file is part of a free library for the Win32 API. 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: This library is distributed in the hope that it will be useful, 4e2933c620 2015-04-21 kinaba: but WITHOUT ANY WARRANTY; without even the implied warranty of 4e2933c620 2015-04-21 kinaba: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.windows; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: HSE_VERSION_MAJOR = 2, 4e2933c620 2015-04-21 kinaba: HSE_VERSION_MINOR = 0, 4e2933c620 2015-04-21 kinaba: HSE_LOG_BUFFER_LEN = 80, 4e2933c620 2015-04-21 kinaba: HSE_MAX_EXT_DLL_NAME_LEN = 256, 4e2933c620 2015-04-21 kinaba: HSE_STATUS_SUCCESS = 1, 4e2933c620 2015-04-21 kinaba: HSE_STATUS_SUCCESS_AND_KEEP_CONN, 4e2933c620 2015-04-21 kinaba: HSE_STATUS_PENDING, 4e2933c620 2015-04-21 kinaba: HSE_STATUS_ERROR, 4e2933c620 2015-04-21 kinaba: HSE_REQ_BASE = 0, 4e2933c620 2015-04-21 kinaba: HSE_REQ_SEND_URL_REDIRECT_RESP, 4e2933c620 2015-04-21 kinaba: HSE_REQ_SEND_URL, 4e2933c620 2015-04-21 kinaba: HSE_REQ_SEND_RESPONSE_HEADER, 4e2933c620 2015-04-21 kinaba: HSE_REQ_DONE_WITH_SESSION, 4e2933c620 2015-04-21 kinaba: HSE_REQ_SEND_RESPONSE_HEADER_EX = 1016, 4e2933c620 2015-04-21 kinaba: HSE_REQ_END_RESERVED = 1000, 4e2933c620 2015-04-21 kinaba: HSE_TERM_ADVISORY_UNLOAD = 0x00000001, 4e2933c620 2015-04-21 kinaba: HSE_TERM_MUST_UNLOAD, 4e2933c620 2015-04-21 kinaba: HSE_IO_SYNC = 0x00000001, 4e2933c620 2015-04-21 kinaba: HSE_IO_ASYNC, 4e2933c620 2015-04-21 kinaba: HSE_IO_DISCONNECT_AFTER_SEND = 0x00000004, 4e2933c620 2015-04-21 kinaba: HSE_IO_SEND_HEADERS = 0x00000008 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: mixin DECLARE_HANDLE!("HCONN"); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct HSE_VERSION_INFO { 4e2933c620 2015-04-21 kinaba: DWORD dwExtensionVersion; 4e2933c620 2015-04-21 kinaba: CHAR[HSE_MAX_EXT_DLL_NAME_LEN] lpszExtensionDesc; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias HSE_VERSION_INFO* LPHSE_VERSION_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct EXTENSION_CONTROL_BLOCK { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = EXTENSION_CONTROL_BLOCK.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwVersion; 4e2933c620 2015-04-21 kinaba: HCONN ConnID; 4e2933c620 2015-04-21 kinaba: DWORD dwHttpStatusCode; 4e2933c620 2015-04-21 kinaba: CHAR[HSE_LOG_BUFFER_LEN] lpszLogData; 4e2933c620 2015-04-21 kinaba: LPSTR lpszMethod; 4e2933c620 2015-04-21 kinaba: LPSTR lpszQueryString; 4e2933c620 2015-04-21 kinaba: LPSTR lpszPathInfo; 4e2933c620 2015-04-21 kinaba: LPSTR lpszPathTranslated; 4e2933c620 2015-04-21 kinaba: DWORD cbTotalBytes; 4e2933c620 2015-04-21 kinaba: DWORD cbAvailable; 4e2933c620 2015-04-21 kinaba: LPBYTE lpbData; 4e2933c620 2015-04-21 kinaba: LPSTR lpszContentType; 4e2933c620 2015-04-21 kinaba: extern(Pascal) BOOL function(HCONN, LPSTR, LPVOID, LPDWORD) 4e2933c620 2015-04-21 kinaba: GetServerVariable; 4e2933c620 2015-04-21 kinaba: extern(Pascal) BOOL function(HCONN, LPVOID, LPDWORD, DWORD) WriteClient; 4e2933c620 2015-04-21 kinaba: extern(Pascal) BOOL function(HCONN, LPVOID, LPDWORD) ReadClient; 4e2933c620 2015-04-21 kinaba: extern(Pascal) BOOL function(HCONN, DWORD, LPVOID, LPDWORD, LPDWORD) 4e2933c620 2015-04-21 kinaba: ServerSupportFunction; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias EXTENSION_CONTROL_BLOCK* LPEXTENSION_CONTROL_BLOCK; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Pascal) { 4e2933c620 2015-04-21 kinaba: alias BOOL function(HSE_VERSION_INFO*) PFN_GETEXTENSIONVERSION; 4e2933c620 2015-04-21 kinaba: alias DWORD function(EXTENSION_CONTROL_BLOCK*) PFN_HTTPEXTENSIONPROC; 4e2933c620 2015-04-21 kinaba: alias BOOL function(DWORD) PFN_TERMINATEEXTENSION; 4e2933c620 2015-04-21 kinaba: alias VOID function(EXTENSION_CONTROL_BLOCK*, PVOID, DWORD, DWORD) PFN_HSE_IO_COMPLETION; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct HSE_TF_INFO { 4e2933c620 2015-04-21 kinaba: PFN_HSE_IO_COMPLETION pfnHseIO; 4e2933c620 2015-04-21 kinaba: PVOID pContext; 4e2933c620 2015-04-21 kinaba: HANDLE hFile; 4e2933c620 2015-04-21 kinaba: LPCSTR pszStatusCode; 4e2933c620 2015-04-21 kinaba: DWORD BytesToWrite; 4e2933c620 2015-04-21 kinaba: DWORD Offset; 4e2933c620 2015-04-21 kinaba: PVOID pHead; 4e2933c620 2015-04-21 kinaba: DWORD HeadLength; 4e2933c620 2015-04-21 kinaba: PVOID pTail; 4e2933c620 2015-04-21 kinaba: DWORD TailLength; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias HSE_TF_INFO* LPHSE_TF_INFO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct HSE_SEND_HEADER_EX_INFO { 4e2933c620 2015-04-21 kinaba: LPCSTR pszStatus; 4e2933c620 2015-04-21 kinaba: LPCSTR pszHeader; 4e2933c620 2015-04-21 kinaba: DWORD cchStatus; 4e2933c620 2015-04-21 kinaba: DWORD cchHeader; 4e2933c620 2015-04-21 kinaba: BOOL fKeepConn; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias HSE_SEND_HEADER_EX_INFO* LPHSE_SEND_HEADER_EX_INF; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Pascal) { 4e2933c620 2015-04-21 kinaba: BOOL GetExtensionVersion(HSE_VERSION_INFO*); 4e2933c620 2015-04-21 kinaba: DWORD HttpExtensionProc(EXTENSION_CONTROL_BLOCK*); 4e2933c620 2015-04-21 kinaba: BOOL TerminateExtension(DWORD); 4e2933c620 2015-04-21 kinaba: }