home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / httpext.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  3KB  |  99 lines

  1. /*
  2.        httpext.h - Header for ISAPI extensions.
  3.  
  4.        This file is part of a free library for the Win32 API.
  5.  
  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.
  9. */
  10.  
  11. #ifndef _HTTPEXT_H
  12. #define _HTTPEXT_H
  13. #if __GNUC__ >=3
  14. #pragma GCC system_header
  15. #endif
  16.  
  17. #include <windows.h>
  18.  
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22.  
  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_SEND_RESPONSE_HEADER_EX    1016
  37. #define    HSE_REQ_END_RESERVED    1000
  38. #define    HSE_TERM_ADVISORY_UNLOAD    0x00000001
  39. #define    HSE_TERM_MUST_UNLOAD    0x00000002
  40. #define    HSE_IO_SYNC    0x00000001
  41. #define    HSE_IO_ASYNC    0x00000002
  42. #define    HSE_IO_DISCONNECT_AFTER_SEND    0x00000004
  43. #define    HSE_IO_SEND_HEADERS    0x00000008
  44. typedef    LPVOID HCONN;
  45. typedef    struct _HSE_VERSION_INFO {
  46.     DWORD    dwExtensionVersion;
  47.     CHAR    lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN];
  48. } HSE_VERSION_INFO, *LPHSE_VERSION_INFO;
  49. typedef    struct _EXTENSION_CONTROL_BLOCK    {
  50.     DWORD    cbSize;
  51.     DWORD    dwVersion;
  52.     HCONN    ConnID;
  53.     DWORD    dwHttpStatusCode;
  54.     CHAR    lpszLogData[HSE_LOG_BUFFER_LEN];
  55.     LPSTR    lpszMethod;
  56.     LPSTR    lpszQueryString;
  57.     LPSTR    lpszPathInfo;
  58.     LPSTR    lpszPathTranslated;
  59.     DWORD    cbTotalBytes;
  60.     DWORD    cbAvailable;
  61.     LPBYTE    lpbData;
  62.     LPSTR    lpszContentType;
  63.     BOOL    (PASCAL    *GetServerVariable)(HCONN,LPSTR,LPVOID,LPDWORD);
  64.     BOOL    (PASCAL    *WriteClient)(HCONN,LPVOID,LPDWORD,DWORD);
  65.     BOOL    (PASCAL    *ReadClient)(HCONN,LPVOID,LPDWORD);
  66.     BOOL    (PASCAL    *ServerSupportFunction)(HCONN,DWORD,LPVOID,LPDWORD,LPDWORD);
  67. } EXTENSION_CONTROL_BLOCK, *LPEXTENSION_CONTROL_BLOCK;
  68. typedef    BOOL    (PASCAL    *PFN_GETEXTENSIONVERSION)(HSE_VERSION_INFO*);
  69. typedef    DWORD    (PASCAL    *PFN_HTTPEXTENSIONPROC)(EXTENSION_CONTROL_BLOCK*);
  70. typedef    BOOL    (PASCAL    *PFN_TERMINATEEXTENSION)(DWORD);
  71. typedef    VOID    (PASCAL    *PFN_HSE_IO_COMPLETION)(EXTENSION_CONTROL_BLOCK*,PVOID,DWORD,DWORD);
  72. typedef struct _HSE_TF_INFO {
  73.     PFN_HSE_IO_COMPLETION pfnHseIO;
  74.     PVOID pContext;
  75.     HANDLE hFile;
  76.     LPCSTR pszStatusCode;
  77.     DWORD BytesToWrite;
  78.     DWORD Offset;
  79.     PVOID pHead;
  80.     DWORD HeadLength;
  81.     PVOID pTail;
  82.     DWORD TailLength;
  83.     DWORD dwFlags;
  84. } HSE_TF_INFO, *LPHSE_TF_INFO;
  85. typedef struct _HSE_SEND_HEADER_EX_INFO {
  86.     LPCSTR pszStatus;
  87.     LPCSTR pszHeader;
  88.     DWORD cchStatus;
  89.     DWORD cchHeader;
  90.     BOOL fKeepConn;
  91. } HSE_SEND_HEADER_EX_INFO, * LPHSE_SEND_HEADER_EX_INF;
  92. BOOL    PASCAL    GetExtensionVersion(HSE_VERSION_INFO*);
  93. DWORD    PASCAL    HttpExtensionProc(EXTENSION_CONTROL_BLOCK*);
  94. BOOL    PASCAL    TerminateExtension(DWORD);
  95. #ifdef __cplusplus
  96. }
  97. #endif
  98. #endif /* _HTTPEXT_H */
  99.