Mercurial > games > semicongine
diff fuhtark_test/include/winapi/httpext.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/httpext.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,260 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef _HTTPEXT_H_ +#define _HTTPEXT_H_ + +#include <windows.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define HSE_VERSION_MAJOR 6 +#define HSE_VERSION_MINOR 0 +#define HSE_LOG_BUFFER_LEN 80 +#define HSE_MAX_EXT_DLL_NAME_LEN 256 + +#define HSE_VERSION MAKELONG(HSE_VERSION_MINOR,HSE_VERSION_MAJOR) + +#define HSE_STATUS_SUCCESS 1 +#define HSE_STATUS_SUCCESS_AND_KEEP_CONN 2 +#define HSE_STATUS_PENDING 3 +#define HSE_STATUS_ERROR 4 + +#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_PROCESS (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_TERM_ADVISORY_UNLOAD 0x00000001 +#define HSE_TERM_MUST_UNLOAD 0x00000002 + +#define HSE_IO_SYNC 0x00000001 +#define HSE_IO_ASYNC 0x00000002 +#define HSE_IO_DISCONNECT_AFTER_SEND 0x00000004 +#define HSE_IO_SEND_HEADERS 0x00000008 +#define HSE_IO_NODELAY 0x00001000 + +#define HSE_IO_FINAL_SEND 0x00000010 +#define HSE_IO_CACHE_RESPONSE 0x00000020 + + typedef LPVOID HCONN; + + typedef struct _HSE_VERSION_INFO { + DWORD dwExtensionVersion; + CHAR lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN]; + } HSE_VERSION_INFO,*LPHSE_VERSION_INFO; + + 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; + WINBOOL (WINAPI *GetServerVariable) (HCONN hConn,LPSTR lpszVariableName,LPVOID lpvBuffer,LPDWORD lpdwSize); + WINBOOL (WINAPI *WriteClient) (HCONN ConnID,LPVOID Buffer,LPDWORD lpdwBytes,DWORD dwReserved); + WINBOOL (WINAPI *ReadClient) (HCONN ConnID,LPVOID lpvBuffer,LPDWORD lpdwSize); + WINBOOL (WINAPI *ServerSupportFunction)(HCONN hConn,DWORD dwHSERequest,LPVOID lpvBuffer,LPDWORD lpdwSize,LPDWORD lpdwDataType); + } EXTENSION_CONTROL_BLOCK,*LPEXTENSION_CONTROL_BLOCK; + +#define HSE_URL_FLAGS_READ 0x00000001 +#define HSE_URL_FLAGS_WRITE 0x00000002 +#define HSE_URL_FLAGS_EXECUTE 0x00000004 +#define HSE_URL_FLAGS_SSL 0x00000008 +#define HSE_URL_FLAGS_DONT_CACHE 0x00000010 +#define HSE_URL_FLAGS_NEGO_CERT 0x00000020 +#define HSE_URL_FLAGS_REQUIRE_CERT 0x00000040 +#define HSE_URL_FLAGS_MAP_CERT 0x00000080 +#define HSE_URL_FLAGS_SSL128 0x00000100 +#define HSE_URL_FLAGS_SCRIPT 0x00000200 + +#define HSE_URL_FLAGS_MASK 0x000003ff + + typedef struct _HSE_URL_MAPEX_INFO { + CHAR lpszPath[MAX_PATH]; + DWORD dwFlags; + DWORD cchMatchingPath; + DWORD cchMatchingURL; + DWORD dwReserved1; + DWORD dwReserved2; + } HSE_URL_MAPEX_INFO,*LPHSE_URL_MAPEX_INFO; + + typedef struct _HSE_UNICODE_URL_MAPEX_INFO { + WCHAR lpszPath[MAX_PATH]; + DWORD dwFlags; + DWORD cchMatchingPath; + DWORD cchMatchingURL; + } HSE_UNICODE_URL_MAPEX_INFO,*LPHSE_UNICODE_URL_MAPEX_INFO; + + typedef VOID (WINAPI *PFN_HSE_IO_COMPLETION)(EXTENSION_CONTROL_BLOCK *pECB,PVOID pContext,DWORD cbIO,DWORD dwError); + + 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,*LPHSE_TF_INFO; + + typedef struct _HSE_SEND_HEADER_EX_INFO { + LPCSTR pszStatus; + LPCSTR pszHeader; + DWORD cchStatus; + DWORD cchHeader; + WINBOOL fKeepConn; + } HSE_SEND_HEADER_EX_INFO,*LPHSE_SEND_HEADER_EX_INFO; + +#define HSE_EXEC_URL_NO_HEADERS 0x02 +#define HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR 0x04 +#define HSE_EXEC_URL_IGNORE_VALIDATION_AND_RANGE 0x10 +#define HSE_EXEC_URL_DISABLE_CUSTOM_ERROR 0x20 +#define HSE_EXEC_URL_SSI_CMD 0x40 + + typedef struct _HSE_EXEC_URL_USER_INFO { + HANDLE hImpersonationToken; + LPSTR pszCustomUserName; + LPSTR pszCustomAuthType; + } HSE_EXEC_URL_USER_INFO,*LPHSE_EXEC_URL_USER_INFO; + + typedef struct _HSE_EXEC_URL_ENTITY_INFO { + DWORD cbAvailable; + LPVOID lpbData; + } HSE_EXEC_URL_ENTITY_INFO,*LPHSE_EXEC_URL_ENTITY_INFO; + + typedef struct _HSE_EXEC_URL_STATUS { + USHORT uHttpStatusCode; + USHORT uHttpSubStatus; + DWORD dwWin32Error; + } HSE_EXEC_URL_STATUS,*LPHSE_EXEC_URL_STATUS; + + 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_INFO,*LPHSE_EXEC_URL_INFO; + + typedef struct _HSE_EXEC_UNICODE_URL_USER_INFO { + HANDLE hImpersonationToken; + LPWSTR pszCustomUserName; + LPSTR pszCustomAuthType; + } HSE_EXEC_UNICODE_URL_USER_INFO,*LPHSE_EXEC_UNICODE_URL_USER_INFO; + + 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,*LPHSE_EXEC_UNICODE_URL_INFO; + + typedef struct _HSE_CUSTOM_ERROR_INFO { + CHAR *pszStatus; + USHORT uHttpSubError; + WINBOOL fAsync; + } HSE_CUSTOM_ERROR_INFO,*LPHSE_CUSTOM_ERROR_INFO; + +#define HSE_VECTOR_ELEMENT_TYPE_MEMORY_BUFFER 0 +#define HSE_VECTOR_ELEMENT_TYPE_FILE_HANDLE 1 + + typedef struct _HSE_VECTOR_ELEMENT { + DWORD ElementType; + PVOID pvContext; + ULONGLONG cbOffset; + ULONGLONG cbSize; + } HSE_VECTOR_ELEMENT,*LPHSE_VECTOR_ELEMENT; + + typedef struct _HSE_RESPONSE_VECTOR { + DWORD dwFlags; + LPSTR pszStatus; + LPSTR pszHeaders; + DWORD nElementCount; + LPHSE_VECTOR_ELEMENT lpElementArray; + } HSE_RESPONSE_VECTOR,*LPHSE_RESPONSE_VECTOR; + + typedef HRESULT (WINAPI *PFN_HSE_CACHE_INVALIDATION_CALLBACK)(WCHAR *pszUrl); + +#include <wincrypt.h> + + typedef struct _CERT_CONTEXT_EX { + CERT_CONTEXT CertContext; + DWORD cbAllocated; + DWORD dwCertificateFlags; + } CERT_CONTEXT_EX; + + typedef struct _HSE_TRACE_INFO { + WINBOOL fTraceRequest; + BYTE TraceContextId[16]; + DWORD dwReserved1; + DWORD dwReserved2; + } HSE_TRACE_INFO,*LPHSE_TRACE_INFO; + +#define HSE_APP_FLAG_IN_PROCESS 0 +#define HSE_APP_FLAG_ISOLATED_OOP 1 +#define HSE_APP_FLAG_POOLED_OOP 2 + + WINBOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer); + DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *pECB); + WINBOOL WINAPI TerminateExtension(DWORD dwFlags); + + typedef WINBOOL (WINAPI *PFN_GETEXTENSIONVERSION)(HSE_VERSION_INFO *pVer); + typedef DWORD (WINAPI *PFN_HTTPEXTENSIONPROC)(EXTENSION_CONTROL_BLOCK *pECB); + typedef WINBOOL (WINAPI *PFN_TERMINATEEXTENSION)(DWORD dwFlags); + +#ifdef __cplusplus +} +#endif +#endif
