Sciter: F:/hsmile5/sdk/include/sciter-x-request.h Source File

Sciter  3.3.2.5
Sciter API
sciter-x-request.h
Go to the documentation of this file.
1 /*
2  * The Sciter Engine of Terra Informatica Software, Inc.
3  * http://sciter.com
4  *
5  * The code and information provided "as-is" without
6  * warranty of any kind, either expressed or implied.
7  *
8  * (C) Terra Informatica Software, Inc.
9  */
10 
11  /*
12  * Sciter's get resource request object - represents requests made by Element/View.request() functions.
13  *
14  */
15 
16 
17 #ifndef __sciter_request_h__
18 #define __sciter_request_h__
19 
20 #include "sciter-x-types.h"
21 
22  namespace html
23 {
24  struct request;
25 }
26 
27  typedef html::request* HREQUEST;
28 
29  enum REQUEST_RESULT
30 {
31   REQUEST_PANIC = -1, // e.g. not enough memory
32   REQUEST_OK = 0,
33   REQUEST_BAD_PARAM = 1, // bad parameter
34   REQUEST_FAILURE = 2, // operation failed, e.g. index out of bounds
35   REQUEST_NOTSUPPORTED = 3 // the platform does not support requested feature
36 };
37 
38  enum REQUEST_RQ_TYPE
39  {
40   RRT_GET = 1,
41   RRT_POST = 2,
42   RRT_PUT = 3,
43   RRT_DELETE = 4,
44 
45   RRT_FORCE_DWORD = 0xffffffff
46  };
47 
48  typedef enum SciterResourceType
49 {
50   RT_DATA_HTML = 0,
51   RT_DATA_IMAGE = 1,
52   RT_DATA_STYLE = 2,
53   RT_DATA_CURSOR = 3,
54   RT_DATA_SCRIPT = 4,
55   RT_DATA_RAW = 5,
56   RT_DATA_FONT,
57   RT_DATA_SOUND, // wav bytes
58   RT_DATA_FORCE_DWORD = 0xffffffff
59 } SciterResourceType;
60 
61  enum REQUEST_STATE
62  {
63   RS_PENDING = 0,
64   RS_SUCCESS = 1, // completed successfully
65   RS_FAILURE = 2, // completed with failure
66 
67   RS_FORCE_DWORD = 0xffffffff
68  };
69 
70  struct SciterRequestAPI
71 {
72  // a.k.a AddRef()
73  REQUEST_RESULT
74  SCFN(RequestUse)( HREQUEST rq );
75 
76  // a.k.a Release()
77  REQUEST_RESULT
78  SCFN(RequestUnUse)( HREQUEST rq );
79 
80  // get requested URL
81  REQUEST_RESULT
82  SCFN(RequestUrl)( HREQUEST rq, LPCSTR_RECEIVER* rcv, LPVOID rcv_param );
83 
84  // get real, content URL (after possible redirection)
85  REQUEST_RESULT
86  SCFN(RequestContentUrl)( HREQUEST rq, LPCSTR_RECEIVER* rcv, LPVOID rcv_param );
87 
88  // get requested data type
89  REQUEST_RESULT
90  SCFN(RequestGetRequestType)( HREQUEST rq, REQUEST_RQ_TYPE* pType );
91 
92  // get requested data type
93  REQUEST_RESULT
94  SCFN(RequestGetRequestedDataType)( HREQUEST rq, SciterResourceType* pData );
95 
96  // get received data type, string, mime type
97  REQUEST_RESULT
98  SCFN(RequestGetReceivedDataType)( HREQUEST rq, LPCSTR_RECEIVER* rcv, LPVOID rcv_param );
99 
100 
101  // get number of request parameters passed
102  REQUEST_RESULT
103  SCFN(RequestGetNumberOfParameters)( HREQUEST rq, UINT* pNumber );
104 
105  // get nth request parameter name
106  REQUEST_RESULT
107  SCFN(RequestGetNthParameterName)( HREQUEST rq, UINT n, LPCWSTR_RECEIVER* rcv, LPVOID rcv_param );
108 
109  // get nth request parameter value
110  REQUEST_RESULT
111  SCFN(RequestGetNthParameterValue)( HREQUEST rq, UINT n, LPCWSTR_RECEIVER* rcv, LPVOID rcv_param );
112 
113  // get request times , ended - started = milliseconds to get the requst
114  REQUEST_RESULT
115  SCFN(RequestGetTimes)( HREQUEST rq, UINT* pStarted, UINT* pEnded );
116 
117  // get number of request headers
118  REQUEST_RESULT
119  SCFN(RequestGetNumberOfRqHeaders)( HREQUEST rq, UINT* pNumber );
120 
121  // get nth request header name
122  REQUEST_RESULT
123  SCFN(RequestGetNthRqHeaderName)( HREQUEST rq, UINT n, LPCWSTR_RECEIVER* rcv, LPVOID rcv_param );
124 
125  // get nth request header value
126  REQUEST_RESULT
127  SCFN(RequestGetNthRqHeaderValue)( HREQUEST rq, UINT n, LPCWSTR_RECEIVER* rcv, LPVOID rcv_param );
128 
129  // get number of response headers
130  REQUEST_RESULT
131  SCFN(RequestGetNumberOfRspHeaders)( HREQUEST rq, UINT* pNumber );
132 
133  // get nth response header name
134  REQUEST_RESULT
135  SCFN(RequestGetNthRspHeaderName)( HREQUEST rq, UINT n, LPCWSTR_RECEIVER* rcv, LPVOID rcv_param );
136 
137  // get nth response header value
138  REQUEST_RESULT
139  SCFN(RequestGetNthRspHeaderValue)( HREQUEST rq, UINT n, LPCWSTR_RECEIVER* rcv, LPVOID rcv_param );
140 
141  // get completion status (CompletionStatus - http response code : 200, 404, etc.)
142  REQUEST_RESULT
143  SCFN(RequestGetCompletionStatus)( HREQUEST rq, REQUEST_STATE* pState, UINT* pCompletionStatus );
144 
145  // get proxy host
146  REQUEST_RESULT
147  SCFN(RequestGetProxyHost)( HREQUEST rq, LPCSTR_RECEIVER* rcv, LPVOID rcv_param );
148 
149  // get proxy port
150  REQUEST_RESULT
151  SCFN(RequestGetProxyPort)( HREQUEST rq, UINT* pPort );
152 
153  // mark reequest as complete with status and data
154  REQUEST_RESULT
155  SCFN(RequestSetSucceeded)( HREQUEST rq, UINT status, LPCBYTE dataOrNull, UINT dataLength);
156 
157  // mark reequest as complete with failure and optional data
158  REQUEST_RESULT
159  SCFN(RequestSetFailed)( HREQUEST rq, UINT status, LPCBYTE dataOrNull, UINT dataLength );
160 
161  // append received data chunk
162  REQUEST_RESULT
163  SCFN(RequestAppendDataChunk)( HREQUEST rq, LPCBYTE data, UINT dataLength );
164 
165  // set request header (single item)
166  REQUEST_RESULT
167  SCFN(RequestSetRqHeader)( HREQUEST rq, LPCWSTR name, LPCWSTR value );
168 
169  // set respone header (single item)
170  REQUEST_RESULT
171  SCFN(RequestSetRspHeader)( HREQUEST rq, LPCWSTR name, LPCWSTR value );
172 
173  // get received (so far) data
174  REQUEST_RESULT
175  SCFN(RequestGetData)( HREQUEST rq, LPCBYTE_RECEIVER* rcv, LPVOID rcv_param );
176 
177 };
178 
179  typedef struct SciterRequestAPI* LPSciterRequestAPI;
180 
181 #endif
VOID SC_CALLBACK LPCWSTR_RECEIVER(LPCWSTR str, UINT str_length, LPVOID param)
html::request * HREQUEST
REQUEST_RESULT
const BYTE * LPCBYTE
struct SciterRequestAPI * LPSciterRequestAPI
REQUEST_RQ_TYPE
VOID SC_CALLBACK LPCSTR_RECEIVER(LPCSTR str, UINT str_length, LPVOID param)
SciterResourceType
REQUEST_STATE
VOID SC_CALLBACK LPCBYTE_RECEIVER(LPCBYTE str, UINT num_bytes, LPVOID param)

AltStyle によって変換されたページ (->オリジナル) /