1#![allow(non_camel_case_types, non_snake_case)]
9
10use capi::sctypes::{UINT, LPVOID, LPCBYTE, LPCSTR, LPCWSTR};
11use capi::scdef::{LPCSTR_RECEIVER, LPCWSTR_RECEIVER, LPCBYTE_RECEIVER};
12pub use capi::scdef::RESOURCE_TYPE;
13
14MAKE_HANDLE!(#[doc = "Request native handle."] HREQUEST, _HREQUEST);
15
16#[repr(C)]
17#[derive(Debug, PartialEq)]
18pub enum REQUEST_RESULT {
20 PANIC = -1,
22 OK = 0,
24 BAD_PARAM = 1,
26 FAILURE = 2,
28 NOTSUPPORTED = 3,
30}
31
32impl std::error::Error for REQUEST_RESULT {}
33
34impl std::fmt::Display for REQUEST_RESULT {
35 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
36 write!(f, "{:?}", self)
37 }
38}
39
40
41#[repr(C)]
42#[derive(Debug, PartialEq)]
43pub enum REQUEST_METHOD {
45 GET = 1,
49 POST = 2,
53 PUT = 3,
57 DELETE = 4,
59}
60
61#[repr(C)]
62#[derive(Debug, PartialEq)]
63pub enum REQUEST_TYPE {
65 AsyncGet,
67 AsyncPost,
69 Get,
71 Post,
73}
74
75
76#[repr(C)]
77#[derive(Debug, PartialEq)]
78pub enum REQUEST_STATE {
80 PENDING = 0,
82 SUCCESS = 1,
84 FAILURE = 2,
86}
87
88#[repr(C)]
89#[derive(Debug)]
90pub struct REQUEST_PARAM {
91 pub name: LPCWSTR,
92 pub value: LPCWSTR,
93}
94
95
96#[repr(C)]
97#[allow(missing_docs)]
98pub struct SciterRequestAPI
99{
100 pub RequestUse: extern "system" fn (rq: HREQUEST) -> REQUEST_RESULT,
102
103 pub RequestUnUse: extern "system" fn (rq: HREQUEST) -> REQUEST_RESULT,
105
106 pub RequestUrl: extern "system" fn (rq: HREQUEST, rcv: LPCSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
108
109 pub RequestContentUrl: extern "system" fn (rq: HREQUEST, rcv: LPCSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
111
112 pub RequestGetRequestType: extern "system" fn (rq: HREQUEST, pType: &mut REQUEST_METHOD) -> REQUEST_RESULT,
114
115 pub RequestGetRequestedDataType: extern "system" fn (rq: HREQUEST, pData: &mut RESOURCE_TYPE) -> REQUEST_RESULT,
117
118 pub RequestGetReceivedDataType: extern "system" fn (rq: HREQUEST, rcv: LPCSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
120
121
122 pub RequestGetNumberOfParameters: extern "system" fn (rq: HREQUEST, pNumber: &mut UINT) -> REQUEST_RESULT,
124
125 pub RequestGetNthParameterName: extern "system" fn (rq: HREQUEST, n: UINT, rcv: LPCWSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
127
128 pub RequestGetNthParameterValue: extern "system" fn (rq: HREQUEST, n: UINT, rcv: LPCWSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
130
131 pub RequestGetTimes: extern "system" fn (rq: HREQUEST, pStarted: &mut UINT, pEnded: &mut UINT) -> REQUEST_RESULT,
133
134 pub RequestGetNumberOfRqHeaders: extern "system" fn (rq: HREQUEST, pNumber: &mut UINT) -> REQUEST_RESULT,
136
137 pub RequestGetNthRqHeaderName: extern "system" fn (rq: HREQUEST, n: UINT, rcv: LPCWSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
139
140 pub RequestGetNthRqHeaderValue: extern "system" fn (rq: HREQUEST, n: UINT, rcv: LPCWSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
142
143 pub RequestGetNumberOfRspHeaders: extern "system" fn (rq: HREQUEST, pNumber: &mut UINT) -> REQUEST_RESULT,
145
146 pub RequestGetNthRspHeaderName: extern "system" fn (rq: HREQUEST, n: UINT, rcv: LPCWSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
148
149 pub RequestGetNthRspHeaderValue: extern "system" fn (rq: HREQUEST, n: UINT, rcv: LPCWSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
151
152 pub RequestGetCompletionStatus: extern "system" fn (rq: HREQUEST, pState: &mut REQUEST_STATE, pCompletionStatus: &mut UINT) -> REQUEST_RESULT,
154
155 pub RequestGetProxyHost: extern "system" fn (rq: HREQUEST, rcv: LPCSTR_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
157
158 pub RequestGetProxyPort: extern "system" fn (rq: HREQUEST, pPort: &mut UINT) -> REQUEST_RESULT,
160
161 pub RequestSetSucceeded: extern "system" fn (rq: HREQUEST, status: UINT, dataOrNull: LPCBYTE, dataLength: UINT) -> REQUEST_RESULT,
163
164 pub RequestSetFailed: extern "system" fn (rq: HREQUEST, status: UINT, dataOrNull: LPCBYTE, dataLength: UINT) -> REQUEST_RESULT,
166
167 pub RequestAppendDataChunk: extern "system" fn (rq: HREQUEST, data: LPCBYTE, dataLength: UINT) -> REQUEST_RESULT,
169
170 pub RequestSetRqHeader: extern "system" fn (rq: HREQUEST, name: LPCWSTR, value: LPCWSTR) -> REQUEST_RESULT,
172
173 pub RequestSetRspHeader: extern "system" fn (rq: HREQUEST, name: LPCWSTR, value: LPCWSTR) -> REQUEST_RESULT,
175
176 pub RequestSetReceivedDataType: extern "system" fn (rq: HREQUEST, _type: LPCSTR) -> REQUEST_RESULT,
178
179 pub RequestSetReceivedDataEncoding: extern "system" fn (rq: HREQUEST, encoding: LPCSTR) -> REQUEST_RESULT,
181
182 pub RequestGetData: extern "system" fn (rq: HREQUEST, rcv: LPCBYTE_RECEIVER, rcv_param: LPVOID) -> REQUEST_RESULT,
184}