quickwin 2.1.1 → 2.3.0
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.
- package/README.en.md +9 -9
- package/README.md +9 -9
- package/constants.ts +1063 -0
- package/enum_map.d.ts +129 -0
- package/examples/PdfCanvas.js +2 -2
- package/examples/PdfCanvas.tsx +3 -2
- package/examples/{exec_server.js → execd/main.js} +1114 -287
- package/examples/execd/tray.js +192 -0
- package/examples/execd/worker.js +122 -0
- package/examples/pdf_preview2.js +46 -46
- package/examples/pdf_preview2.ts +55 -54
- package/examples/pdf_viewer.js +134 -130
- package/examples/pdf_viewer.tsx +6 -5
- package/examples/test_gallery.js +135 -131
- package/examples/test_gallery.tsx +9 -8
- package/examples/test_react_lazy.js +130 -128
- package/examples/test_react_lazy.tsx +7 -6
- package/examples/test_react_listbox.js +130 -128
- package/examples/test_react_listbox.tsx +8 -7
- package/examples/test_root_window.js +130 -128
- package/examples/test_root_window.tsx +5 -5
- package/examples/test_tab.js +130 -128
- package/examples/test_tab.tsx +7 -6
- package/examples/tray_demo.js +8 -8
- package/examples/tray_demo.tsx +9 -8
- package/lib/dumpRects.js +2 -2
- package/lib/dumpRects.ts +3 -2
- package/lib/fetch.js +15 -15
- package/lib/fetch.ts +16 -15
- package/lib/ffi/bind.js +3 -3
- package/lib/ffi/bind.ts +3 -3
- package/lib/ffi/ctype.ts +3 -1
- package/lib/ffi/struct.js +23 -7
- package/lib/ffi/struct.ts +50 -23
- package/lib/http-server.js +5 -5
- package/lib/http-server.ts +6 -5
- package/lib/react-qw/components/Button.js +2 -2
- package/lib/react-qw/components/CheckBox.js +4 -4
- package/lib/react-qw/components/ComboBox.js +10 -10
- package/lib/react-qw/components/DateTimePicker.js +12 -12
- package/lib/react-qw/components/Input.js +7 -7
- package/lib/react-qw/components/Link.js +4 -4
- package/lib/react-qw/components/ListBox.js +12 -12
- package/lib/react-qw/components/ListView.js +35 -35
- package/lib/react-qw/components/PathPicker.js +3 -3
- package/lib/react-qw/components/ProgressBar.js +4 -4
- package/lib/react-qw/components/RadioButton.js +4 -4
- package/lib/react-qw/components/ScrollView.js +28 -28
- package/lib/react-qw/components/Slider.js +11 -11
- package/lib/react-qw/components/Tab.js +10 -10
- package/lib/react-qw/components/Tooltip.js +8 -8
- package/lib/react-qw/components/TreeView.js +20 -20
- package/lib/react-qw/index.js +5 -5
- package/lib/react-qw/index.ts +6 -5
- package/lib/react-qw/props.js +4 -4
- package/lib/react-qw/props.ts +5 -4
- package/lib/react-qw/reconciler.js +10 -10
- package/lib/react-qw/reconciler.ts +11 -10
- package/lib/text-measure.js +3 -3
- package/lib/text-measure.ts +4 -3
- package/lib/websocket.js +17 -17
- package/lib/websocket.ts +18 -17
- package/lib/windows/advapi32.js +7 -7
- package/lib/windows/advapi32.ts +7 -7
- package/lib/windows/gdi32.js +17 -17
- package/lib/windows/gdi32.ts +17 -17
- package/lib/windows/kernel32.js +41 -2
- package/lib/windows/kernel32.ts +45 -2
- package/lib/windows/shell32.js +24 -3
- package/lib/windows/shell32.ts +27 -4
- package/lib/windows/structs.js +230 -92
- package/lib/windows/structs.ts +278 -92
- package/lib/windows/user32.js +18 -6
- package/lib/windows/user32.ts +18 -6
- package/lib/windows/winspool.js +3 -3
- package/lib/windows/winspool.ts +3 -3
- package/package.json +4 -3
- package/quickwin.d.ts +32 -10
- package/qwin-nowasm-x86.exe +0 -0
- package/qwin-nowasm.exe +0 -0
- package/qwin-x86.exe +0 -0
- package/qwin.exe +0 -0
- package/test/test_ffi_bind.js +12 -10
- package/test/test_ffi_bind.ts +14 -12
- package/test/test_ffi_struct.js +60 -26
- package/test/test_ffi_struct.ts +58 -28
- package/test/test_ffi_windows.js +1 -1
- package/test/test_ffi_windows.ts +1 -1
- package/test/test_files.js +7 -7
- package/test/test_files.ts +8 -8
- package/test/test_gdi_draw.js +51 -51
- package/test/test_gdi_draw.ts +57 -57
- package/test/test_http_server.js +3 -3
- package/test/test_http_server.ts +4 -3
- package/test/test_ipv6.js +3 -3
- package/test/test_ipv6.ts +4 -3
- package/test/test_net_event.js +3 -3
- package/test/test_net_event.ts +4 -3
- package/test/test_printer.js +4 -4
- package/test/test_printer.ts +5 -5
- package/test/test_react_complex.js +132 -130
- package/test/test_react_counter.js +130 -128
- package/test/test_react_flex.js +132 -130
- package/test/test_react_hidden.js +130 -128
- package/test/test_react_listview_link.js +131 -129
- package/test/test_react_notify.js +148 -146
- package/test/test_react_render.js +130 -128
- package/test/test_registry.js +6 -6
- package/test/test_registry.ts +8 -8
- package/test/test_wolfssl_read.js +8 -8
- package/test/test_wolfssl_read.ts +9 -8
- package/examples/exec_server.tsx +0 -488
- package/examples/exec_server_worker.js +0 -395
- package/examples/exec_server_worker.ts +0 -417
- package/examples/setres.js +0 -79
- package/examples/setres.ts +0 -86
- package/quickwin_const.d.ts +0 -1037
|
@@ -16276,7 +16276,7 @@ function doEncode(dv, base, fields, v) {
|
|
|
16276
16276
|
function createStruct(t) {
|
|
16277
16277
|
const { fields, size, maxEffectiveAlign } = computeStructLayout(t);
|
|
16278
16278
|
return {
|
|
16279
|
-
|
|
16279
|
+
fields,
|
|
16280
16280
|
size,
|
|
16281
16281
|
structAlign: maxEffectiveAlign,
|
|
16282
16282
|
decode: (p) => {
|
|
@@ -16305,6 +16305,14 @@ function createStruct(t) {
|
|
|
16305
16305
|
};
|
|
16306
16306
|
}
|
|
16307
16307
|
function buildDecl(kind, member, pack) {
|
|
16308
|
+
const declKind = member["#"];
|
|
16309
|
+
if (declKind !== void 0 && declKind !== kind)
|
|
16310
|
+
throw new Error(`ffi-struct: ${kind}() received a '${String(declKind)}' declaration (kind mismatch \u2014 use ${declKind}() for it)`);
|
|
16311
|
+
const declPack = member["#pack"];
|
|
16312
|
+
if (pack === void 0 && declPack !== void 0)
|
|
16313
|
+
pack = declPack;
|
|
16314
|
+
else if (pack !== void 0 && declPack !== void 0 && pack !== declPack)
|
|
16315
|
+
throw new Error(`ffi-struct: #pack conflict: opts.pack=${pack} vs declaration ${String(declPack)}`);
|
|
16308
16316
|
const decl = { "#": kind };
|
|
16309
16317
|
if (pack !== void 0)
|
|
16310
16318
|
decl["#pack"] = pack;
|
|
@@ -16313,49 +16321,6 @@ function buildDecl(kind, member, pack) {
|
|
|
16313
16321
|
decl[k] = v;
|
|
16314
16322
|
return decl;
|
|
16315
16323
|
}
|
|
16316
|
-
function structArray(def) {
|
|
16317
|
-
const { fields, size } = computeStructLayout(def.__struct);
|
|
16318
|
-
const readN = (dv, n) => {
|
|
16319
|
-
const out = [];
|
|
16320
|
-
for (let i = 0; i < n; i++)
|
|
16321
|
-
out.push(doDecode(dv, i * size, fields));
|
|
16322
|
-
return out;
|
|
16323
|
-
};
|
|
16324
|
-
return {
|
|
16325
|
-
encode: (els) => {
|
|
16326
|
-
if (!Array.isArray(els) || els.length === 0)
|
|
16327
|
-
throw new Error(`ffi-struct: structArray(def).encode(els) requires a non-empty element array (pass NULL for an empty pointer position)`);
|
|
16328
|
-
const out = def.alloc(els.length);
|
|
16329
|
-
for (let i = 0; i < els.length; i++)
|
|
16330
|
-
def.encode(els[i], out, i * def.size);
|
|
16331
|
-
return out;
|
|
16332
|
-
},
|
|
16333
|
-
decode: ((p, count) => {
|
|
16334
|
-
if (count !== void 0 && (!Number.isInteger(count) || count < 0))
|
|
16335
|
-
throw new Error(`ffi-struct: structArray.decode(p, count) requires a non-negative integer count, got ${count}`);
|
|
16336
|
-
if (typeof p === "number") {
|
|
16337
|
-
if (count === void 0)
|
|
16338
|
-
throw new Error(`ffi-struct: structArray.decode(address, count) requires an explicit count (a bare address carries no length)`);
|
|
16339
|
-
if (count === 0)
|
|
16340
|
-
return [];
|
|
16341
|
-
return readN(new DataView(ffi2.readBytes(p, count * size)), count);
|
|
16342
|
-
}
|
|
16343
|
-
let n;
|
|
16344
|
-
if (count !== void 0) {
|
|
16345
|
-
n = count;
|
|
16346
|
-
if (n * size > p.byteLength)
|
|
16347
|
-
throw new Error(`ffi-struct: structArray.decode: count ${n} \xD7 size ${size} = ${n * size} exceeds buffer byteLength ${p.byteLength}`);
|
|
16348
|
-
} else {
|
|
16349
|
-
if (p.byteLength % size !== 0)
|
|
16350
|
-
throw new Error(`ffi-struct: structArray.decode: byteLength ${p.byteLength} is not a multiple of size ${size} (mixed buffer? pass count explicitly)`);
|
|
16351
|
-
n = p.byteLength / size;
|
|
16352
|
-
}
|
|
16353
|
-
if (n === 0)
|
|
16354
|
-
return [];
|
|
16355
|
-
return readN(new DataView(p), n);
|
|
16356
|
-
})
|
|
16357
|
-
};
|
|
16358
|
-
}
|
|
16359
16324
|
function struct(a, b6, c) {
|
|
16360
16325
|
const isNamed = typeof a === "string";
|
|
16361
16326
|
const raw = isNamed ? b6 : a;
|
|
@@ -16364,21 +16329,28 @@ function struct(a, b6, c) {
|
|
|
16364
16329
|
}
|
|
16365
16330
|
|
|
16366
16331
|
// _build/lib/windows/structs.js
|
|
16367
|
-
var
|
|
16332
|
+
var RECT_DECL = {
|
|
16333
|
+
"#": "struct",
|
|
16368
16334
|
left: "i32",
|
|
16369
16335
|
top: "i32",
|
|
16370
16336
|
right: "i32",
|
|
16371
16337
|
bottom: "i32"
|
|
16372
|
-
}
|
|
16373
|
-
var
|
|
16338
|
+
};
|
|
16339
|
+
var RECT = /* @__PURE__ */ struct("RECT", RECT_DECL);
|
|
16340
|
+
var POINT_DECL = {
|
|
16341
|
+
"#": "struct",
|
|
16374
16342
|
x: "i32",
|
|
16375
16343
|
y: "i32"
|
|
16376
|
-
}
|
|
16377
|
-
var
|
|
16344
|
+
};
|
|
16345
|
+
var POINT = /* @__PURE__ */ struct("POINT", POINT_DECL);
|
|
16346
|
+
var SIZE_DECL = {
|
|
16347
|
+
"#": "struct",
|
|
16378
16348
|
cx: "i32",
|
|
16379
16349
|
cy: "i32"
|
|
16380
|
-
}
|
|
16381
|
-
var
|
|
16350
|
+
};
|
|
16351
|
+
var SIZE = /* @__PURE__ */ struct("SIZE", SIZE_DECL);
|
|
16352
|
+
var LOGFONTW_DECL = {
|
|
16353
|
+
"#": "struct",
|
|
16382
16354
|
lfHeight: "i32",
|
|
16383
16355
|
lfWidth: "i32",
|
|
16384
16356
|
lfEscapement: "i32",
|
|
@@ -16393,8 +16365,10 @@ var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", {
|
|
|
16393
16365
|
lfQuality: "u8",
|
|
16394
16366
|
lfPitchAndFamily: "u8",
|
|
16395
16367
|
lfFaceName: "u16[32]@utf-16le"
|
|
16396
|
-
}
|
|
16397
|
-
var
|
|
16368
|
+
};
|
|
16369
|
+
var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", LOGFONTW_DECL);
|
|
16370
|
+
var OPENFILENAMEW_DECL = {
|
|
16371
|
+
"#": "struct",
|
|
16398
16372
|
lStructSize: "u32",
|
|
16399
16373
|
hwndOwner: "<HWND>ptr",
|
|
16400
16374
|
hInstance: "<HMODULE>ptr",
|
|
@@ -16418,8 +16392,10 @@ var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", {
|
|
|
16418
16392
|
pvReserved: "<>ptr",
|
|
16419
16393
|
dwReserved: "u32",
|
|
16420
16394
|
FlagsEx: "u32"
|
|
16421
|
-
}
|
|
16422
|
-
var
|
|
16395
|
+
};
|
|
16396
|
+
var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", OPENFILENAMEW_DECL);
|
|
16397
|
+
var BROWSEINFOW_DECL = {
|
|
16398
|
+
"#": "struct",
|
|
16423
16399
|
hwndOwner: "<HWND>ptr",
|
|
16424
16400
|
pidlRoot: "<>ptr",
|
|
16425
16401
|
pszDisplayName: "<>ptr",
|
|
@@ -16428,13 +16404,17 @@ var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", {
|
|
|
16428
16404
|
lpfn: "<>ptr",
|
|
16429
16405
|
lParam: "<>ptr",
|
|
16430
16406
|
iImage: "i32"
|
|
16431
|
-
}
|
|
16432
|
-
var
|
|
16407
|
+
};
|
|
16408
|
+
var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", BROWSEINFOW_DECL);
|
|
16409
|
+
var NMHDR_DECL = {
|
|
16410
|
+
"#": "struct",
|
|
16433
16411
|
hwndFrom: "<HWND>ptr",
|
|
16434
16412
|
idFrom: "<>ptr",
|
|
16435
16413
|
code: "i32"
|
|
16436
|
-
}
|
|
16437
|
-
var
|
|
16414
|
+
};
|
|
16415
|
+
var NMHDR = /* @__PURE__ */ struct("NMHDR", NMHDR_DECL);
|
|
16416
|
+
var SYSTEMTIME_DECL = {
|
|
16417
|
+
"#": "struct",
|
|
16438
16418
|
wYear: "u16",
|
|
16439
16419
|
wMonth: "u16",
|
|
16440
16420
|
wDayOfWeek: "u16",
|
|
@@ -16443,35 +16423,44 @@ var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", {
|
|
|
16443
16423
|
wMinute: "u16",
|
|
16444
16424
|
wSecond: "u16",
|
|
16445
16425
|
wMilliseconds: "u16"
|
|
16446
|
-
}
|
|
16447
|
-
var
|
|
16448
|
-
|
|
16426
|
+
};
|
|
16427
|
+
var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", SYSTEMTIME_DECL);
|
|
16428
|
+
var NMDATETIMECHANGE_DECL = {
|
|
16429
|
+
"#": "struct",
|
|
16430
|
+
hdr: NMHDR_DECL,
|
|
16449
16431
|
dwFlags: "u32",
|
|
16450
|
-
st:
|
|
16451
|
-
}
|
|
16452
|
-
var
|
|
16432
|
+
st: SYSTEMTIME_DECL
|
|
16433
|
+
};
|
|
16434
|
+
var NMDATETIMECHANGE = /* @__PURE__ */ struct("NMDATETIMECHANGE", NMDATETIMECHANGE_DECL);
|
|
16435
|
+
var LITEM_DECL = {
|
|
16436
|
+
"#": "struct",
|
|
16453
16437
|
mask: "u32",
|
|
16454
16438
|
iLink: "i32",
|
|
16455
16439
|
state: "u32",
|
|
16456
16440
|
stateMask: "u32",
|
|
16457
16441
|
szID: "u16[48]@utf-16le",
|
|
16458
16442
|
szUrl: "u16[2084]@utf-16le"
|
|
16459
|
-
}
|
|
16460
|
-
var
|
|
16461
|
-
|
|
16462
|
-
|
|
16463
|
-
|
|
16464
|
-
|
|
16465
|
-
|
|
16443
|
+
};
|
|
16444
|
+
var NMLINK_DECL = {
|
|
16445
|
+
"#": "struct",
|
|
16446
|
+
hdr: NMHDR_DECL,
|
|
16447
|
+
item: LITEM_DECL
|
|
16448
|
+
};
|
|
16449
|
+
var NMLINK = /* @__PURE__ */ struct("NMLINK", NMLINK_DECL);
|
|
16450
|
+
var NMCUSTOMDRAW_DECL = {
|
|
16451
|
+
"#": "struct",
|
|
16452
|
+
hdr: NMHDR_DECL,
|
|
16466
16453
|
dwDrawStage: "u32",
|
|
16467
16454
|
hdc: "<HDC>ptr",
|
|
16468
16455
|
rc: "i32[4]",
|
|
16469
16456
|
dwItemSpec: "<>ptr",
|
|
16470
16457
|
uItemState: "u32",
|
|
16471
16458
|
lItemlParam: "<>ptr"
|
|
16472
|
-
}
|
|
16473
|
-
var
|
|
16474
|
-
|
|
16459
|
+
};
|
|
16460
|
+
var NMCUSTOMDRAW = /* @__PURE__ */ struct("NMCUSTOMDRAW", NMCUSTOMDRAW_DECL);
|
|
16461
|
+
var NMLVCUSTOMDRAW_DECL = {
|
|
16462
|
+
"#": "struct",
|
|
16463
|
+
hdr: NMHDR_DECL,
|
|
16475
16464
|
dwDrawStage: "u32",
|
|
16476
16465
|
hdc: "<HDC>ptr",
|
|
16477
16466
|
rc: "i32[4]",
|
|
@@ -16482,9 +16471,11 @@ var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", {
|
|
|
16482
16471
|
clrTextBk: "u32",
|
|
16483
16472
|
iSubItem: "i32",
|
|
16484
16473
|
dwItemType: "u32"
|
|
16485
|
-
}
|
|
16486
|
-
var
|
|
16487
|
-
|
|
16474
|
+
};
|
|
16475
|
+
var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", NMLVCUSTOMDRAW_DECL);
|
|
16476
|
+
var NMLISTVIEW_DECL = {
|
|
16477
|
+
"#": "struct",
|
|
16478
|
+
hdr: NMHDR_DECL,
|
|
16488
16479
|
iItem: "i32",
|
|
16489
16480
|
iSubItem: "i32",
|
|
16490
16481
|
uNewState: "u32",
|
|
@@ -16492,8 +16483,10 @@ var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", {
|
|
|
16492
16483
|
uChanged: "u32",
|
|
16493
16484
|
ptAction: "i32[2]",
|
|
16494
16485
|
lParam: "<>ptr"
|
|
16495
|
-
}
|
|
16496
|
-
var
|
|
16486
|
+
};
|
|
16487
|
+
var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", NMLISTVIEW_DECL);
|
|
16488
|
+
var TCITEMW_DECL = {
|
|
16489
|
+
"#": "struct",
|
|
16497
16490
|
mask: "u32",
|
|
16498
16491
|
dwState: "u32",
|
|
16499
16492
|
dwStateMask: "u32",
|
|
@@ -16501,8 +16494,10 @@ var TCITEMW = /* @__PURE__ */ struct("TCITEMW", {
|
|
|
16501
16494
|
cchTextMax: "i32",
|
|
16502
16495
|
iImage: "i32",
|
|
16503
16496
|
lParam: "<>ptr"
|
|
16504
|
-
}
|
|
16505
|
-
var
|
|
16497
|
+
};
|
|
16498
|
+
var TCITEMW = /* @__PURE__ */ struct("TCITEMW", TCITEMW_DECL);
|
|
16499
|
+
var TVITEM_DECL = {
|
|
16500
|
+
"#": "struct",
|
|
16506
16501
|
mask: "u32",
|
|
16507
16502
|
hItem: "<>ptr",
|
|
16508
16503
|
state: "u32",
|
|
@@ -16513,20 +16508,26 @@ var TVITEM = /* @__PURE__ */ struct("TVITEM", {
|
|
|
16513
16508
|
iSelectedImage: "i32",
|
|
16514
16509
|
cChildren: "i32",
|
|
16515
16510
|
lParam: "<>ptr"
|
|
16516
|
-
}
|
|
16517
|
-
var
|
|
16511
|
+
};
|
|
16512
|
+
var TVITEM = /* @__PURE__ */ struct("TVITEM", TVITEM_DECL);
|
|
16513
|
+
var TVINSERTSTRUCT_DECL = {
|
|
16514
|
+
"#": "struct",
|
|
16518
16515
|
hParent: "<>ptr",
|
|
16519
16516
|
hInsertAfter: "<>ptr",
|
|
16520
|
-
item:
|
|
16521
|
-
}
|
|
16522
|
-
var
|
|
16517
|
+
item: TVITEM_DECL
|
|
16518
|
+
};
|
|
16519
|
+
var TVINSERTSTRUCT = /* @__PURE__ */ struct("TVINSERTSTRUCT", TVINSERTSTRUCT_DECL);
|
|
16520
|
+
var LVHITTESTINFO_DECL = {
|
|
16521
|
+
"#": "struct",
|
|
16523
16522
|
pt: "i32[2]",
|
|
16524
16523
|
flags: "u32",
|
|
16525
16524
|
iItem: "i32",
|
|
16526
16525
|
iSubItem: "i32",
|
|
16527
16526
|
iGroup: "i32"
|
|
16528
|
-
}
|
|
16529
|
-
var
|
|
16527
|
+
};
|
|
16528
|
+
var LVHITTESTINFO = /* @__PURE__ */ struct("LVHITTESTINFO", LVHITTESTINFO_DECL);
|
|
16529
|
+
var LVITEMW_DECL = {
|
|
16530
|
+
"#": "struct",
|
|
16530
16531
|
mask: "u32",
|
|
16531
16532
|
iItem: "i32",
|
|
16532
16533
|
iSubItem: "i32",
|
|
@@ -16542,8 +16543,10 @@ var LVITEMW = /* @__PURE__ */ struct("LVITEMW", {
|
|
|
16542
16543
|
puColumns: "<>ptr",
|
|
16543
16544
|
piColFmt: "<>ptr",
|
|
16544
16545
|
iGroup: "i32"
|
|
16545
|
-
}
|
|
16546
|
-
var
|
|
16546
|
+
};
|
|
16547
|
+
var LVITEMW = /* @__PURE__ */ struct("LVITEMW", LVITEMW_DECL);
|
|
16548
|
+
var LVCOLUMNW_DECL = {
|
|
16549
|
+
"#": "struct",
|
|
16547
16550
|
mask: "u32",
|
|
16548
16551
|
fmt: "i32",
|
|
16549
16552
|
cx: "i32",
|
|
@@ -16555,23 +16558,16 @@ var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
|
|
|
16555
16558
|
cxMin: "i32",
|
|
16556
16559
|
cxDefault: "i32",
|
|
16557
16560
|
cxIdeal: "i32"
|
|
16558
|
-
}
|
|
16559
|
-
var
|
|
16560
|
-
|
|
16561
|
-
|
|
16562
|
-
|
|
16563
|
-
|
|
16564
|
-
|
|
16565
|
-
|
|
16566
|
-
}
|
|
16567
|
-
var
|
|
16568
|
-
hdc: "<HDC>ptr",
|
|
16569
|
-
fErase: "i32",
|
|
16570
|
-
rcPaint: RECT.__struct,
|
|
16571
|
-
fRestore: "i32",
|
|
16572
|
-
fIncUpdate: "i32",
|
|
16573
|
-
rgbReserved: "u8[32]"
|
|
16574
|
-
});
|
|
16561
|
+
};
|
|
16562
|
+
var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", LVCOLUMNW_DECL);
|
|
16563
|
+
var NOTIFYICONIDENTIFIER_DECL = {
|
|
16564
|
+
"#": "struct",
|
|
16565
|
+
cbSize: "u32",
|
|
16566
|
+
hWnd: "<HWND>ptr",
|
|
16567
|
+
uID: "u32",
|
|
16568
|
+
guidItem: "u32[4]"
|
|
16569
|
+
};
|
|
16570
|
+
var NOTIFYICONIDENTIFIER = /* @__PURE__ */ struct("NOTIFYICONIDENTIFIER", NOTIFYICONIDENTIFIER_DECL);
|
|
16575
16571
|
|
|
16576
16572
|
// _build/lib/windows/user32.js
|
|
16577
16573
|
var b = (name, sig, encoders) => bind("user32.dll", name, sig, encoders);
|
|
@@ -16605,7 +16601,6 @@ import * as os4 from "os";
|
|
|
16605
16601
|
|
|
16606
16602
|
// _build/lib/windows/gdi32.js
|
|
16607
16603
|
var b2 = (name, sig, encoders) => bind("gdi32.dll", name, sig, encoders);
|
|
16608
|
-
var POINTArr = structArray(POINT);
|
|
16609
16604
|
var DeleteObject = /* @__PURE__ */ b2("DeleteObject", "<HGDIOBJ>ptr -> i32");
|
|
16610
16605
|
var GetDeviceCaps = /* @__PURE__ */ b2("GetDeviceCaps", "<HDC>ptr! i32@DeviceCap -> i32");
|
|
16611
16606
|
var CreateFontIndirect = /* @__PURE__ */ b2("CreateFontIndirectW", "<LOGFONTW>ptr -> <HGDIOBJ>ptr", { LOGFONTW });
|
|
@@ -16638,14 +16633,14 @@ function applyProps(instance, newProps, _oldProps) {
|
|
|
16638
16633
|
gui.ShowWindow(
|
|
16639
16634
|
hwnd2,
|
|
16640
16635
|
newProps.hidden ? 0 : 5
|
|
16641
|
-
/*
|
|
16636
|
+
/* ShowWindowCmd.SHOW */
|
|
16642
16637
|
);
|
|
16643
16638
|
}
|
|
16644
16639
|
if ("visible" in newProps) {
|
|
16645
16640
|
gui.ShowWindow(
|
|
16646
16641
|
hwnd2,
|
|
16647
16642
|
newProps.visible ? 5 : 0
|
|
16648
|
-
/*
|
|
16643
|
+
/* ShowWindowCmd.HIDE */
|
|
16649
16644
|
);
|
|
16650
16645
|
}
|
|
16651
16646
|
}
|
|
@@ -16741,7 +16736,7 @@ function measureText(hdc, text, maxWidth) {
|
|
|
16741
16736
|
-1,
|
|
16742
16737
|
r.ptr,
|
|
16743
16738
|
1024
|
|
16744
|
-
/*
|
|
16739
|
+
/* DrawTextFlag.CALCRECT */
|
|
16745
16740
|
);
|
|
16746
16741
|
const { right, bottom } = RECT.decode(r);
|
|
16747
16742
|
return { width: right, height: bottom };
|
|
@@ -16789,7 +16784,7 @@ function setupWindowProc(instance, hwnd2) {
|
|
|
16789
16784
|
const oldProc = GetWindowLongPtr(
|
|
16790
16785
|
hwnd2,
|
|
16791
16786
|
-4
|
|
16792
|
-
/*
|
|
16787
|
+
/* Gwlp.WNDPROC */
|
|
16793
16788
|
);
|
|
16794
16789
|
instancesByHwnd.set(hwnd2, instance);
|
|
16795
16790
|
gui3.SetWindowProc(hwnd2, (hwnd3, msg, wParam, lParam) => {
|
|
@@ -16877,7 +16872,7 @@ function runFlexLayout(inst) {
|
|
|
16877
16872
|
r.width * scaleFactor,
|
|
16878
16873
|
r.height * scaleFactor,
|
|
16879
16874
|
64
|
|
16880
|
-
/*
|
|
16875
|
+
/* SetWindowPosFlag.SWP_SHOWWINDOW */
|
|
16881
16876
|
);
|
|
16882
16877
|
InvalidateRect(child.hwnd, NULL, 1);
|
|
16883
16878
|
child.lastRect = { x: r.x, y: r.y, w: r.width, h: r.height };
|
|
@@ -17033,7 +17028,7 @@ var hostConfig = {
|
|
|
17033
17028
|
gui3.ShowWindow(
|
|
17034
17029
|
instance.hwnd,
|
|
17035
17030
|
0
|
|
17036
|
-
/*
|
|
17031
|
+
/* ShowWindowCmd.HIDE */
|
|
17037
17032
|
);
|
|
17038
17033
|
},
|
|
17039
17034
|
hideTextInstance(instance) {
|
|
@@ -17041,7 +17036,7 @@ var hostConfig = {
|
|
|
17041
17036
|
gui3.ShowWindow(
|
|
17042
17037
|
instance.hwnd,
|
|
17043
17038
|
0
|
|
17044
|
-
/*
|
|
17039
|
+
/* ShowWindowCmd.HIDE */
|
|
17045
17040
|
);
|
|
17046
17041
|
},
|
|
17047
17042
|
unhideInstance(instance, _props) {
|
|
@@ -17049,7 +17044,7 @@ var hostConfig = {
|
|
|
17049
17044
|
gui3.ShowWindow(
|
|
17050
17045
|
instance.hwnd,
|
|
17051
17046
|
5
|
|
17052
|
-
/*
|
|
17047
|
+
/* ShowWindowCmd.SHOW */
|
|
17053
17048
|
);
|
|
17054
17049
|
},
|
|
17055
17050
|
unhideTextInstance(instance, _text) {
|
|
@@ -17057,7 +17052,7 @@ var hostConfig = {
|
|
|
17057
17052
|
gui3.ShowWindow(
|
|
17058
17053
|
instance.hwnd,
|
|
17059
17054
|
5
|
|
17060
|
-
/*
|
|
17055
|
+
/* ShowWindowCmd.SHOW */
|
|
17061
17056
|
);
|
|
17062
17057
|
},
|
|
17063
17058
|
shouldSetTextContent(_type, props) {
|
|
@@ -17485,7 +17480,7 @@ function getCellFont(hwnd2, style) {
|
|
|
17485
17480
|
...base,
|
|
17486
17481
|
...style.bold ? {
|
|
17487
17482
|
lfWeight: 700
|
|
17488
|
-
/*
|
|
17483
|
+
/* FontWeight.BOLD */
|
|
17489
17484
|
} : {},
|
|
17490
17485
|
...style.italic ? { lfItalic: 1 } : {},
|
|
17491
17486
|
...style.underline ? { lfUnderline: 1 } : {}
|
|
@@ -17607,7 +17602,7 @@ var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, d
|
|
|
17607
17602
|
4150,
|
|
17608
17603
|
0,
|
|
17609
17604
|
32 | 1 | 65536
|
|
17610
|
-
/*
|
|
17605
|
+
/* LvExStyle.DOUBLEBUFFER */
|
|
17611
17606
|
);
|
|
17612
17607
|
const n = columns.length;
|
|
17613
17608
|
for (let j = 0; j < n; j++) {
|
|
@@ -17652,7 +17647,7 @@ var ListView = (0, import_react9.forwardRef)(function ListViewInner({ columns, d
|
|
|
17652
17647
|
4126,
|
|
17653
17648
|
j,
|
|
17654
17649
|
-2
|
|
17655
|
-
/*
|
|
17650
|
+
/* LvColumnWidthCmd.AUTOSIZE_USEHEADER */
|
|
17656
17651
|
);
|
|
17657
17652
|
}
|
|
17658
17653
|
}
|
|
@@ -17794,7 +17789,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17794
17789
|
natW,
|
|
17795
17790
|
natH,
|
|
17796
17791
|
4
|
|
17797
|
-
/*
|
|
17792
|
+
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17798
17793
|
);
|
|
17799
17794
|
forceFlexLayout(content);
|
|
17800
17795
|
if (natW > svW) {
|
|
@@ -17833,7 +17828,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17833
17828
|
0,
|
|
17834
17829
|
0,
|
|
17835
17830
|
1 | 4
|
|
17836
|
-
/*
|
|
17831
|
+
/* SetWindowPosFlag.SWP_NOZORDER */
|
|
17837
17832
|
);
|
|
17838
17833
|
gui12.SetScrollInfo(sv, bar, { pos: newPos }, true);
|
|
17839
17834
|
}
|
|
@@ -17899,7 +17894,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17899
17894
|
handleScroll(
|
|
17900
17895
|
e,
|
|
17901
17896
|
1
|
|
17902
|
-
/*
|
|
17897
|
+
/* ScrollBar.VERT */
|
|
17903
17898
|
);
|
|
17904
17899
|
return 0;
|
|
17905
17900
|
}
|
|
@@ -17907,7 +17902,7 @@ var ScrollView = (0, import_react12.forwardRef)(({ children, style, contentWidth
|
|
|
17907
17902
|
handleScroll(
|
|
17908
17903
|
e,
|
|
17909
17904
|
0
|
|
17910
|
-
/*
|
|
17905
|
+
/* ScrollBar.HORZ */
|
|
17911
17906
|
);
|
|
17912
17907
|
return 0;
|
|
17913
17908
|
}
|
|
@@ -18071,7 +18066,7 @@ function deleteAllItems(hTree) {
|
|
|
18071
18066
|
4353,
|
|
18072
18067
|
1,
|
|
18073
18068
|
-65536
|
|
18074
|
-
/*
|
|
18069
|
+
/* TvInsertAfter.ROOT */
|
|
18075
18070
|
);
|
|
18076
18071
|
}
|
|
18077
18072
|
var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onSelect, defaultSelectedKey, selectedKey: controlledKey, style }, ref) {
|
|
@@ -18103,7 +18098,7 @@ var TreeView = (0, import_react16.forwardRef)(function TreeViewInner({ data, onS
|
|
|
18103
18098
|
4396,
|
|
18104
18099
|
0,
|
|
18105
18100
|
4
|
|
18106
|
-
/*
|
|
18101
|
+
/* TvExStyle.DOUBLEBUFFER */
|
|
18107
18102
|
);
|
|
18108
18103
|
}, []);
|
|
18109
18104
|
(0, import_react16.useEffect)(() => {
|
|
@@ -18145,9 +18140,16 @@ var b3 = (name, sig) => bind("comdlg32.dll", name, sig);
|
|
|
18145
18140
|
var GetOpenFileName = /* @__PURE__ */ b3("GetOpenFileNameW", "<OPENFILENAMEW>ptr -> u32");
|
|
18146
18141
|
|
|
18147
18142
|
// _build/lib/windows/shell32.js
|
|
18148
|
-
var b4 = (name, sig) => bind("shell32.dll", name, sig);
|
|
18143
|
+
var b4 = (name, sig, encoders) => bind("shell32.dll", name, sig, encoders);
|
|
18149
18144
|
var SHBrowseForFolder = /* @__PURE__ */ b4("SHBrowseForFolderW", "<BROWSEINFOW>ptr -> <>ptr");
|
|
18150
18145
|
var SHGetPathFromIDList = /* @__PURE__ */ b4("SHGetPathFromIDListW", "<>ptr <BYTE>ptr -> u32");
|
|
18146
|
+
var Shell_NotifyIconGetRect = (() => {
|
|
18147
|
+
try {
|
|
18148
|
+
return b4("Shell_NotifyIconGetRect", "<NOTIFYICONIDENTIFIER>ptr <RECT>ptr -> i32", { NOTIFYICONIDENTIFIER });
|
|
18149
|
+
} catch {
|
|
18150
|
+
return null;
|
|
18151
|
+
}
|
|
18152
|
+
})();
|
|
18151
18153
|
|
|
18152
18154
|
// _build/lib/windows/ole32.js
|
|
18153
18155
|
var b5 = (name, sig) => bind("ole32.dll", name, sig);
|
package/test/test_registry.js
CHANGED
|
@@ -38,7 +38,7 @@ export const suite = {
|
|
|
38
38
|
const phk = new PtrArrayBuffer(8);
|
|
39
39
|
// hKey 位双来源:预定义键常量(HKEY_CURRENT_USER = 0x80000001 的 i32 形)
|
|
40
40
|
// 或真实句柄——裸 <>ptr 位收两者;符号/零扩展语义由本调用实测检验
|
|
41
|
-
const rcCreate = RegCreateKeyEx(-2147483647 /*
|
|
41
|
+
const rcCreate = RegCreateKeyEx(-2147483647 /* HKey.CURRENT_USER */, KEY, 0, NULL, 0, 983103 /* RegAccess.ALL_ACCESS */, NULL, phk, NULL);
|
|
42
42
|
t.check('create key = ERROR_SUCCESS', 0, rcCreate);
|
|
43
43
|
if (rcCreate !== 0)
|
|
44
44
|
return; // 基座失败,后续无意义
|
|
@@ -46,7 +46,7 @@ export const suite = {
|
|
|
46
46
|
t.checkTrue(`key handle non-null (${hkey})`, hkey !== 0);
|
|
47
47
|
t.section('RegSetValueEx + RegQueryValueEx: REG_SZ roundtrip');
|
|
48
48
|
const data = wbuf(MSG);
|
|
49
|
-
t.check('set REG_SZ = ERROR_SUCCESS', 0, RegSetValueEx(hkey, 'greeting', 0, 1 /*
|
|
49
|
+
t.check('set REG_SZ = ERROR_SUCCESS', 0, RegSetValueEx(hkey, 'greeting', 0, 1 /* RegType.SZ */, data, (MSG.length + 1) * 2));
|
|
50
50
|
const pType = new PtrArrayBuffer(4);
|
|
51
51
|
const pCb = new PtrArrayBuffer(4);
|
|
52
52
|
const pData = new PtrArrayBuffer(64);
|
|
@@ -61,14 +61,14 @@ export const suite = {
|
|
|
61
61
|
t.check('probe size', (MSG.length + 1) * 2, new DataView(pCb).getUint32(0, true));
|
|
62
62
|
t.section('RegOpenKeyEx: reopen + missings');
|
|
63
63
|
const phk2 = new PtrArrayBuffer(8);
|
|
64
|
-
t.check('reopen = ERROR_SUCCESS', 0, RegOpenKeyEx(-2147483647 /*
|
|
64
|
+
t.check('reopen = ERROR_SUCCESS', 0, RegOpenKeyEx(-2147483647 /* HKey.CURRENT_USER */, KEY, 0, 131097 /* RegAccess.READ */, phk2));
|
|
65
65
|
const hkey2 = readPtr(new DataView(phk2), 0);
|
|
66
66
|
t.check('missing value → ERROR_FILE_NOT_FOUND', 2, RegQueryValueEx(hkey2, 'no-such-value', NULL, NULL, NULL, NULL));
|
|
67
|
-
t.check('missing key → ERROR_FILE_NOT_FOUND', 2, RegOpenKeyEx(-2147483647 /*
|
|
67
|
+
t.check('missing key → ERROR_FILE_NOT_FOUND', 2, RegOpenKeyEx(-2147483647 /* HKey.CURRENT_USER */, KEY + 'X', 0, 131097 /* RegAccess.READ */, new PtrArrayBuffer(8)));
|
|
68
68
|
RegCloseKey(hkey2);
|
|
69
69
|
t.section('RegDeleteKey + RegCloseKey: cleanup');
|
|
70
|
-
t.check('delete key = ERROR_SUCCESS', 0, RegDeleteKey(-2147483647 /*
|
|
70
|
+
t.check('delete key = ERROR_SUCCESS', 0, RegDeleteKey(-2147483647 /* HKey.CURRENT_USER */, KEY));
|
|
71
71
|
t.check('close = ERROR_SUCCESS', 0, RegCloseKey(hkey));
|
|
72
|
-
t.check('open deleted → ERROR_FILE_NOT_FOUND', 2, RegOpenKeyEx(-2147483647 /*
|
|
72
|
+
t.check('open deleted → ERROR_FILE_NOT_FOUND', 2, RegOpenKeyEx(-2147483647 /* HKey.CURRENT_USER */, KEY, 0, 131097 /* RegAccess.READ */, new PtrArrayBuffer(8)));
|
|
73
73
|
},
|
|
74
74
|
};
|
package/test/test_registry.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as os from 'os'
|
|
2
|
-
import * as gui from 'gui'
|
|
3
2
|
import { NULL, PtrArrayBuffer } from '../lib/ffi/ctype.js'
|
|
4
3
|
import {
|
|
5
4
|
RegCloseKey, RegCreateKeyEx, RegDeleteKey, RegOpenKeyEx,
|
|
6
5
|
RegQueryValueEx, RegSetValueEx,
|
|
7
6
|
} from '../lib/windows/advapi32.js'
|
|
8
7
|
import { Tester } from './test_helper.js'
|
|
8
|
+
import { HKey, RegAccess, RegType } from '../constants'
|
|
9
9
|
|
|
10
10
|
// 跨架构读指针宽句柄(ia32 4B / x64 8B)—— 照 test_ffi.ts 的 readPtr 先例
|
|
11
11
|
function readPtr(dv: DataView, offset: number): number {
|
|
@@ -45,8 +45,8 @@ export const suite = {
|
|
|
45
45
|
const phk = new PtrArrayBuffer(8)
|
|
46
46
|
// hKey 位双来源:预定义键常量(HKEY_CURRENT_USER = 0x80000001 的 i32 形)
|
|
47
47
|
// 或真实句柄——裸 <>ptr 位收两者;符号/零扩展语义由本调用实测检验
|
|
48
|
-
const rcCreate = RegCreateKeyEx(
|
|
49
|
-
|
|
48
|
+
const rcCreate = RegCreateKeyEx(HKey.CURRENT_USER, KEY, 0, NULL, 0,
|
|
49
|
+
RegAccess.ALL_ACCESS, NULL, phk, NULL)
|
|
50
50
|
t.check('create key = ERROR_SUCCESS', 0, rcCreate)
|
|
51
51
|
if (rcCreate !== 0) return // 基座失败,后续无意义
|
|
52
52
|
const hkey = readPtr(new DataView(phk), 0)
|
|
@@ -55,7 +55,7 @@ export const suite = {
|
|
|
55
55
|
t.section('RegSetValueEx + RegQueryValueEx: REG_SZ roundtrip')
|
|
56
56
|
const data = wbuf(MSG)
|
|
57
57
|
t.check('set REG_SZ = ERROR_SUCCESS', 0,
|
|
58
|
-
RegSetValueEx(hkey, 'greeting', 0,
|
|
58
|
+
RegSetValueEx(hkey, 'greeting', 0, RegType.SZ, data, (MSG.length + 1) * 2))
|
|
59
59
|
const pType = new PtrArrayBuffer(4)
|
|
60
60
|
const pCb = new PtrArrayBuffer(4)
|
|
61
61
|
const pData = new PtrArrayBuffer(64)
|
|
@@ -75,21 +75,21 @@ export const suite = {
|
|
|
75
75
|
t.section('RegOpenKeyEx: reopen + missings')
|
|
76
76
|
const phk2 = new PtrArrayBuffer(8)
|
|
77
77
|
t.check('reopen = ERROR_SUCCESS', 0,
|
|
78
|
-
RegOpenKeyEx(
|
|
78
|
+
RegOpenKeyEx(HKey.CURRENT_USER, KEY, 0, RegAccess.READ, phk2))
|
|
79
79
|
const hkey2 = readPtr(new DataView(phk2), 0)
|
|
80
80
|
t.check('missing value → ERROR_FILE_NOT_FOUND', 2,
|
|
81
81
|
RegQueryValueEx(hkey2, 'no-such-value', NULL, NULL, NULL, NULL))
|
|
82
82
|
t.check('missing key → ERROR_FILE_NOT_FOUND', 2,
|
|
83
|
-
RegOpenKeyEx(
|
|
83
|
+
RegOpenKeyEx(HKey.CURRENT_USER, KEY + 'X', 0, RegAccess.READ,
|
|
84
84
|
new PtrArrayBuffer(8)))
|
|
85
85
|
RegCloseKey(hkey2)
|
|
86
86
|
|
|
87
87
|
t.section('RegDeleteKey + RegCloseKey: cleanup')
|
|
88
88
|
t.check('delete key = ERROR_SUCCESS', 0,
|
|
89
|
-
RegDeleteKey(
|
|
89
|
+
RegDeleteKey(HKey.CURRENT_USER, KEY))
|
|
90
90
|
t.check('close = ERROR_SUCCESS', 0, RegCloseKey(hkey))
|
|
91
91
|
t.check('open deleted → ERROR_FILE_NOT_FOUND', 2,
|
|
92
|
-
RegOpenKeyEx(
|
|
92
|
+
RegOpenKeyEx(HKey.CURRENT_USER, KEY, 0, RegAccess.READ,
|
|
93
93
|
new PtrArrayBuffer(8)))
|
|
94
94
|
},
|
|
95
95
|
}
|
|
@@ -115,7 +115,7 @@ export const suite = {
|
|
|
115
115
|
sock.set_on_event(s, (event) => {
|
|
116
116
|
if (done)
|
|
117
117
|
return;
|
|
118
|
-
if (event.lNetworkEvents & 16 /*
|
|
118
|
+
if (event.lNetworkEvents & 16 /* FdEvent.FD_CONNECT */) {
|
|
119
119
|
if (event.iErrorCode[0] !== 0) {
|
|
120
120
|
assert('connect error code 0', false);
|
|
121
121
|
finish();
|
|
@@ -129,7 +129,7 @@ export const suite = {
|
|
|
129
129
|
finish();
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
-
wolfssl.wolfSSL_CTX_set_verify(ctx, 0 /*
|
|
132
|
+
wolfssl.wolfSSL_CTX_set_verify(ctx, 0 /* VerifyMode.SSL_VERIFY_NONE */);
|
|
133
133
|
ssl = wolfssl.wolfSSL_new(ctx);
|
|
134
134
|
if (!ssl) {
|
|
135
135
|
assert('SSL_new', false);
|
|
@@ -137,11 +137,11 @@ export const suite = {
|
|
|
137
137
|
return;
|
|
138
138
|
}
|
|
139
139
|
wolfssl.wolfSSL_set_fd(ssl, sock.get_fd(s));
|
|
140
|
-
wolfssl.wolfSSL_UseSNI(ssl, 0 /*
|
|
140
|
+
wolfssl.wolfSSL_UseSNI(ssl, 0 /* SniType.WOLFSSL_SNI_HOST_NAME */, 'localhost');
|
|
141
141
|
// kick handshake immediately (FD_WRITE may not re-fire)
|
|
142
142
|
{
|
|
143
143
|
const ret = wolfssl.wolfSSL_connect(ssl);
|
|
144
|
-
if (ret === 1 /*
|
|
144
|
+
if (ret === 1 /* ReturnCode.SSL_SUCCESS */) {
|
|
145
145
|
handshakeDone = true;
|
|
146
146
|
sendReq();
|
|
147
147
|
}
|
|
@@ -154,13 +154,13 @@ export const suite = {
|
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
if ((event.lNetworkEvents & 1 /*
|
|
158
|
-
(event.lNetworkEvents & 2 /*
|
|
157
|
+
if ((event.lNetworkEvents & 1 /* FdEvent.FD_READ */) ||
|
|
158
|
+
(event.lNetworkEvents & 2 /* FdEvent.FD_WRITE */)) {
|
|
159
159
|
if (!ssl)
|
|
160
160
|
return;
|
|
161
161
|
if (!handshakeDone) {
|
|
162
162
|
const ret = wolfssl.wolfSSL_connect(ssl);
|
|
163
|
-
if (ret === 1 /*
|
|
163
|
+
if (ret === 1 /* ReturnCode.SSL_SUCCESS */) {
|
|
164
164
|
handshakeDone = true;
|
|
165
165
|
sendReq();
|
|
166
166
|
}
|
|
@@ -176,7 +176,7 @@ export const suite = {
|
|
|
176
176
|
if (sentRequest)
|
|
177
177
|
onReadable();
|
|
178
178
|
}
|
|
179
|
-
if (event.lNetworkEvents & 32 /*
|
|
179
|
+
if (event.lNetworkEvents & 32 /* FdEvent.FD_CLOSE */) {
|
|
180
180
|
// drain remaining then finish
|
|
181
181
|
if (ssl && sentRequest && !sawNonNumber) {
|
|
182
182
|
onReadable();
|