2 httpext.h - Header for ISAPI extensions.
4 This file is part of a free library for the Win32 API.
6 This library is distributed in the hope that it will be useful,
7 but WITHOUT ANY WARRANTY; without even the implied warranty of
8 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 #pragma GCC system_header
23 #define HSE_VERSION_MAJOR 2
24 #define HSE_VERSION_MINOR 0
25 #define HSE_LOG_BUFFER_LEN 80
26 #define HSE_MAX_EXT_DLL_NAME_LEN 256
27 #define HSE_STATUS_SUCCESS 1
28 #define HSE_STATUS_SUCCESS_AND_KEEP_CONN 2
29 #define HSE_STATUS_PENDING 3
30 #define HSE_STATUS_ERROR 4
31 #define HSE_REQ_BASE 0
32 #define HSE_REQ_SEND_URL_REDIRECT_RESP 1
33 #define HSE_REQ_SEND_URL 2
34 #define HSE_REQ_SEND_RESPONSE_HEADER 3
35 #define HSE_REQ_DONE_WITH_SESSION 4
36 #define HSE_REQ_END_RESERVED 1000
37 #define HSE_TERM_ADVISORY_UNLOAD 0x00000001
38 #define HSE_TERM_MUST_UNLOAD 0x00000002
39 #define HSE_IO_SYNC 0x00000001
40 #define HSE_IO_ASYNC 0x00000002
41 #define HSE_IO_DISCONNECT_AFTER_SEND 0x00000004
42 #define HSE_IO_SEND_HEADERS 0x00000008
44 typedef struct _HSE_VERSION_INFO
{
45 DWORD dwExtensionVersion
;
46 CHAR lpszExtensionDesc
[HSE_MAX_EXT_DLL_NAME_LEN
];
47 } HSE_VERSION_INFO
, *LPHSE_VERSION_INFO
;
48 typedef struct _EXTENSION_CONTROL_BLOCK
{
52 DWORD dwHttpStatusCode
;
53 CHAR lpszLogData
[HSE_LOG_BUFFER_LEN
];
55 LPSTR lpszQueryString
;
57 LPSTR lpszPathTranslated
;
61 LPSTR lpszContentType
;
62 BOOL (PASCAL
*GetServerVariable
)(HCONN
,LPSTR
,LPVOID
,LPDWORD
);
63 BOOL (PASCAL
*WriteClient
)(HCONN
,LPVOID
,LPDWORD
,DWORD
);
64 BOOL (PASCAL
*ReadClient
)(HCONN
,LPVOID
,LPDWORD
);
65 BOOL (PASCAL
*ServerSupportFunction
)(HCONN
,DWORD
,LPVOID
,LPDWORD
,LPDWORD
);
66 } EXTENSION_CONTROL_BLOCK
, *LPEXTENSION_CONTROL_BLOCK
;
67 typedef BOOL (PASCAL
*PFN_GETEXTENSIONVERSION
)(HSE_VERSION_INFO
*);
68 typedef DWORD (PASCAL
*PFN_HTTPEXTENSIONPROC
)(EXTENSION_CONTROL_BLOCK
*);
69 typedef BOOL (PASCAL
*PFN_TERMINATEEXTENSION
)(DWORD
);
70 typedef VOID (PASCAL
*PFN_HSE_IO_COMPLETION
)(EXTENSION_CONTROL_BLOCK
*,PVOID
,DWORD
,DWORD
);
71 typedef struct _HSE_TF_INFO
{
72 PFN_HSE_IO_COMPLETION pfnHseIO
;
83 } HSE_TF_INFO
, *LPHSE_TF_INFO
;
84 BOOL PASCAL
GetExtensionVersion(HSE_VERSION_INFO
*);
85 DWORD PASCAL
HttpExtensionProc(EXTENSION_CONTROL_BLOCK
*);
86 BOOL PASCAL
TerminateExtension(DWORD
);
90 #endif /* _HTTPEXT_H */