quickwin 2.1.0 → 2.2.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.
Files changed (45) hide show
  1. package/README.en.md +8 -8
  2. package/README.md +6 -7
  3. package/examples/{exec_server.js → execd.js} +618 -228
  4. package/examples/execd.tsx +798 -0
  5. package/examples/execd_worker.js +122 -0
  6. package/examples/execd_worker.ts +127 -0
  7. package/examples/pdf_viewer.js +100 -111
  8. package/examples/test_gallery.js +100 -111
  9. package/examples/test_react_lazy.js +96 -109
  10. package/examples/test_react_listbox.js +96 -109
  11. package/examples/test_root_window.js +96 -109
  12. package/examples/test_tab.js +96 -109
  13. package/lib/ffi/ctype.ts +3 -1
  14. package/lib/ffi/struct.js +23 -7
  15. package/lib/ffi/struct.ts +50 -23
  16. package/lib/http-server.js +1 -1
  17. package/lib/http-server.ts +1 -1
  18. package/lib/windows/gdi32.js +1 -1
  19. package/lib/windows/gdi32.ts +1 -1
  20. package/lib/windows/structs.js +176 -92
  21. package/lib/windows/structs.ts +216 -92
  22. package/package.json +1 -1
  23. package/quickwin_const.d.ts +26 -0
  24. package/qwin-nowasm-x86.exe +0 -0
  25. package/qwin-nowasm.exe +0 -0
  26. package/qwin-x86.exe +0 -0
  27. package/qwin.exe +0 -0
  28. package/test/test_ffi_bind.js +5 -3
  29. package/test/test_ffi_bind.ts +6 -4
  30. package/test/test_ffi_struct.js +58 -24
  31. package/test/test_ffi_struct.ts +55 -25
  32. package/test/test_gdi_draw.js +1 -1
  33. package/test/test_gdi_draw.ts +1 -1
  34. package/test/test_react_complex.js +96 -109
  35. package/test/test_react_counter.js +96 -109
  36. package/test/test_react_flex.js +96 -109
  37. package/test/test_react_hidden.js +96 -109
  38. package/test/test_react_listview_link.js +96 -109
  39. package/test/test_react_notify.js +96 -109
  40. package/test/test_react_render.js +96 -109
  41. package/examples/exec_server.tsx +0 -489
  42. package/examples/exec_server_worker.js +0 -395
  43. package/examples/exec_server_worker.ts +0 -417
  44. package/examples/setres.js +0 -79
  45. package/examples/setres.ts +0 -86
