quickwin 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/README.en.md +3 -0
  2. package/README.md +2 -0
  3. package/lib/abort.d.ts +21 -0
  4. package/lib/assert.d.ts +2 -0
  5. package/lib/bitmap.d.ts +7 -0
  6. package/lib/cache-utils.d.ts +6 -0
  7. package/lib/certs.d.ts +1 -0
  8. package/lib/dpi.d.ts +9 -0
  9. package/lib/dumpRects.d.ts +2 -0
  10. package/lib/exec-log.d.ts +23 -0
  11. package/lib/fetch.d.ts +4 -0
  12. package/lib/ffi/bind.d.ts +70 -0
  13. package/lib/ffi/ctype.d.ts +117 -0
  14. package/lib/ffi/index.d.ts +2 -0
  15. package/lib/ffi/struct.d.ts +174 -0
  16. package/lib/http-common.d.ts +143 -0
  17. package/lib/http-server.d.ts +59 -0
  18. package/lib/polyfill.d.ts +22 -0
  19. package/lib/react-qw/components/Button.d.ts +9 -0
  20. package/lib/react-qw/components/CheckBox.d.ts +11 -0
  21. package/lib/react-qw/components/ComboBox.d.ts +11 -0
  22. package/lib/react-qw/components/DateTimePicker.d.ts +15 -0
  23. package/lib/react-qw/components/Input.d.ts +15 -0
  24. package/lib/react-qw/components/Link.d.ts +12 -0
  25. package/lib/react-qw/components/ListBox.d.ts +13 -0
  26. package/lib/react-qw/components/ListView.d.ts +37 -0
  27. package/lib/react-qw/components/PathPicker.d.ts +23 -0
  28. package/lib/react-qw/components/ProgressBar.d.ts +9 -0
  29. package/lib/react-qw/components/RadioButton.d.ts +11 -0
  30. package/lib/react-qw/components/ScrollView.d.ts +9 -0
  31. package/lib/react-qw/components/Slider.d.ts +12 -0
  32. package/lib/react-qw/components/Tab.d.ts +14 -0
  33. package/lib/react-qw/components/Tooltip.d.ts +7 -0
  34. package/lib/react-qw/components/TreeView.d.ts +18 -0
  35. package/lib/react-qw/components/index.d.ts +16 -0
  36. package/lib/react-qw/index.d.ts +24 -0
  37. package/lib/react-qw/layout.d.ts +29 -0
  38. package/lib/react-qw/nmhdr.d.ts +1 -0
  39. package/lib/react-qw/props.d.ts +2 -0
  40. package/lib/react-qw/reconciler.d.ts +21 -0
  41. package/lib/stream.d.ts +20 -0
  42. package/lib/text-codec.d.ts +39 -0
  43. package/lib/text-measure.d.ts +14 -0
  44. package/lib/url.d.ts +54 -0
  45. package/lib/websocket.d.ts +73 -0
  46. package/lib/windows/{advapi32.ts → advapi32.d.ts} +6 -21
  47. package/lib/windows/comctl32.d.ts +14 -0
  48. package/lib/windows/comdlg32.d.ts +4 -0
  49. package/lib/windows/{gdi32.ts → gdi32.d.ts} +161 -98
  50. package/lib/windows/{kernel32.ts → kernel32.d.ts} +138 -115
  51. package/lib/windows/{msimg32.ts → msimg32.d.ts} +11 -14
  52. package/lib/windows/ntdll.d.ts +5 -0
  53. package/lib/windows/ole32.d.ts +3 -0
  54. package/lib/windows/{psapi.ts → psapi.d.ts} +9 -18
  55. package/lib/windows/{shell32.ts → shell32.d.ts} +25 -24
  56. package/lib/windows/structs.d.ts +3141 -0
  57. package/lib/windows/{user32.ts → user32.d.ts} +196 -193
  58. package/lib/windows/version.d.ts +27 -0
  59. package/lib/windows/{winspool.ts → winspool.d.ts} +18 -32
  60. package/package.json +15 -8
  61. package/qwin-nowasm-x86.exe +0 -0
  62. package/qwin-nowasm.exe +0 -0
  63. package/qwin-x86.exe +0 -0
  64. package/qwin.exe +0 -0
  65. package/examples/PdfCanvas.js +0 -38
  66. package/examples/PdfCanvas.tsx +0 -54
  67. package/examples/execd/main.js +0 -23379
  68. package/examples/execd/tray.js +0 -192
  69. package/examples/execd/worker.js +0 -122
  70. package/examples/pdf_preview2.js +0 -398
  71. package/examples/pdf_preview2.ts +0 -353
  72. package/examples/pdf_viewer.js +0 -22515
  73. package/examples/pdf_viewer.tsx +0 -228
  74. package/examples/test_gallery.js +0 -18692
  75. package/examples/test_gallery.tsx +0 -291
  76. package/examples/test_react_lazy.js +0 -18560
  77. package/examples/test_react_lazy.tsx +0 -65
  78. package/examples/test_react_listbox.js +0 -18562
  79. package/examples/test_react_listbox.tsx +0 -73
  80. package/examples/test_root_window.js +0 -18532
  81. package/examples/test_root_window.tsx +0 -41
  82. package/examples/test_tab.js +0 -18563
  83. package/examples/test_tab.tsx +0 -77
  84. package/examples/tray_demo.js +0 -86
  85. package/examples/tray_demo.tsx +0 -89
  86. package/lib/abort.ts +0 -69
  87. package/lib/assert.ts +0 -7
  88. package/lib/bitmap.ts +0 -39
  89. package/lib/cache-utils.ts +0 -40
  90. package/lib/certs.ts +0 -258
  91. package/lib/dpi.ts +0 -31
  92. package/lib/dumpRects.ts +0 -34
  93. package/lib/exec-log.ts +0 -30
  94. package/lib/fetch.ts +0 -589
  95. package/lib/ffi/bind.ts +0 -540
  96. package/lib/ffi/ctype.ts +0 -371
  97. package/lib/ffi/index.ts +0 -6
  98. package/lib/ffi/struct.ts +0 -780
  99. package/lib/http-common.ts +0 -441
  100. package/lib/http-server.ts +0 -604
  101. package/lib/polyfill.ts +0 -171
  102. package/lib/react-qw/components/index.ts +0 -17
  103. package/lib/react-qw/index.ts +0 -96
  104. package/lib/react-qw/layout.ts +0 -111
  105. package/lib/react-qw/nmhdr.ts +0 -7
  106. package/lib/react-qw/props.ts +0 -41
  107. package/lib/react-qw/reconciler.ts +0 -379
  108. package/lib/stream.ts +0 -22
  109. package/lib/text-codec.ts +0 -171
  110. package/lib/text-measure.ts +0 -44
  111. package/lib/url.ts +0 -201
  112. package/lib/websocket.ts +0 -600
  113. package/lib/windows/comctl32.ts +0 -20
  114. package/lib/windows/comdlg32.ts +0 -10
  115. package/lib/windows/ntdll.ts +0 -11
  116. package/lib/windows/ole32.ts +0 -9
  117. package/lib/windows/structs.ts +0 -807
  118. package/lib/windows/version.ts +0 -35
  119. package/test/add.wasm +0 -0
  120. package/test/bench_ffi_callraw.js +0 -235
  121. package/test/bench_ffi_callraw.ts +0 -235
  122. package/test/bench_ffi_overhead.js +0 -139
  123. package/test/bench_ffi_overhead.ts +0 -141
  124. package/test/bench_sendmessage.js +0 -104
  125. package/test/bench_sendmessage.ts +0 -100
  126. package/test/bench_sendmessage_nonnull.js +0 -187
  127. package/test/bench_sendmessage_nonnull.ts +0 -188
  128. package/test/complex.wasm +0 -0
  129. package/test/complex_imports.wasm +0 -0
  130. package/test/debug/http_server_e2e.js +0 -31
  131. package/test/debug/minwasm.js +0 -52
  132. package/test/debug/mupdf_debug.js +0 -86
  133. package/test/debug/wasm.js +0 -122
  134. package/test/debug/wasm_export_debug.js +0 -54
  135. package/test/debug/wasm_names.js +0 -36
  136. package/test/example.pdf +0 -0
  137. package/test/global_imports.wasm +0 -0
  138. package/test/import_func.wasm +0 -0
  139. package/test/imports.wasm +0 -0
  140. package/test/mupdf-cdn.js +0 -40
  141. package/test/mupdf-cdn.ts +0 -43
  142. package/test/run.js +0 -111
  143. package/test/run.ts +0 -116
  144. package/test/sjlj.wasm +0 -0
  145. package/test/test_basic.js +0 -7
  146. package/test/test_basic.ts +0 -9
  147. package/test/test_basic_fetch.js +0 -63
  148. package/test/test_basic_fetch.ts +0 -59
  149. package/test/test_brotli.js +0 -48
  150. package/test/test_brotli.ts +0 -52
  151. package/test/test_fetch_cache.js +0 -169
  152. package/test/test_fetch_cache.ts +0 -187
  153. package/test/test_ffi.js +0 -157
  154. package/test/test_ffi.ts +0 -170
  155. package/test/test_ffi_abi.js +0 -290
  156. package/test/test_ffi_abi.ts +0 -274
  157. package/test/test_ffi_array.js +0 -116
  158. package/test/test_ffi_array.ts +0 -141
  159. package/test/test_ffi_bind.js +0 -656
  160. package/test/test_ffi_bind.ts +0 -670
  161. package/test/test_ffi_struct.js +0 -779
  162. package/test/test_ffi_struct.ts +0 -828
  163. package/test/test_ffi_struct_layout.js +0 -495
  164. package/test/test_ffi_struct_layout.ts +0 -543
  165. package/test/test_ffi_user32.js +0 -103
  166. package/test/test_ffi_user32.ts +0 -113
  167. package/test/test_ffi_windows.js +0 -172
  168. package/test/test_ffi_windows.ts +0 -187
  169. package/test/test_files.js +0 -102
  170. package/test/test_files.ts +0 -121
  171. package/test/test_frame_encoding.js +0 -128
  172. package/test/test_frame_encoding.ts +0 -132
  173. package/test/test_gdi_draw.js +0 -681
  174. package/test/test_gdi_draw.ts +0 -725
  175. package/test/test_helper.js +0 -91
  176. package/test/test_helper.ts +0 -88
  177. package/test/test_http_import.js +0 -96
  178. package/test/test_http_import.ts +0 -93
  179. package/test/test_http_server.js +0 -214
  180. package/test/test_http_server.ts +0 -211
  181. package/test/test_import_dir.js +0 -4
  182. package/test/test_import_dir.ts +0 -5
  183. package/test/test_ipv6.js +0 -134
  184. package/test/test_ipv6.ts +0 -130
  185. package/test/test_jsx.js +0 -1314
  186. package/test/test_meta_url.js +0 -3
  187. package/test/test_meta_url.ts +0 -4
  188. package/test/test_mupdf_render.js +0 -51
  189. package/test/test_mupdf_render.ts +0 -55
  190. package/test/test_mupdf_twice.js +0 -62
  191. package/test/test_mupdf_twice.ts +0 -65
  192. package/test/test_mupdf_wasm.js +0 -39
  193. package/test/test_mupdf_wasm.ts +0 -32
  194. package/test/test_net_event.js +0 -57
  195. package/test/test_net_event.ts +0 -56
  196. package/test/test_net_fetch.js +0 -384
  197. package/test/test_net_fetch.ts +0 -373
  198. package/test/test_net_websocket.js +0 -180
  199. package/test/test_net_websocket.ts +0 -164
  200. package/test/test_polyfill.js +0 -144
  201. package/test/test_polyfill.ts +0 -159
  202. package/test/test_printer.js +0 -137
  203. package/test/test_printer.ts +0 -148
  204. package/test/test_proc.js +0 -141
  205. package/test/test_proc.ts +0 -163
  206. package/test/test_react_complex.js +0 -18678
  207. package/test/test_react_counter.js +0 -18555
  208. package/test/test_react_flex.js +0 -18871
  209. package/test/test_react_hidden.js +0 -18560
  210. package/test/test_react_listview_link.js +0 -18590
  211. package/test/test_react_notify.js +0 -18797
  212. package/test/test_react_render.js +0 -18550
  213. package/test/test_registry.js +0 -74
  214. package/test/test_registry.ts +0 -95
  215. package/test/test_sysinfo.js +0 -122
  216. package/test/test_sysinfo.ts +0 -141
  217. package/test/test_url.js +0 -173
  218. package/test/test_url.ts +0 -183
  219. package/test/test_wasm_basic.js +0 -85
  220. package/test/test_wasm_basic.ts +0 -73
  221. package/test/test_wasm_import_global.js +0 -41
  222. package/test/test_wasm_import_global.ts +0 -45
  223. package/test/test_wasm_sjlj.js +0 -145
  224. package/test/test_wasm_sjlj.ts +0 -125
  225. package/test/test_wasm_types.js +0 -97
  226. package/test/test_wasm_types.ts +0 -124
  227. package/test/test_wolfssl_read.js +0 -203
  228. package/test/test_wolfssl_read.ts +0 -184
  229. package/test/test_worker.js +0 -21
  230. package/test/test_worker.ts +0 -24
  231. package/test/test_worker_concurrent.js +0 -45
  232. package/test/test_worker_concurrent.ts +0 -56
  233. package/test/test_worker_data_url.js +0 -46
  234. package/test/test_worker_data_url.ts +0 -51
  235. package/test/test_worker_fetch.js +0 -26
  236. package/test/test_worker_fetch.ts +0 -27
  237. package/test/test_worker_net.js +0 -69
  238. package/test/test_worker_net.ts +0 -66
  239. package/test/test_worker_wasm_concurrent.js +0 -44
  240. package/test/test_worker_wasm_concurrent.ts +0 -45
  241. package/test/types.wasm +0 -0
  242. package/test/worker_fetch.js +0 -13
  243. package/test/worker_fetch.ts +0 -13
  244. package/test/worker_helper.js +0 -1
  245. package/test/worker_helper.ts +0 -1
  246. package/test/worker_http.js +0 -18
  247. package/test/worker_http.ts +0 -20
  248. package/test/worker_import_lib.js +0 -12
  249. package/test/worker_import_lib.ts +0 -13
  250. package/test/worker_module.js +0 -16
  251. package/test/worker_module.ts +0 -17
  252. package/test/worker_wasm_concurrent.js +0 -22
  253. package/test/worker_wasm_concurrent.ts +0 -22
