root/trunk/win32/httpext.d

Revision 165, 3.7 kB (checked in by smjg, 5 years ago)

Minor cleanups

Line 
1 /***********************************************************************\
2 *                               httpext.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.httpext;
11
12 /* Comment from MinGW
13        httpext.h - Header for ISAPI extensions.
14
15        This file is part of a free library for the Win32 API.
16
17        This library is distributed in the hope that it will be useful,
18        but WITHOUT ANY WARRANTY; without even the implied warranty of
19        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 */
21
22 private import win32.windows;
23
24 enum {
25     HSE_VERSION_MAJOR               = 2,
26     HSE_VERSION_MINOR               = 0,
27     HSE_LOG_BUFFER_LEN              = 80,
28     HSE_MAX_EXT_DLL_NAME_LEN        = 256,
29     HSE_STATUS_SUCCESS              = 1,
30     HSE_STATUS_SUCCESS_AND_KEEP_CONN,
31     HSE_STATUS_PENDING,
32     HSE_STATUS_ERROR,
33     HSE_REQ_BASE                    = 0,
34     HSE_REQ_SEND_URL_REDIRECT_RESP,
35     HSE_REQ_SEND_URL,
36     HSE_REQ_SEND_RESPONSE_HEADER,
37     HSE_REQ_DONE_WITH_SESSION,
38     HSE_REQ_SEND_RESPONSE_HEADER_EX = 1016,
39     HSE_REQ_END_RESERVED            = 1000,
40     HSE_TERM_ADVISORY_UNLOAD        = 0x00000001,
41     HSE_TERM_MUST_UNLOAD,
42     HSE_IO_SYNC                     = 0x00000001,
43     HSE_IO_ASYNC,
44     HSE_IO_DISCONNECT_AFTER_SEND    = 0x00000004,
45     HSE_IO_SEND_HEADERS             = 0x00000008
46 }
47
48 alias HANDLE HCONN;
49
50 struct HSE_VERSION_INFO {
51     DWORD dwExtensionVersion;
52     CHAR[HSE_MAX_EXT_DLL_NAME_LEN] lpszExtensionDesc;
53 }
54 alias HSE_VERSION_INFO* LPHSE_VERSION_INFO;
55
56 struct EXTENSION_CONTROL_BLOCK {
57     DWORD  cbSize = EXTENSION_CONTROL_BLOCK.sizeof;
58     DWORD  dwVersion;
59     HCONN  ConnID;
60     DWORD  dwHttpStatusCode;
61     CHAR[HSE_LOG_BUFFER_LEN] lpszLogData;
62     LPSTR  lpszMethod;
63     LPSTR  lpszQueryString;
64     LPSTR  lpszPathInfo;
65     LPSTR  lpszPathTranslated;
66     DWORD  cbTotalBytes;
67     DWORD  cbAvailable;
68     LPBYTE lpbData;
69     LPSTR  lpszContentType;
70     extern(Pascal) BOOL function(HCONN, LPSTR, LPVOID, LPDWORD)
71       GetServerVariable;
72     extern(Pascal) BOOL function(HCONN, LPVOID, LPDWORD, DWORD) WriteClient;
73     extern(Pascal) BOOL function(HCONN, LPVOID, LPDWORD) ReadClient;
74     extern(Pascal) BOOL function(HCONN, DWORD, LPVOID, LPDWORD, LPDWORD)
75       ServerSupportFunction;
76 }
77 alias EXTENSION_CONTROL_BLOCK* LPEXTENSION_CONTROL_BLOCK;
78
79 extern (Pascal) {
80     alias BOOL function(HSE_VERSION_INFO*) PFN_GETEXTENSIONVERSION;
81     alias DWORD function(EXTENSION_CONTROL_BLOCK*) PFN_HTTPEXTENSIONPROC;
82     alias BOOL function(DWORD) PFN_TERMINATEEXTENSION;
83     alias VOID function(EXTENSION_CONTROL_BLOCK*, PVOID, DWORD, DWORD) PFN_HSE_IO_COMPLETION;
84 }
85
86 struct HSE_TF_INFO {
87     PFN_HSE_IO_COMPLETION pfnHseIO;
88     PVOID  pContext;
89     HANDLE hFile;
90     LPCSTR pszStatusCode;
91     DWORD  BytesToWrite;
92     DWORD  Offset;
93     PVOID  pHead;
94     DWORD  HeadLength;
95     PVOID  pTail;
96     DWORD  TailLength;
97     DWORD  dwFlags;
98 }
99 alias HSE_TF_INFO* LPHSE_TF_INFO;
100
101 struct HSE_SEND_HEADER_EX_INFO {
102     LPCSTR pszStatus;
103     LPCSTR pszHeader;
104     DWORD  cchStatus;
105     DWORD  cchHeader;
106     BOOL   fKeepConn;
107 }
108 alias HSE_SEND_HEADER_EX_INFO* LPHSE_SEND_HEADER_EX_INF;
109
110 extern (Pascal) {
111     BOOL GetExtensionVersion(HSE_VERSION_INFO*);
112     DWORD HttpExtensionProc(EXTENSION_CONTROL_BLOCK*);
113     BOOL TerminateExtension(DWORD);
114 }
Note: See TracBrowser for help on using the browser.