home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 14 / hacker14.iso / programacao / cwin / c.exe / $INSTDIR / include / httpext.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-12-15  |  2.6 KB  |  91 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_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
  43. typedef    LPVOID HCONN;
  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    {
  49.     DWORD    cbSize;
  50.     DWORD    dwVersion;
  51.     HCONN    ConnID;
  52.     DWORD    dwHttpStatusCode;
  53.     CHAR    lpszLogData[HSE_LOG_BUFFER_LEN];
  54.     LPSTR    lpszMethod;
  55.     LPSTR    lpszQueryString;
  56.     LPSTR    lpszPathInfo;
  57.     LPSTR    lpszPathTranslated;
  58.     DWORD    cbTotalBytes;
  59.     DWORD    cbAvailable;
  60.     LPBYTE    lpbData;
  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;
  73.     PVOID pContext;
  74.     HANDLE hFile;
  75.     LPCSTR pszStatusCode;
  76.     DWORD BytesToWrite;
  77.     DWORD Offset;
  78.     PVOID pHead;
  79.     DWORD HeadLength;
  80.     PVOID pTail;
  81.     DWORD TailLength;
  82.     DWORD dwFlags;
  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);
  87. #ifdef __cplusplus
  88. }
  89. #endif
  90. #endif /* _HTTPEXT_H */
  91.