root/sapi/pi3web/pi3web_sapi.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _PI3WEB_SAPI_H_
   2 #define _PI3WEB_SAPI_H_
   3 
   4 #ifdef PHP_WIN32
   5 #       include <windows.h>
   6 #       ifdef PHP5PI3WEB_EXPORTS
   7 #               define MODULE_API __declspec(dllexport) 
   8 #       else
   9 #               define MODULE_API __declspec(dllimport) 
  10 #       endif
  11 #else
  12 #       if defined(__GNUC__) && __GNUC__ >= 4
  13 #               define MODULE_API __attribute__ ((visibility("default")))
  14 #       else
  15 #               define MODULE_API
  16 #       endif
  17 #       define far
  18 
  19         typedef int BOOL;
  20         typedef void far *LPVOID;
  21         typedef unsigned long DWORD;
  22         typedef DWORD far *LPDWORD;
  23         typedef char CHAR;
  24         typedef CHAR *LPSTR;
  25         typedef unsigned char BYTE;
  26         typedef BYTE far *LPBYTE;
  27 #endif
  28 
  29         typedef LPVOID HCONN;
  30 
  31 #ifdef __cplusplus
  32 extern "C" {
  33 #endif
  34 
  35 #define PHP_MODE_STANDARD  1
  36 #define PHP_MODE_HIGHLIGHT 2
  37 #define PHP_MODE_INDENT    3
  38 #define PHP_MODE_LINT      4
  39 
  40 //
  41 // passed to the procedure on a new request
  42 //
  43 typedef struct _CONTROL_BLOCK {
  44     DWORD     cbSize;                 // size of this struct.
  45     HCONN     ConnID;                 // Context number not to be modified!
  46     DWORD     dwHttpStatusCode;       // HTTP Status code
  47     CHAR      lpszLogData[80];        // null terminated log info
  48 
  49     LPSTR     lpszMethod;             // REQUEST_METHOD
  50     LPSTR     lpszQueryString;        // QUERY_STRING
  51     LPSTR     lpszPathInfo;           // PATH_INFO
  52     LPSTR     lpszPathTranslated;     // PATH_TRANSLATED
  53         LPSTR     lpszFileName;           // FileName to PHP3 physical file
  54         LPSTR     lpszUri;                        // The request URI
  55         LPSTR     lpszReq;                        // The whole HTTP request line
  56         LPSTR     lpszUser;                       // The authenticated user
  57         LPSTR     lpszPassword;           // The authenticated password
  58 
  59     DWORD     cbTotalBytes;           // Total bytes indicated from client
  60     DWORD     cbAvailable;            // Available number of bytes
  61     LPBYTE    lpbData;                // pointer to cbAvailable bytes
  62 
  63     LPSTR     lpszContentType;        // Content type of client data
  64         DWORD     dwBehavior;                     // PHP behavior (standard, highlight, intend
  65 
  66 
  67     LPVOID (* GetVariableNames) (HCONN      hConn);
  68 
  69     BOOL (* GetServerVariable) ( HCONN       hConn,
  70                                  LPSTR       lpszVariableName,
  71                                  LPVOID      lpvBuffer,
  72                                  LPDWORD     lpdwSize );
  73 
  74     BOOL (* WriteClient)  ( HCONN      hConn,
  75                             LPVOID     lpvBuffer,
  76                             LPDWORD    lpdwBytes,
  77                             DWORD      dwReserved );
  78 
  79     BOOL (* ReadClient)  ( HCONN      hConn,
  80                            LPVOID     lpvBuffer,
  81                            LPDWORD    lpdwSize );
  82 
  83     BOOL (* SendHeaderFunction)( HCONN      hConn,
  84                                  LPDWORD    lpdwSize,
  85                                  LPDWORD    lpdwDataType );
  86 
  87 } CONTROL_BLOCK, *LPCONTROL_BLOCK;
  88 
  89 MODULE_API DWORD PHP5_wrapper(LPCONTROL_BLOCK lpCB);
  90 MODULE_API BOOL PHP5_startup();
  91 MODULE_API BOOL PHP5_shutdown();
  92 
  93 // the following type declaration is for the server side
  94 typedef DWORD ( * PFN_WRAPPERFUNC )( CONTROL_BLOCK *pCB );
  95 
  96 
  97 
  98 #ifdef __cplusplus
  99 }
 100 #endif
 101 
 102 #endif  // end definition _PI3WEB_SAPI_H_

/* [<][>][^][v][top][bottom][index][help] */