@@ -0,0 +1,27 @@
1
+ /** 取文件版本资源大小
2
+ * @returns 字节数(0 = 文件无版本资源)
3
+ * @param args_0 lptstrFilename 文件路径(禁空)
4
+ * @param args_1 lpdwHandle 出参槽(Info 步的入参句柄,MSDN 恒 0 但仍须传),
5
+ * PtrArrayBuffer(4) + Uint32Array 读回 */
6
+ export declare const GetFileVersionInfoSize: (args_0: string | (number & {
7
+ readonly ptrBrand: "WCHAR";
8
+ }), args_1: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
9
+ /** 读版本资源进缓冲
10
+ * @returns 成功 → 非 0
11
+ * @param args_0 lptstrFilename 文件路径(禁空)
12
+ * @param args_1 dwHandle Size 步读回的句柄(恒 0)
13
+ * @param args_2 dwLen 缓冲字节数(= Size 返回值)
14
+ * @param args_3 lpData 接收缓冲(PtrArrayBuffer(dwLen)) */
15
+ export declare const GetFileVersionInfo: (args_0: string | (number & {
16
+ readonly ptrBrand: "WCHAR";
17
+ }), args_1: number, args_2: number, args_3: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
18
+ /** 在版本资源缓冲内查询子块
19
+ * @returns 成功 → 非 0
20
+ * @param args_0 pBlock Info 步的资源缓冲(PtrArrayBuffer 直传)
21
+ * @param args_1 lpszSubBlock 子块路径(禁空):'\\' = 根块 VS_FIXEDFILEINFO、
22
+ * '\\StringFileInfo\\040904B0\\FileVersion' 等字符串表项
23
+ * @param args_2 lplpBuffer 出参槽(块内偏移指针写回),PtrArrayBuffer(8)
24
+ * @param args_3 puLen 出参槽(块字节数,VS_FIXEDFILEINFO = 52),PtrArrayBuffer(4) */
25
+ export declare const VerQueryValue: (args_0: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_1: string | (number & {
26
+ readonly ptrBrand: "WCHAR";
27
+ }), args_2: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_3: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
@@ -1,19 +1,3 @@
1
- // winspool.drv 绑定(打印后台处理:枚举 / 能力查询 / 原始作业链;品牌约定见
2
- // lib/windows/user32.ts 头注释):
3
- // - 打印机句柄(OpenPrinter 的 HPRINTER* 出参槽写回)位宽无关:出参槽 = <BYTE>ptr
4
- // 收 PtrArrayBuffer(8) + readPtr 读回 number,作业链句柄位 <>ptr 收宽(批 5 HKey 同型)
5
- // - 结构位按方向分流(结构定义见 ./structs.ts):DOC_INFO_1W 纯入参位注册 encoder →
6
- // 对象直传;PRINTER_INFO_2W 出参数组不注册 → structArray(PRINTER_INFO_2W).decode
7
- // (buf, count) 读回(缓冲尾部含字符串,须显式 count),指针字段跟进读字符串
8
- // - 枚举标注:DeviceCap 是单选查询位标枚举;PrinterEnum 是 LOCAL|CONNECTIONS 可组合
9
- // flags → 裸 u32 + JSDoc(组合 OR 结果不是枚举成员,位标枚举反而传不进)
10
- import { bind, type CodecMap } from '../ffi/bind.js'
11
- import { DOC_INFO_1W } from './structs.js'
12
-
13
- // dll 名部分应用(工厂转调保泛型 infer,见 lib/windows/user32.ts 头注释)
14
- const b = <const S extends string, const LE extends CodecMap = {}>(name: string, sig: S, encoders?: LE) =>
15
- bind('winspool.drv', name, sig, encoders)
16
-
17
1
  /** 枚举打印队列(Level=2 → PRINTER_INFO_2W 数组);两段式:先
18
2
  * NULL+cbBuf 0 拿 pcbNeeded,再按需分配缓冲重调
19
3
  * @returns 成功 → 非 0
@@ -25,15 +9,12 @@ const b = <const S extends string, const LE extends CodecMap = {}>(name: string,
25
9
  * @param args_4 cbBuf 缓冲字节数
26
10
  * @param args_5 pcbNeeded 出参槽(需求字节数)PtrArrayBuffer(4)
27
11
  * @param args_6 pcReturned 出参槽(返回条数)PtrArrayBuffer(4) */
28
- export const EnumPrinters = /*@__PURE__*/ b('EnumPrintersW',
29
- 'u32 <WCHAR>ptr u32 <BYTE>ptr u32 <BYTE>ptr <BYTE>ptr -> i32')
30
-
12
+ export declare const EnumPrinters: (args_0: number, args_1: string | import("../ffi/ctype.js").MaybePtr<"WCHAR">, args_2: number, args_3: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_4: number, args_5: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_6: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
31
13
  /** 取默认打印机名
32
14
  * @returns 成功 → 非 0,0 = 失败(缓冲不足时 pcchBuffer 带回所需长度)
33
15
  * @param args_0 pszBuffer 出参缓冲,WCHAR.alloc(n)、WCHAR.decode 读回
34
16
  * @param args_1 pcchBuffer 出入长度槽(入 = 缓冲 WCHAR 容量,出 = 实际长度),PtrArrayBuffer(4) */
35
- export const GetDefaultPrinter = /*@__PURE__*/ b('GetDefaultPrinterW', '<BYTE>ptr <BYTE>ptr -> i32')
36
-
17
+ export declare const GetDefaultPrinter: (args_0: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_1: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
37
18
  /** 查设备能力;nCapability 单选 DeviceCap.*
38
19
  * @returns 返回值随能力(数值能力 = 数值,
39
20
  * -1 = 失败)
@@ -42,39 +23,44 @@ export const GetDefaultPrinter = /*@__PURE__*/ b('GetDefaultPrinterW', '<BYTE>pt
42
23
  * @param args_2 nCapability 能力码(DeviceCap.HORZRES 等单选)
43
24
  * @param args_3 pOutput 字符串列表型能力的缓冲;数值型查询传 NULL
44
25
  * @param args_4 pDevmode DEVMODE,传 NULL */
45
- export const DeviceCapabilities = /*@__PURE__*/ b('DeviceCapabilitiesW',
46
- '<WCHAR>ptr! <WCHAR>ptr u32@DeviceCap <BYTE>ptr <>ptr -> i32')
47
-
26
+ export declare const DeviceCapabilities: (args_0: string | (number & {
27
+ readonly ptrBrand: "WCHAR";
28
+ }), args_1: string | import("../ffi/ctype.js").MaybePtr<"WCHAR">, args_2: import("../../constants.js").DeviceCap, args_3: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_4: import("../ffi/ctype.js").MaybePtr<"">) => number;
48
29
  /** 打开打印机对象(不产生打印作业)
49
30
  * @returns 成功 → 非 0,hPrinter 写回
50
31
  * @param args_0 pPrinterName 打印机名(禁空)
51
32
  * @param args_1 phPrinter 出参槽(句柄写回),PtrArrayBuffer(8) + readPtr 读回
52
33
  * @param args_2 pDefault 默认值(Datatype/DevMode/DesiredAccess),传 NULL 全默认 */
53
- export const OpenPrinter = /*@__PURE__*/ b('OpenPrinterW', '<WCHAR>ptr! <BYTE>ptr <>ptr -> i32')
34
+ export declare const OpenPrinter: (args_0: string | (number & {
35
+ readonly ptrBrand: "WCHAR";
36
+ }), args_1: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_2: import("../ffi/ctype.js").MaybePtr<"">) => number;
54
37
  /** 关闭打印机句柄
55
38
  * @returns 成功 → 非 0 */
56
- export const ClosePrinter = /*@__PURE__*/ b('ClosePrinter', '<>ptr -> i32')
39
+ export declare const ClosePrinter: (args_0: import("../ffi/ctype.js").MaybePtr<"">) => number;
57
40
  /** 起打印作业
58
41
  * @returns 作业 id(0 = 失败)
59
42
  * @param args_0 hPrinter 打印机句柄
60
43
  * @param args_1 dwLevel 固定 1(DOC_INFO_1W)
61
44
  * @param args_2 pDocInfo DOC_INFO_1W 对象(指针字段收裸地址 number:WCHAR.encode(s).ptr,
62
45
  * PAB 须在调用返回前保持引用) */
63
- export const StartDocPrinter = /*@__PURE__*/ b('StartDocPrinterW', '<>ptr u32 <DOC_INFO_1W>ptr -> u32',
64
- { DOC_INFO_1W })
46
+ export declare const StartDocPrinter: (args_0: import("../ffi/ctype.js").MaybePtr<"">, args_1: number, args_2: {
47
+ pDatatype?: import("../ffi/ctype.js").MaybePtr<""> | undefined;
48
+ pDocName?: import("../ffi/ctype.js").MaybePtr<""> | undefined;
49
+ pOutputFile?: import("../ffi/ctype.js").MaybePtr<""> | undefined;
50
+ } | import("../ffi/ctype.js").MaybePtr<"DOC_INFO_1W">) => number;
65
51
  /** 结束打印作业(提交)
66
52
  * @returns 成功 → 非 0 */
67
- export const EndDocPrinter = /*@__PURE__*/ b('EndDocPrinter', '<>ptr -> i32')
53
+ export declare const EndDocPrinter: (args_0: import("../ffi/ctype.js").MaybePtr<"">) => number;
68
54
  /** 起页
69
55
  * @returns 成功 → 非 0 */
70
- export const StartPagePrinter = /*@__PURE__*/ b('StartPagePrinter', '<>ptr -> i32')
56
+ export declare const StartPagePrinter: (args_0: import("../ffi/ctype.js").MaybePtr<"">) => number;
71
57
  /** 结束页
72
58
  * @returns 成功 → 非 0 */
73
- export const EndPagePrinter = /*@__PURE__*/ b('EndPagePrinter', '<>ptr -> i32')
59
+ export declare const EndPagePrinter: (args_0: import("../ffi/ctype.js").MaybePtr<"">) => number;
74
60
  /** 写作业数据(RAW 直写 spooler)
75
61
  * @returns 成功 → 非 0
76
62
  * @param args_0 hPrinter 打印机句柄
77
63
  * @param args_1 lpBuffer 数据缓冲(<BYTE>ptr,PtrArrayBuffer)
78
64
  * @param args_2 nNumberOfBytesToWrite 写入字节数
79
65
  * @param args_3 lpNumberOfBytesWritten 出参槽,PtrArrayBuffer(4) 读实际写入字节数 */
80
- export const WritePrinter = /*@__PURE__*/ b('WritePrinter', '<>ptr <BYTE>ptr u32 <BYTE>ptr -> i32')
66
+ export declare const WritePrinter: (args_0: import("../ffi/ctype.js").MaybePtr<"">, args_1: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_2: number, args_3: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "quickwin",
4
- "version": "3.0.0",
4
+ "version": "3.0.2",
5
5
  "description": "QuickJS Win32 runtime — GUI, networking, WASM, FFI, and more",
6
6
  "bin": {
7
7
  "quickwin": "qwin.exe",
@@ -20,8 +20,6 @@
20
20
  "qwin-nowasm-x86.exe",
21
21
  "main.js",
22
22
  "lib/",
23
- "test/",
24
- "examples/",
25
23
  "quickwin.d.ts",
26
24
  "constants.ts",
27
25
  "enum_map.d.ts",
@@ -34,18 +32,27 @@
34
32
  "type": "git",
35
33
  "url": "git+https://github.com/quickwinlabs/quickwin.git"
36
34
  },
35
+ "dependencies": {
36
+ "@types/react-reconciler": "^0.33.0",
37
+ "react-reconciler": "^0.33.0"
38
+ },
39
+ "peerDependencies": {
40
+ "@types/react": "^19.2.17",
41
+ "react": "^19.2.7"
42
+ },
43
+ "peerDependenciesMeta": {
44
+ "@types/react": {
45
+ "optional": true
46
+ }
47
+ },
37
48
  "devDependencies": {
38
49
  "@quickwinlabs/mupdf-wasm": "^1.28.0",
39
50
  "@types/node": "^24.13.2",
40
51
  "@types/react": "^19.2.17",
41
- "@types/react-reconciler": "^0.33.0",
42
52
  "@types/ws": "^8.18.1",
43
53
  "esbuild": "^0.28.0",
44
- "typescript": "^7.0.2"
45
- },
46
- "dependencies": {
47
54
  "react": "^19.2.7",
48
- "react-reconciler": "^0.33.0",
55
+ "typescript": "^7.0.2",
49
56
  "web-streams-polyfill": "^4.3.0",
50
57
  "ws": "^8.21.0"
51
58
  }
Binary file
package/qwin-nowasm.exe CHANGED
Binary file
package/qwin-x86.exe CHANGED
Binary file
package/qwin.exe CHANGED
Binary file
@@ -1,38 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef, useRef } from 'react';
3
- import { GetDC, ReleaseDC } from '../lib/windows/user32.js';
4
- import { SetDIBitsToDevice } from '../lib/windows/gdi32.js';
5
- import { BITMAPINFOHEADER } from '../lib/windows/structs.js';
6
- function makeBitmapInfo(w, h) {
7
- // biHeight 负 = 自顶向下(DIB 原点左上);biCompression 缺省 0 = BI_RGB 无压缩
8
- return BITMAPINFOHEADER.encode({ biSize: BITMAPINFOHEADER.size, biWidth: w, biHeight: -h, biPlanes: 1, biBitCount: 24 });
9
- }
10
- export const PdfCanvas = forwardRef(({ pixmap, style }, ref) => {
11
- const canvasRef = useRef(null);
12
- const pixmapRef = useRef(pixmap);
13
- pixmapRef.current = pixmap;
14
- return (_jsx("w", { type: "STATIC", ws: 268435456 /* WindowStyle.VISIBLE */ | 33554432 /* WindowStyle.CLIPCHILDREN */, style: style, ref: (h) => {
15
- canvasRef.current = h;
16
- if (typeof ref === 'function')
17
- ref(h);
18
- else if (ref)
19
- ref.current = h;
20
- }, onEvent: (e) => {
21
- const hwnd = e.hwnd;
22
- if (e.msg === 0x14)
23
- return 1;
24
- if (e.msg === 15 /* WmMsg.PAINT */) {
25
- const pm = pixmapRef.current;
26
- if (!pm)
27
- return 0;
28
- const hdc = GetDC(hwnd);
29
- if (hdc) {
30
- const bmi = makeBitmapInfo(pm.w, pm.h);
31
- SetDIBitsToDevice(hdc, 0, 0, pm.w, pm.h, 0, 0, 0, pm.h, pm.data, bmi, 0 /* ColorUse.RGB_COLORS */);
32
- ReleaseDC(hwnd, hdc);
33
- }
34
- return 0;
35
- }
36
- return;
37
- } }));
38
- });
@@ -1,54 +0,0 @@
1
- import { PtrArrayBuffer } from '../lib/ffi/ctype.js'
2
- import { forwardRef, useRef } from 'react'
3
- import * as gui from 'gui'
4
- import { GetDC, ReleaseDC } from '../lib/windows/user32.js'
5
- import { SetDIBitsToDevice } from '../lib/windows/gdi32.js'
6
- import { BITMAPINFOHEADER } from '../lib/windows/structs.js'
7
- import type { WStyle } from '../lib/react-qw/jsx.d.ts'
8
- import { ColorUse, WindowStyle, WmMsg } from '../constants'
9
-
10
- function makeBitmapInfo(w: number, h: number) {
11
- // biHeight 负 = 自顶向下(DIB 原点左上);biCompression 缺省 0 = BI_RGB 无压缩
12
- return BITMAPINFOHEADER.encode({ biSize: BITMAPINFOHEADER.size, biWidth: w, biHeight: -h, biPlanes: 1, biBitCount: 24 })
13
- }
14
-
15
- export interface PdfCanvasProps {
16
- pixmap?: { data: PtrArrayBuffer<string>; w: number; h: number }
17
- style?: WStyle
18
- }
19
-
20
- export const PdfCanvas = forwardRef<gui.HWND, PdfCanvasProps>(
21
- ({ pixmap, style }, ref) => {
22
- const canvasRef = useRef<gui.HWND>(null)
23
- const pixmapRef = useRef(pixmap)
24
- pixmapRef.current = pixmap
25
-
26
- return (
27
- <w type="STATIC"
28
- ws={WindowStyle.VISIBLE | WindowStyle.CLIPCHILDREN}
29
- style={style}
30
- ref={(h: gui.HWND) => {
31
- canvasRef.current = h
32
- if (typeof ref === 'function') ref(h)
33
- else if (ref) (ref as React.RefObject<gui.HWND | null>).current = h
34
- }}
35
- onEvent={(e) => {
36
- const hwnd = e.hwnd
37
- if (e.msg === 0x14) return 1
38
- if (e.msg === WmMsg.PAINT) {
39
- const pm = pixmapRef.current
40
- if (!pm) return 0
41
- const hdc = GetDC(hwnd)
42
- if (hdc) {
43
- const bmi = makeBitmapInfo(pm.w, pm.h)
44
- SetDIBitsToDevice(hdc, 0, 0, pm.w, pm.h, 0, 0, 0, pm.h, pm.data, bmi, ColorUse.RGB_COLORS)
45
- ReleaseDC(hwnd, hdc)
46
- }
47
- return 0
48
- }
49
- return
50
- }}
51
- />
52
- )
53
- }
54
- )