@@ -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
- __struct: t,
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 RECT = /* @__PURE__ */ struct("RECT", {
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 POINT = /* @__PURE__ */ struct("POINT", {
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 SIZE = /* @__PURE__ */ struct("SIZE", {
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 LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", {
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 OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", {
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 BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", {
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 NMHDR = /* @__PURE__ */ struct("NMHDR", {
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 SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", {
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 NMDATETIMECHANGE = /* @__PURE__ */ struct("NMDATETIMECHANGE", {
16448
- hdr: NMHDR.__struct,
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: SYSTEMTIME.__struct
16451
- });
16452
- var LITEM = /* @__PURE__ */ struct("LITEM", {
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 NMLINK = /* @__PURE__ */ struct("NMLINK", {
16461
- hdr: NMHDR.__struct,
16462
- item: LITEM.__struct
16463
- });
16464
- var NMCUSTOMDRAW = /* @__PURE__ */ struct("NMCUSTOMDRAW", {
16465
- hdr: NMHDR.__struct,
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 NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", {
16474
- hdr: NMHDR.__struct,
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 NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", {
16487
- hdr: NMHDR.__struct,
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 TCITEMW = /* @__PURE__ */ struct("TCITEMW", {
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 TVITEM = /* @__PURE__ */ struct("TVITEM", {
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 TVINSERTSTRUCT = /* @__PURE__ */ struct("TVINSERTSTRUCT", {
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: TVITEM.__struct
16521
- });
16522
- var LVHITTESTINFO = /* @__PURE__ */ struct("LVHITTESTINFO", {
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 LVITEMW = /* @__PURE__ */ struct("LVITEMW", {
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 LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
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,8 @@ var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
16555
16558
  cxMin: "i32",
16556
16559
  cxDefault: "i32",
16557
16560
  cxIdeal: "i32"
16558
- });
16559
- var MSG = /* @__PURE__ */ struct("MSG", {
16560
- hwnd: "<HWND>ptr",
16561
- message: "u32",
16562
- wParam: "<>ptr",
16563
- lParam: "<>ptr",
16564
- time: "u32",
16565
- pt: POINT.__struct
16566
- });
16567
- var PAINTSTRUCT = /* @__PURE__ */ struct("PAINTSTRUCT", {
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);
16575
16563
 
16576
16564
  // _build/lib/windows/user32.js
16577
16565
  var b = (name, sig, encoders) => bind("user32.dll", name, sig, encoders);
@@ -16605,7 +16593,6 @@ import * as os4 from "os";
16605
16593
 
16606
16594
  // _build/lib/windows/gdi32.js
16607
16595
  var b2 = (name, sig, encoders) => bind("gdi32.dll", name, sig, encoders);
16608
- var POINTArr = structArray(POINT);
16609
16596
  var DeleteObject = /* @__PURE__ */ b2("DeleteObject", "<HGDIOBJ>ptr -> i32");
16610
16597
  var GetDeviceCaps = /* @__PURE__ */ b2("GetDeviceCaps", "<HDC>ptr! i32@DeviceCap -> i32");
16611
16598
  var CreateFontIndirect = /* @__PURE__ */ b2("CreateFontIndirectW", "<LOGFONTW>ptr -> <HGDIOBJ>ptr", { LOGFONTW });
@@ -16277,7 +16277,7 @@ function doEncode(dv, base, fields, v) {
16277
16277
  function createStruct(t) {
16278
16278
  const { fields, size, maxEffectiveAlign } = computeStructLayout(t);
16279
16279
  return {
16280
- __struct: t,
16280
+ fields,
16281
16281
  size,
16282
16282
  structAlign: maxEffectiveAlign,
16283
16283
  decode: (p) => {
@@ -16306,6 +16306,14 @@ function createStruct(t) {
16306
16306
  };
16307
16307
  }
16308
16308
  function buildDecl(kind, member, pack) {
16309
+ const declKind = member["#"];
16310
+ if (declKind !== void 0 && declKind !== kind)
16311
+ throw new Error(`ffi-struct: ${kind}() received a '${String(declKind)}' declaration (kind mismatch \u2014 use ${declKind}() for it)`);
16312
+ const declPack = member["#pack"];
16313
+ if (pack === void 0 && declPack !== void 0)
16314
+ pack = declPack;
16315
+ else if (pack !== void 0 && declPack !== void 0 && pack !== declPack)
16316
+ throw new Error(`ffi-struct: #pack conflict: opts.pack=${pack} vs declaration ${String(declPack)}`);
16309
16317
  const decl = { "#": kind };
16310
16318
  if (pack !== void 0)
16311
16319
  decl["#pack"] = pack;
@@ -16314,49 +16322,6 @@ function buildDecl(kind, member, pack) {
16314
16322
  decl[k] = v;
16315
16323
  return decl;
16316
16324
  }
16317
- function structArray(def) {
16318
- const { fields, size } = computeStructLayout(def.__struct);
16319
- const readN = (dv, n) => {
16320
- const out = [];
16321
- for (let i = 0; i < n; i++)
16322
- out.push(doDecode(dv, i * size, fields));
16323
- return out;
16324
- };
16325
- return {
16326
- encode: (els) => {
16327
- if (!Array.isArray(els) || els.length === 0)
16328
- throw new Error(`ffi-struct: structArray(def).encode(els) requires a non-empty element array (pass NULL for an empty pointer position)`);
16329
- const out = def.alloc(els.length);
16330
- for (let i = 0; i < els.length; i++)
16331
- def.encode(els[i], out, i * def.size);
16332
- return out;
16333
- },
16334
- decode: ((p, count) => {
16335
- if (count !== void 0 && (!Number.isInteger(count) || count < 0))
16336
- throw new Error(`ffi-struct: structArray.decode(p, count) requires a non-negative integer count, got ${count}`);
16337
- if (typeof p === "number") {
16338
- if (count === void 0)
16339
- throw new Error(`ffi-struct: structArray.decode(address, count) requires an explicit count (a bare address carries no length)`);
16340
- if (count === 0)
16341
- return [];
16342
- return readN(new DataView(ffi2.readBytes(p, count * size)), count);
16343
- }
16344
- let n;
16345
- if (count !== void 0) {
16346
- n = count;
16347
- if (n * size > p.byteLength)
16348
- throw new Error(`ffi-struct: structArray.decode: count ${n} \xD7 size ${size} = ${n * size} exceeds buffer byteLength ${p.byteLength}`);
16349
- } else {
16350
- if (p.byteLength % size !== 0)
16351
- throw new Error(`ffi-struct: structArray.decode: byteLength ${p.byteLength} is not a multiple of size ${size} (mixed buffer? pass count explicitly)`);
16352
- n = p.byteLength / size;
16353
- }
16354
- if (n === 0)
16355
- return [];
16356
- return readN(new DataView(p), n);
16357
- })
16358
- };
16359
- }
16360
16325
  function struct(a, b6, c) {
16361
16326
  const isNamed = typeof a === "string";
16362
16327
  const raw = isNamed ? b6 : a;
@@ -16365,21 +16330,28 @@ function struct(a, b6, c) {
16365
16330
  }
16366
16331
 
16367
16332
  // _build/lib/windows/structs.js
16368
- var RECT = /* @__PURE__ */ struct("RECT", {
16333
+ var RECT_DECL = {
16334
+ "#": "struct",
16369
16335
  left: "i32",
16370
16336
  top: "i32",
16371
16337
  right: "i32",
16372
16338
  bottom: "i32"
16373
- });
16374
- var POINT = /* @__PURE__ */ struct("POINT", {
16339
+ };
16340
+ var RECT = /* @__PURE__ */ struct("RECT", RECT_DECL);
16341
+ var POINT_DECL = {
16342
+ "#": "struct",
16375
16343
  x: "i32",
16376
16344
  y: "i32"
16377
- });
16378
- var SIZE = /* @__PURE__ */ struct("SIZE", {
16345
+ };
16346
+ var POINT = /* @__PURE__ */ struct("POINT", POINT_DECL);
16347
+ var SIZE_DECL = {
16348
+ "#": "struct",
16379
16349
  cx: "i32",
16380
16350
  cy: "i32"
16381
- });
16382
- var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", {
16351
+ };
16352
+ var SIZE = /* @__PURE__ */ struct("SIZE", SIZE_DECL);
16353
+ var LOGFONTW_DECL = {
16354
+ "#": "struct",
16383
16355
  lfHeight: "i32",
16384
16356
  lfWidth: "i32",
16385
16357
  lfEscapement: "i32",
@@ -16394,8 +16366,10 @@ var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", {
16394
16366
  lfQuality: "u8",
16395
16367
  lfPitchAndFamily: "u8",
16396
16368
  lfFaceName: "u16[32]@utf-16le"
16397
- });
16398
- var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", {
16369
+ };
16370
+ var LOGFONTW = /* @__PURE__ */ struct("LOGFONTW", LOGFONTW_DECL);
16371
+ var OPENFILENAMEW_DECL = {
16372
+ "#": "struct",
16399
16373
  lStructSize: "u32",
16400
16374
  hwndOwner: "<HWND>ptr",
16401
16375
  hInstance: "<HMODULE>ptr",
@@ -16419,8 +16393,10 @@ var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", {
16419
16393
  pvReserved: "<>ptr",
16420
16394
  dwReserved: "u32",
16421
16395
  FlagsEx: "u32"
16422
- });
16423
- var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", {
16396
+ };
16397
+ var OPENFILENAMEW = /* @__PURE__ */ struct("OPENFILENAMEW", OPENFILENAMEW_DECL);
16398
+ var BROWSEINFOW_DECL = {
16399
+ "#": "struct",
16424
16400
  hwndOwner: "<HWND>ptr",
16425
16401
  pidlRoot: "<>ptr",
16426
16402
  pszDisplayName: "<>ptr",
@@ -16429,13 +16405,17 @@ var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", {
16429
16405
  lpfn: "<>ptr",
16430
16406
  lParam: "<>ptr",
16431
16407
  iImage: "i32"
16432
- });
16433
- var NMHDR = /* @__PURE__ */ struct("NMHDR", {
16408
+ };
16409
+ var BROWSEINFOW = /* @__PURE__ */ struct("BROWSEINFOW", BROWSEINFOW_DECL);
16410
+ var NMHDR_DECL = {
16411
+ "#": "struct",
16434
16412
  hwndFrom: "<HWND>ptr",
16435
16413
  idFrom: "<>ptr",
16436
16414
  code: "i32"
16437
- });
16438
- var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", {
16415
+ };
16416
+ var NMHDR = /* @__PURE__ */ struct("NMHDR", NMHDR_DECL);
16417
+ var SYSTEMTIME_DECL = {
16418
+ "#": "struct",
16439
16419
  wYear: "u16",
16440
16420
  wMonth: "u16",
16441
16421
  wDayOfWeek: "u16",
@@ -16444,35 +16424,44 @@ var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", {
16444
16424
  wMinute: "u16",
16445
16425
  wSecond: "u16",
16446
16426
  wMilliseconds: "u16"
16447
- });
16448
- var NMDATETIMECHANGE = /* @__PURE__ */ struct("NMDATETIMECHANGE", {
16449
- hdr: NMHDR.__struct,
16427
+ };
16428
+ var SYSTEMTIME = /* @__PURE__ */ struct("SYSTEMTIME", SYSTEMTIME_DECL);
16429
+ var NMDATETIMECHANGE_DECL = {
16430
+ "#": "struct",
16431
+ hdr: NMHDR_DECL,
16450
16432
  dwFlags: "u32",
16451
- st: SYSTEMTIME.__struct
16452
- });
16453
- var LITEM = /* @__PURE__ */ struct("LITEM", {
16433
+ st: SYSTEMTIME_DECL
16434
+ };
16435
+ var NMDATETIMECHANGE = /* @__PURE__ */ struct("NMDATETIMECHANGE", NMDATETIMECHANGE_DECL);
16436
+ var LITEM_DECL = {
16437
+ "#": "struct",
16454
16438
  mask: "u32",
16455
16439
  iLink: "i32",
16456
16440
  state: "u32",
16457
16441
  stateMask: "u32",
16458
16442
  szID: "u16[48]@utf-16le",
16459
16443
  szUrl: "u16[2084]@utf-16le"
16460
- });
16461
- var NMLINK = /* @__PURE__ */ struct("NMLINK", {
16462
- hdr: NMHDR.__struct,
16463
- item: LITEM.__struct
16464
- });
16465
- var NMCUSTOMDRAW = /* @__PURE__ */ struct("NMCUSTOMDRAW", {
16466
- hdr: NMHDR.__struct,
16444
+ };
16445
+ var NMLINK_DECL = {
16446
+ "#": "struct",
16447
+ hdr: NMHDR_DECL,
16448
+ item: LITEM_DECL
16449
+ };
16450
+ var NMLINK = /* @__PURE__ */ struct("NMLINK", NMLINK_DECL);
16451
+ var NMCUSTOMDRAW_DECL = {
16452
+ "#": "struct",
16453
+ hdr: NMHDR_DECL,
16467
16454
  dwDrawStage: "u32",
16468
16455
  hdc: "<HDC>ptr",
16469
16456
  rc: "i32[4]",
16470
16457
  dwItemSpec: "<>ptr",
16471
16458
  uItemState: "u32",
16472
16459
  lItemlParam: "<>ptr"
16473
- });
16474
- var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", {
16475
- hdr: NMHDR.__struct,
16460
+ };
16461
+ var NMCUSTOMDRAW = /* @__PURE__ */ struct("NMCUSTOMDRAW", NMCUSTOMDRAW_DECL);
16462
+ var NMLVCUSTOMDRAW_DECL = {
16463
+ "#": "struct",
16464
+ hdr: NMHDR_DECL,
16476
16465
  dwDrawStage: "u32",
16477
16466
  hdc: "<HDC>ptr",
16478
16467
  rc: "i32[4]",
@@ -16483,9 +16472,11 @@ var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", {
16483
16472
  clrTextBk: "u32",
16484
16473
  iSubItem: "i32",
16485
16474
  dwItemType: "u32"
16486
- });
16487
- var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", {
16488
- hdr: NMHDR.__struct,
16475
+ };
16476
+ var NMLVCUSTOMDRAW = /* @__PURE__ */ struct("NMLVCUSTOMDRAW", NMLVCUSTOMDRAW_DECL);
16477
+ var NMLISTVIEW_DECL = {
16478
+ "#": "struct",
16479
+ hdr: NMHDR_DECL,
16489
16480
  iItem: "i32",
16490
16481
  iSubItem: "i32",
16491
16482
  uNewState: "u32",
@@ -16493,8 +16484,10 @@ var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", {
16493
16484
  uChanged: "u32",
16494
16485
  ptAction: "i32[2]",
16495
16486
  lParam: "<>ptr"
16496
- });
16497
- var TCITEMW = /* @__PURE__ */ struct("TCITEMW", {
16487
+ };
16488
+ var NMLISTVIEW = /* @__PURE__ */ struct("NMLISTVIEW", NMLISTVIEW_DECL);
16489
+ var TCITEMW_DECL = {
16490
+ "#": "struct",
16498
16491
  mask: "u32",
16499
16492
  dwState: "u32",
16500
16493
  dwStateMask: "u32",
@@ -16502,8 +16495,10 @@ var TCITEMW = /* @__PURE__ */ struct("TCITEMW", {
16502
16495
  cchTextMax: "i32",
16503
16496
  iImage: "i32",
16504
16497
  lParam: "<>ptr"
16505
- });
16506
- var TVITEM = /* @__PURE__ */ struct("TVITEM", {
16498
+ };
16499
+ var TCITEMW = /* @__PURE__ */ struct("TCITEMW", TCITEMW_DECL);
16500
+ var TVITEM_DECL = {
16501
+ "#": "struct",
16507
16502
  mask: "u32",
16508
16503
  hItem: "<>ptr",
16509
16504
  state: "u32",
@@ -16514,20 +16509,26 @@ var TVITEM = /* @__PURE__ */ struct("TVITEM", {
16514
16509
  iSelectedImage: "i32",
16515
16510
  cChildren: "i32",
16516
16511
  lParam: "<>ptr"
16517
- });
16518
- var TVINSERTSTRUCT = /* @__PURE__ */ struct("TVINSERTSTRUCT", {
16512
+ };
16513
+ var TVITEM = /* @__PURE__ */ struct("TVITEM", TVITEM_DECL);
16514
+ var TVINSERTSTRUCT_DECL = {
16515
+ "#": "struct",
16519
16516
  hParent: "<>ptr",
16520
16517
  hInsertAfter: "<>ptr",
16521
- item: TVITEM.__struct
16522
- });
16523
- var LVHITTESTINFO = /* @__PURE__ */ struct("LVHITTESTINFO", {
16518
+ item: TVITEM_DECL
16519
+ };
16520
+ var TVINSERTSTRUCT = /* @__PURE__ */ struct("TVINSERTSTRUCT", TVINSERTSTRUCT_DECL);
16521
+ var LVHITTESTINFO_DECL = {
16522
+ "#": "struct",
16524
16523
  pt: "i32[2]",
16525
16524
  flags: "u32",
16526
16525
  iItem: "i32",
16527
16526
  iSubItem: "i32",
16528
16527
  iGroup: "i32"
16529
- });
16530
- var LVITEMW = /* @__PURE__ */ struct("LVITEMW", {
16528
+ };
16529
+ var LVHITTESTINFO = /* @__PURE__ */ struct("LVHITTESTINFO", LVHITTESTINFO_DECL);
16530
+ var LVITEMW_DECL = {
16531
+ "#": "struct",
16531
16532
  mask: "u32",
16532
16533
  iItem: "i32",
16533
16534
  iSubItem: "i32",
@@ -16543,8 +16544,10 @@ var LVITEMW = /* @__PURE__ */ struct("LVITEMW", {
16543
16544
  puColumns: "<>ptr",
16544
16545
  piColFmt: "<>ptr",
16545
16546
  iGroup: "i32"
16546
- });
16547
- var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
16547
+ };
16548
+ var LVITEMW = /* @__PURE__ */ struct("LVITEMW", LVITEMW_DECL);
16549
+ var LVCOLUMNW_DECL = {
16550
+ "#": "struct",
16548
16551
  mask: "u32",
16549
16552
  fmt: "i32",
16550
16553
  cx: "i32",
@@ -16556,23 +16559,8 @@ var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", {
16556
16559
  cxMin: "i32",
16557
16560
  cxDefault: "i32",
16558
16561
  cxIdeal: "i32"
16559
- });
16560
- var MSG = /* @__PURE__ */ struct("MSG", {
16561
- hwnd: "<HWND>ptr",
16562
- message: "u32",
16563
- wParam: "<>ptr",
16564
- lParam: "<>ptr",
16565
- time: "u32",
16566
- pt: POINT.__struct
16567
- });
16568
- var PAINTSTRUCT = /* @__PURE__ */ struct("PAINTSTRUCT", {
16569
- hdc: "<HDC>ptr",
16570
- fErase: "i32",
16571
- rcPaint: RECT.__struct,
16572
- fRestore: "i32",
16573
- fIncUpdate: "i32",
16574
- rgbReserved: "u8[32]"
16575
- });
16562
+ };
16563
+ var LVCOLUMNW = /* @__PURE__ */ struct("LVCOLUMNW", LVCOLUMNW_DECL);
16576
16564
 
16577
16565
  // _build/lib/windows/user32.js
16578
16566
  var b = (name, sig, encoders) => bind("user32.dll", name, sig, encoders);
@@ -16606,7 +16594,6 @@ import * as os4 from "os";
16606
16594
 
16607
16595
  // _build/lib/windows/gdi32.js
16608
16596
  var b2 = (name, sig, encoders) => bind("gdi32.dll", name, sig, encoders);
16609
- var POINTArr = structArray(POINT);
16610
16597
  var DeleteObject = /* @__PURE__ */ b2("DeleteObject", "<HGDIOBJ>ptr -> i32");
16611
16598
  var GetDeviceCaps = /* @__PURE__ */ b2("GetDeviceCaps", "<HDC>ptr! i32@DeviceCap -> i32");
16612
16599
  var CreateFontIndirect = /* @__PURE__ */ b2("CreateFontIndirectW", "<LOGFONTW>ptr -> <HGDIOBJ>ptr", { LOGFONTW });