quickwin 2.3.1 → 3.0.1
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 +1 -2
- package/README.md +1 -2
- package/constants.ts +15 -0
- package/enum_map.d.ts +3 -0
- package/examples/PdfCanvas.js +1 -1
- package/examples/PdfCanvas.tsx +2 -2
- package/examples/execd/main.js +334 -188
- package/examples/pdf_preview2.js +76 -67
- package/examples/pdf_preview2.ts +84 -64
- package/examples/pdf_viewer.js +4932 -1029
- package/examples/pdf_viewer.tsx +11 -22
- package/examples/test_gallery.js +308 -143
- package/examples/test_gallery.tsx +12 -7
- package/examples/test_react_lazy.js +295 -133
- package/examples/test_react_lazy.tsx +4 -3
- package/examples/test_react_listbox.js +293 -132
- package/examples/test_react_listbox.tsx +3 -2
- package/examples/test_root_window.js +283 -126
- package/examples/test_tab.js +295 -133
- package/examples/test_tab.tsx +4 -3
- package/examples/tray_demo.js +37 -30
- package/examples/tray_demo.tsx +39 -32
- package/lib/abort.d.ts +21 -0
- package/lib/assert.d.ts +2 -0
- package/lib/bitmap.d.ts +7 -0
- package/lib/bitmap.js +40 -0
- package/lib/cache-utils.d.ts +6 -0
- package/lib/certs.d.ts +1 -0
- package/lib/certs.js +31 -3
- package/lib/dpi.d.ts +9 -0
- package/lib/dpi.js +30 -0
- package/lib/dumpRects.d.ts +2 -0
- package/lib/dumpRects.js +14 -7
- package/lib/exec-log.d.ts +23 -0
- package/lib/fetch.d.ts +4 -0
- package/lib/ffi/bind.d.ts +70 -0
- package/lib/ffi/bind.js +5 -4
- package/lib/ffi/ctype.d.ts +117 -0
- package/lib/ffi/index.d.ts +2 -0
- package/lib/ffi/struct.d.ts +174 -0
- package/lib/http-common.d.ts +143 -0
- package/lib/http-server.d.ts +59 -0
- package/lib/polyfill.d.ts +22 -0
- package/lib/react-qw/components/Button.d.ts +9 -0
- package/lib/react-qw/components/CheckBox.d.ts +11 -0
- package/lib/react-qw/components/ComboBox.d.ts +11 -0
- package/lib/react-qw/components/DateTimePicker.d.ts +15 -0
- package/lib/react-qw/components/DateTimePicker.js +6 -7
- package/lib/react-qw/components/Input.d.ts +15 -0
- package/lib/react-qw/components/Input.js +5 -1
- package/lib/react-qw/components/Link.d.ts +12 -0
- package/lib/react-qw/components/ListBox.d.ts +13 -0
- package/lib/react-qw/components/ListView.d.ts +37 -0
- package/lib/react-qw/components/ListView.js +8 -6
- package/lib/react-qw/components/PathPicker.d.ts +23 -0
- package/lib/react-qw/components/ProgressBar.d.ts +9 -0
- package/lib/react-qw/components/RadioButton.d.ts +11 -0
- package/lib/react-qw/components/ScrollView.d.ts +9 -0
- package/lib/react-qw/components/ScrollView.js +28 -22
- package/lib/react-qw/components/Slider.d.ts +12 -0
- package/lib/react-qw/components/Tab.d.ts +14 -0
- package/lib/react-qw/components/Tooltip.d.ts +7 -0
- package/lib/react-qw/components/TreeView.d.ts +18 -0
- package/lib/react-qw/components/index.d.ts +16 -0
- package/lib/react-qw/index.d.ts +24 -0
- package/lib/react-qw/index.js +7 -5
- package/lib/react-qw/layout.d.ts +29 -0
- package/lib/react-qw/nmhdr.d.ts +1 -0
- package/lib/react-qw/props.d.ts +2 -0
- package/lib/react-qw/props.js +3 -3
- package/lib/react-qw/reconciler.d.ts +21 -0
- package/lib/react-qw/reconciler.js +12 -17
- package/lib/stream.d.ts +20 -0
- package/lib/text-codec.d.ts +39 -0
- package/lib/text-measure.d.ts +14 -0
- package/lib/text-measure.js +9 -6
- package/lib/url.d.ts +54 -0
- package/lib/websocket.d.ts +73 -0
- package/lib/windows/{advapi32.ts → advapi32.d.ts} +6 -21
- package/lib/windows/comctl32.d.ts +14 -0
- package/lib/windows/comctl32.js +3 -2
- package/lib/windows/comdlg32.d.ts +4 -0
- package/lib/windows/{gdi32.ts → gdi32.d.ts} +184 -97
- package/lib/windows/gdi32.js +28 -6
- package/lib/windows/{kernel32.ts → kernel32.d.ts} +145 -113
- package/lib/windows/kernel32.js +9 -0
- package/lib/windows/{msimg32.ts → msimg32.d.ts} +11 -14
- package/lib/windows/ntdll.d.ts +5 -0
- package/lib/windows/ole32.d.ts +3 -0
- package/lib/windows/{psapi.ts → psapi.d.ts} +9 -18
- package/lib/windows/shell32.d.ts +51 -0
- package/lib/windows/shell32.js +11 -2
- package/lib/windows/structs.d.ts +3141 -0
- package/lib/windows/structs.js +51 -0
- package/lib/windows/user32.d.ts +623 -0
- package/lib/windows/user32.js +6 -5
- package/lib/windows/version.d.ts +27 -0
- package/lib/windows/{winspool.ts → winspool.d.ts} +18 -32
- package/main.js +13 -5
- package/package.json +16 -7
- package/quickwin.d.ts +13 -115
- 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/bench_ffi_callraw.js +3 -4
- package/test/bench_ffi_callraw.ts +3 -4
- package/test/debug/mupdf_debug.js +4 -22
- package/test/debug/wasm_export_debug.js +2 -12
- package/test/debug/wasm_names.js +3 -13
- package/test/example.pdf +0 -0
- package/test/mupdf-cdn.js +40 -0
- package/test/mupdf-cdn.ts +43 -0
- package/test/test_ffi.js +8 -9
- package/test/test_ffi.ts +8 -9
- package/test/test_ffi_abi.js +6 -6
- package/test/test_ffi_abi.ts +8 -8
- package/test/test_ffi_windows.js +82 -11
- package/test/test_ffi_windows.ts +85 -11
- package/test/test_gdi_draw.js +3 -3
- package/test/test_gdi_draw.ts +4 -4
- package/test/test_mupdf_render.js +4 -22
- package/test/test_mupdf_render.ts +4 -23
- package/test/test_mupdf_twice.js +4 -19
- package/test/test_mupdf_twice.ts +4 -20
- package/test/test_mupdf_wasm.js +10 -4
- package/test/test_mupdf_wasm.ts +6 -4
- package/test/test_react_complex.js +316 -140
- package/test/test_react_counter.js +295 -133
- package/test/test_react_flex.js +297 -138
- package/test/test_react_hidden.js +296 -134
- package/test/test_react_listview_link.js +288 -131
- package/test/test_react_notify.js +290 -133
- package/test/test_react_render.js +295 -133
- package/lib/abort.ts +0 -69
- package/lib/assert.ts +0 -7
- package/lib/cache-utils.ts +0 -40
- package/lib/certs.ts +0 -229
- package/lib/dumpRects.ts +0 -26
- package/lib/exec-log.ts +0 -30
- package/lib/fetch.ts +0 -589
- package/lib/ffi/bind.ts +0 -539
- package/lib/ffi/ctype.ts +0 -371
- package/lib/ffi/index.ts +0 -6
- package/lib/ffi/struct.ts +0 -780
- package/lib/http-common.ts +0 -441
- package/lib/http-server.ts +0 -604
- package/lib/polyfill.ts +0 -171
- package/lib/react-qw/components/index.ts +0 -17
- package/lib/react-qw/index.ts +0 -96
- package/lib/react-qw/layout.ts +0 -111
- package/lib/react-qw/nmhdr.ts +0 -7
- package/lib/react-qw/props.ts +0 -41
- package/lib/react-qw/reconciler.ts +0 -383
- package/lib/stream.ts +0 -22
- package/lib/text-codec.ts +0 -171
- package/lib/text-measure.ts +0 -41
- package/lib/url.ts +0 -201
- package/lib/websocket.ts +0 -600
- package/lib/windows/comctl32.ts +0 -19
- package/lib/windows/comdlg32.ts +0 -10
- package/lib/windows/ntdll.ts +0 -11
- package/lib/windows/ole32.ts +0 -9
- package/lib/windows/shell32.ts +0 -39
- package/lib/windows/structs.ts +0 -752
- package/lib/windows/user32.ts +0 -619
- package/lib/windows/version.ts +0 -35
- package/vendor/mupdf-wasm/mupdf-wasm.d.ts +0 -571
- package/vendor/mupdf-wasm/mupdf-wasm.js +0 -2749
- package/vendor/mupdf-wasm/mupdf-wasm.wasm +0 -0
- package/vendor/mupdf-wasm/mupdf.d.ts +0 -939
- package/vendor/mupdf-wasm/mupdf.js +0 -3317
|
@@ -1,55 +1,51 @@
|
|
|
1
|
-
// gdi32 绑定(品牌约定见 lib/windows/user32.ts 头注释):
|
|
2
|
-
// - HDC 出入参用 <HDC>ptr(品牌指针 Ptr<'HDC'>,与 user32 的 GetDC/ReleaseDC 同型互认)
|
|
3
|
-
// - GDI 对象通用句柄统一 <HGDIOBJ>ptr(HBRUSH/HPEN/HFONT/HBITMAP/HRGN 在 Win32 同为
|
|
4
|
-
// HGDIOBJ):创建/选入/取出/删除全链同品牌闭环,拦 DeleteObject(hdc) 类异种误传;
|
|
5
|
-
// user32 结构里的 HBRUSH 字段仍收裸位——品牌值赋给裸 number 位天然兼容
|
|
6
|
-
// - 结构位按方向分流:CreateFontIndirect 的 LOGFONTW 是纯入参位,注册 encoder 收
|
|
7
|
-
// DeepPartial 对象直传(缺省字段跳过 = 保持 0 合法零值语义)
|
|
8
|
-
import { bind, type CodecMap } from '../ffi/bind.js'
|
|
9
|
-
import { structArray } from '../ffi/struct.js'
|
|
10
|
-
import { LOGFONTW, POINT, RECT } from './structs.js'
|
|
11
|
-
|
|
12
|
-
// dll 名部分应用(工厂转调保泛型 infer,见 lib/windows/user32.ts 头注释;第三参透传 encoders)
|
|
13
|
-
const b = <const S extends string, const LE extends CodecMap = {}>(name: string, sig: S, encoders?: LE) =>
|
|
14
|
-
bind('gdi32.dll', name, sig, encoders)
|
|
15
|
-
|
|
16
|
-
// 点数组编解码对(Polyline/Polygon/PlgBlt 共享):注册后 <POINT>ptr 位收元素数组
|
|
17
|
-
// (值域由 encoder 推导),C 侧 NULL 位传 NULL(number 直通),[]/单对象 fail-loud
|
|
18
|
-
const POINTArr = /*@__PURE__*/ structArray(POINT)
|
|
19
|
-
|
|
20
1
|
/** 创建实心画刷;配对 DeleteObject
|
|
21
2
|
* @returns 失败 → 0
|
|
22
3
|
* @param args_0 crColor 画刷颜色 0x00BBGGRR */
|
|
23
|
-
export const CreateSolidBrush
|
|
4
|
+
export declare const CreateSolidBrush: (args_0: number) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
24
5
|
/** 删除 GDI 对象(画刷/画笔/字体/位图等通用句柄,传 CreateXxx 返回的 number)
|
|
25
6
|
* @returns 成功 → 非 0
|
|
26
7
|
* @param args_0 hGdiObj */
|
|
27
|
-
export const DeleteObject
|
|
8
|
+
export declare const DeleteObject: (args_0: import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">) => number;
|
|
28
9
|
/** 取设备能力值
|
|
29
10
|
* @returns 索引对应的设备能力值
|
|
30
11
|
* @param args_0 hdc
|
|
31
12
|
* @param args_1 index 能力索引(LOGPIXELSX = 88,LOGPIXELSY = 90,BITSPIXEL = 12 等) */
|
|
32
|
-
export const GetDeviceCaps
|
|
13
|
+
export declare const GetDeviceCaps: (args_0: number & {
|
|
14
|
+
readonly ptrBrand: "HDC";
|
|
15
|
+
}, args_1: import("../../constants.js").DeviceCap) => number;
|
|
33
16
|
/** 按 LOGFONTW 创建字体(入参位对象直传 DeepPartial:至少给 lfHeight 与 lfFaceName,其余缺省
|
|
34
17
|
* 跳过保持 0);配对 DeleteObject
|
|
35
18
|
* @returns 失败 → 0
|
|
36
19
|
* @param args_0 lplf LOGFONTW 对象 */
|
|
37
|
-
export const CreateFontIndirect
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
20
|
+
export declare const CreateFontIndirect: (args_0: {
|
|
21
|
+
lfCharSet?: number | undefined;
|
|
22
|
+
lfClipPrecision?: number | undefined;
|
|
23
|
+
lfEscapement?: number | undefined;
|
|
24
|
+
lfFaceName?: string | undefined;
|
|
25
|
+
lfHeight?: number | undefined;
|
|
26
|
+
lfItalic?: number | undefined;
|
|
27
|
+
lfOrientation?: number | undefined;
|
|
28
|
+
lfOutPrecision?: number | undefined;
|
|
29
|
+
lfPitchAndFamily?: number | undefined;
|
|
30
|
+
lfQuality?: number | undefined;
|
|
31
|
+
lfStrikeOut?: number | undefined;
|
|
32
|
+
lfUnderline?: number | undefined;
|
|
33
|
+
lfWeight?: number | undefined;
|
|
34
|
+
lfWidth?: number | undefined;
|
|
35
|
+
} | import("../ffi/ctype.js").MaybePtr<"LOGFONTW">) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
41
36
|
/** 建与 hdc 兼容的内存 DC;配对 DeleteDC
|
|
42
37
|
* @returns 失败 → NULL
|
|
43
38
|
* @param args_0 hdc 参考 DC,NULL = 与屏幕兼容 */
|
|
44
|
-
export const CreateCompatibleDC
|
|
39
|
+
export declare const CreateCompatibleDC: (args_0: import("../ffi/ctype.js").MaybePtr<"HDC">) => import("../ffi/ctype.js").MaybePtr<"HDC">;
|
|
45
40
|
/** 建与 hdc 兼容的位图(尺寸取决于 hdc 当前选中对象:内存 DC 刚建时选中 1×1 单色图,
|
|
46
41
|
* 所以要传屏幕 DC);配对 DeleteObject
|
|
47
42
|
* @returns 失败 → NULL
|
|
48
43
|
* @param args_0 hdc 参考 DC(决定位图格式,须为屏幕或真实 DC)
|
|
49
44
|
* @param args_1 cx 宽度(像素)
|
|
50
45
|
* @param args_2 cy 高度(像素) */
|
|
51
|
-
export const CreateCompatibleBitmap
|
|
52
|
-
|
|
46
|
+
export declare const CreateCompatibleBitmap: (args_0: number & {
|
|
47
|
+
readonly ptrBrand: "HDC";
|
|
48
|
+
}, args_1: number, args_2: number) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
53
49
|
/** 创建独立位图(与任何 DC 无关);bits 喂原始像素缓冲则直接初始化(NULL = 未初始化);
|
|
54
50
|
* 1bpp 单色行内 bit7 = 最左像素、行按 word(2B) 对齐(非 DIB 的 4B,MaskBlt 实测);
|
|
55
51
|
* 配对 DeleteObject
|
|
@@ -59,14 +55,14 @@ export const CreateCompatibleBitmap = /*@__PURE__*/ b('CreateCompatibleBitmap',
|
|
|
59
55
|
* @param args_2 nPlanes 色平面数(恒 1)
|
|
60
56
|
* @param args_3 nBitCount 每像素位数(1 = 单色 / 32 = BGRA)
|
|
61
57
|
* @param args_4 lpBits 原始像素缓冲(ArrayBuffer,可 NULL) */
|
|
62
|
-
export const CreateBitmap
|
|
63
|
-
'i32 i32 u32 u32 <BYTE>ptr -> <HGDIOBJ>ptr')
|
|
64
|
-
|
|
58
|
+
export declare const CreateBitmap: (args_0: number, args_1: number, args_2: number, args_3: number, args_4: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
65
59
|
/** 把 GDI 对象选进 hdc(用完选回去再删除新对象)
|
|
66
60
|
* @returns 被替换的旧对象;失败 → NULL
|
|
67
61
|
* @param args_0 hdc 目标 DC
|
|
68
62
|
* @param args_1 h 新对象句柄(HGDIOBJ 通称) */
|
|
69
|
-
export const SelectObject
|
|
63
|
+
export declare const SelectObject: (args_0: number & {
|
|
64
|
+
readonly ptrBrand: "HDC";
|
|
65
|
+
}, args_1: import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
70
66
|
/** 位块传送
|
|
71
67
|
* @returns 成功 → 非 0
|
|
72
68
|
* @param args_0 hdcDest 目标 DC
|
|
@@ -78,8 +74,9 @@ export const SelectObject = /*@__PURE__*/ b('SelectObject', '<HDC>ptr! <HGDIOBJ>
|
|
|
78
74
|
* @param args_6 x1 源起始 x
|
|
79
75
|
* @param args_7 y1 源起始 y
|
|
80
76
|
* @param args_8 dwRop RasterOp.SRCCOPY 等互斥单选光栅操作码(标 @ 枚举拦手误值) */
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
export declare const BitBlt: (args_0: number & {
|
|
78
|
+
readonly ptrBrand: "HDC";
|
|
79
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: import("../ffi/ctype.js").MaybePtr<"HDC">, args_6: number, args_7: number, args_8: import("../../constants.js").RasterOp) => number;
|
|
83
80
|
/** 取位图像素到 lpvBits(lpbmi 为 BITMAPINFO,32bpp BI_RGB 无颜色表时头部即全部:
|
|
84
81
|
* 有颜色表的格式由调用方自备更大的缓冲)
|
|
85
82
|
* @returns 成功取到的扫描行数;失败 → 0
|
|
@@ -89,19 +86,46 @@ export const BitBlt = /*@__PURE__*/ b('BitBlt', '<HDC>ptr! i32 i32 i32 i32 <HDC>
|
|
|
89
86
|
* @param args_3 cLines 扫描行数
|
|
90
87
|
* @param args_4 lpvBits 像素接收缓冲(ArrayBuffer)
|
|
91
88
|
* @param args_5 lpbmi BITMAPINFO 缓冲(BITMAPINFOHEADER.encode({...}).ptr)
|
|
92
|
-
* @param args_6 uUsage
|
|
93
|
-
export const GetDIBits
|
|
89
|
+
* @param args_6 uUsage ColorUse.RGB_COLORS */
|
|
90
|
+
export declare const GetDIBits: (args_0: number & {
|
|
91
|
+
readonly ptrBrand: "HDC";
|
|
92
|
+
}, args_1: import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">, args_2: number, args_3: number, args_4: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_5: import("../ffi/ctype.js").MaybePtr<"">, args_6: import("../../constants.js").ColorUse) => number;
|
|
93
|
+
/** 建 32bpp DIB 段位图(biHeight 负 = 自顶向下,像素内存由系统分配)——像素内容靠
|
|
94
|
+
* SetDIBits 从调用方缓冲装入,故 ppvBits 出参槽可传 NULL 不取位地址(要直写像素
|
|
95
|
+
* 才需要非空槽)
|
|
96
|
+
* @returns 位图句柄;失败 → 0(用完 DeleteObject)
|
|
97
|
+
* @param args_0 hdc 参考 DC(NULL 即可,只取 DIB 格式)
|
|
98
|
+
* @param args_1 pbmi BITMAPINFO 缓冲(BITMAPINFOHEADER.encode({...}).ptr,同 GetDIBits)
|
|
99
|
+
* @param args_2 iUsage ColorUse.RGB_COLORS
|
|
100
|
+
* @param args_3 ppvBits 收位地址的出参槽(NULL = 不取)
|
|
101
|
+
* @param args_4 hSection NULL(无文件映射区)
|
|
102
|
+
* @param args_5 offset 位数据在映射区内的偏移(无映射区恒 0) */
|
|
103
|
+
export declare const CreateDIBSection: (args_0: import("../ffi/ctype.js").MaybePtr<"HDC">, args_1: import("../ffi/ctype.js").MaybePtr<"">, args_2: import("../../constants.js").ColorUse, args_3: import("../ffi/ctype.js").MaybePtr<"">, args_4: import("../ffi/ctype.js").MaybePtr<"">, args_5: number) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
104
|
+
/** 把 lpvBits 的像素装进位图(lpbmi 描述源的格式;ColorUse.RGB_COLORS 时 hdc 只定
|
|
105
|
+
* 目标格式,本仓传 NULL 实测可用——MSDN:仅 DIB_PAL_COLORS 才用 hdc)
|
|
106
|
+
* @returns 成功复制的扫描行数;失败 → 0
|
|
107
|
+
* @param args_0 hdc 参考 DC(NULL 即可,见上)
|
|
108
|
+
* @param args_1 hbm 目标位图(DIB 段同可用)
|
|
109
|
+
* @param args_2 uStartScan 起始扫描行
|
|
110
|
+
* @param args_3 cLines 扫描行数
|
|
111
|
+
* @param args_4 lpvBits 像素源缓冲(ArrayBuffer)
|
|
112
|
+
* @param args_5 lpbmi BITMAPINFO 缓冲(同 GetDIBits)
|
|
113
|
+
* @param args_6 iUsage ColorUse.RGB_COLORS */
|
|
114
|
+
export declare const SetDIBits: (args_0: import("../ffi/ctype.js").MaybePtr<"HDC">, args_1: number & {
|
|
115
|
+
readonly ptrBrand: "HGDIOBJ";
|
|
116
|
+
}, args_2: number, args_3: number, args_4: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_5: import("../ffi/ctype.js").MaybePtr<"">, args_6: import("../../constants.js").ColorUse) => number;
|
|
94
117
|
/** 取 GDI 对象信息到 lpv(hFont → LOGFONTW 等)
|
|
95
118
|
* @returns 写入的字节数;失败 → 0
|
|
96
119
|
* @param args_0 h GDI 对象句柄(字体/画笔/位图等)
|
|
97
120
|
* @param args_1 cb 输出缓冲字节数(如 LOGFONTW.size)
|
|
98
121
|
* @param args_2 lpv 输出缓冲(LOGFONTW.alloc() 等) */
|
|
99
|
-
export const GetObject
|
|
122
|
+
export declare const GetObject: (args_0: import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">, args_1: number, args_2: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">) => number;
|
|
100
123
|
/** 删除内存 DC(CreateCompatibleDC 建的)
|
|
101
124
|
* @returns 成功 → 非 0
|
|
102
125
|
* @param args_0 hdc 要删的 DC */
|
|
103
|
-
export const DeleteDC
|
|
104
|
-
|
|
126
|
+
export declare const DeleteDC: (args_0: number & {
|
|
127
|
+
readonly ptrBrand: "HDC";
|
|
128
|
+
}) => number;
|
|
105
129
|
/** 用画刷图案填充矩形
|
|
106
130
|
* @returns 成功 → 非 0
|
|
107
131
|
* @param args_0 hdc 目标 DC
|
|
@@ -110,7 +134,9 @@ export const DeleteDC = /*@__PURE__*/ b('DeleteDC', '<HDC>ptr! -> i32')
|
|
|
110
134
|
* @param args_3 w 宽度
|
|
111
135
|
* @param args_4 h 高度
|
|
112
136
|
* @param args_5 rop RasterOp.PATCOPY / WHITENESS 等互斥单选光栅操作码 */
|
|
113
|
-
export const PatBlt
|
|
137
|
+
export declare const PatBlt: (args_0: number & {
|
|
138
|
+
readonly ptrBrand: "HDC";
|
|
139
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: import("../../constants.js").RasterOp) => number;
|
|
114
140
|
/** 拉伸位图传送(源区 wSrc×hSrc 放/缩到目标 wDest×hDest)
|
|
115
141
|
* @returns 成功 → 非 0
|
|
116
142
|
* @param args_0 hdcDest 目标 DC
|
|
@@ -124,18 +150,23 @@ export const PatBlt = /*@__PURE__*/ b('PatBlt', '<HDC>ptr! i32 i32 i32 i32 u32@R
|
|
|
124
150
|
* @param args_8 wSrc 源区宽
|
|
125
151
|
* @param args_9 hSrc 源区高
|
|
126
152
|
* @param args_10 dwRop RasterOp.SRCCOPY 等互斥单选光栅操作码 */
|
|
127
|
-
export const StretchBlt
|
|
128
|
-
|
|
153
|
+
export declare const StretchBlt: (args_0: number & {
|
|
154
|
+
readonly ptrBrand: "HDC";
|
|
155
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: import("../ffi/ctype.js").MaybePtr<"HDC">, args_6: number, args_7: number, args_8: number, args_9: number, args_10: import("../../constants.js").RasterOp) => number;
|
|
129
156
|
/** 设置拉伸取色模式;放大时各模式像素同为源色,缩小时降采样策略不同
|
|
130
157
|
* (DELETESCANS 丢行 / HALFTONE 平均取色最保真)
|
|
131
158
|
* @returns 旧值
|
|
132
159
|
* @param args_0 hdc 目标 DC
|
|
133
160
|
* @param args_1 iMode StretchBltMode.ANDSCANS(1) / ORSCANS(2) / DELETESCANS(3) / HALFTONE(4) */
|
|
134
|
-
export const SetStretchBltMode
|
|
161
|
+
export declare const SetStretchBltMode: (args_0: number & {
|
|
162
|
+
readonly ptrBrand: "HDC";
|
|
163
|
+
}, args_1: import("../../constants.js").StretchBltMode) => number;
|
|
135
164
|
/** 读拉伸取色模式(值域 = StretchBltMode 成员);回传
|
|
136
165
|
* SetStretchBltMode 前需按成员值使用(裸 number 进不了枚举位)
|
|
137
166
|
* @returns number */
|
|
138
|
-
export const GetStretchBltMode
|
|
167
|
+
export declare const GetStretchBltMode: (args_0: number & {
|
|
168
|
+
readonly ptrBrand: "HDC";
|
|
169
|
+
}) => number;
|
|
139
170
|
/** 平行四边形位图传送(源矩形映射到 lpPoint 三点定的平行四边形 = 旋转/斜切贴图,
|
|
140
171
|
* 源区随之缩放到三点形)
|
|
141
172
|
* @returns 成功 → 非 0
|
|
@@ -149,8 +180,12 @@ export const GetStretchBltMode = /*@__PURE__*/ b('GetStretchBltMode', '<HDC>ptr!
|
|
|
149
180
|
* @param args_7 hbmMask 可选单色掩码(NULL = 直接贴)
|
|
150
181
|
* @param args_8 xMask 掩码内起点 x(掩码为 NULL 时忽略)
|
|
151
182
|
* @param args_9 yMask 掩码内起点 y */
|
|
152
|
-
export const PlgBlt
|
|
153
|
-
|
|
183
|
+
export declare const PlgBlt: (args_0: number & {
|
|
184
|
+
readonly ptrBrand: "HDC";
|
|
185
|
+
}, args_1: readonly {
|
|
186
|
+
x?: number | undefined;
|
|
187
|
+
y?: number | undefined;
|
|
188
|
+
}[] | import("../ffi/ctype.js").MaybePtr<"POINT">, args_2: import("../ffi/ctype.js").MaybePtr<"HDC">, args_3: number, args_4: number, args_5: number, args_6: number, args_7: import("../ffi/ctype.js").MaybePtr<"">, args_8: number, args_9: number) => number;
|
|
154
189
|
/** 单色掩码位块传送:掩码非零处取前景三元 rop、零处取背景三元 rop;
|
|
155
190
|
* dwRop = MAKEROP4(fore, back) 打包(gdi32.ts 不导出辅助,公式内联):
|
|
156
191
|
* rop = (((back << 8) & 0xFF000000) | fore) >>> 0
|
|
@@ -169,8 +204,9 @@ export const PlgBlt = /*@__PURE__*/ b('PlgBlt',
|
|
|
169
204
|
* @param args_9 xMask 掩码内起点 x
|
|
170
205
|
* @param args_10 yMask 掩码内起点 y
|
|
171
206
|
* @param args_11 dwRop MAKEROP4 打包值(双 rop 组合域,非 @RasterOp 单值) */
|
|
172
|
-
export const MaskBlt
|
|
173
|
-
|
|
207
|
+
export declare const MaskBlt: (args_0: number & {
|
|
208
|
+
readonly ptrBrand: "HDC";
|
|
209
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: import("../ffi/ctype.js").MaybePtr<"HDC">, args_6: number, args_7: number, args_8: import("../ffi/ctype.js").MaybePtr<"">, args_9: number, args_10: number, args_11: number) => number;
|
|
174
210
|
/** 把 DIB 位图画到目标 DC
|
|
175
211
|
* @returns 扫描行数;失败 → 0
|
|
176
212
|
* @param args_0 hdc 目标 DC
|
|
@@ -184,10 +220,10 @@ export const MaskBlt = /*@__PURE__*/ b('MaskBlt',
|
|
|
184
220
|
* @param args_8 uNumScans 扫描行数
|
|
185
221
|
* @param args_9 lpvBits 像素缓冲(ArrayBuffer)
|
|
186
222
|
* @param args_10 lpbmi BITMAPINFO 缓冲
|
|
187
|
-
* @param args_11 iUsage
|
|
188
|
-
export const SetDIBitsToDevice
|
|
189
|
-
|
|
190
|
-
|
|
223
|
+
* @param args_11 iUsage ColorUse.RGB_COLORS */
|
|
224
|
+
export declare const SetDIBitsToDevice: (args_0: number & {
|
|
225
|
+
readonly ptrBrand: "HDC";
|
|
226
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: number, args_6: number, args_7: number, args_8: number, args_9: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_10: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_11: import("../../constants.js").ColorUse) => number;
|
|
191
227
|
/** 拉伸 DIB 传送(内存像素缓冲直接放/缩到目标,免创建 HBITMAP 中转);
|
|
192
228
|
* DestWidth/DestHeight 传 0 = 源自然尺寸;SrcWidth/SrcHeight 负 = 翻转
|
|
193
229
|
* @returns 成功 → 扫描行数;失败 → 0
|
|
@@ -201,85 +237,97 @@ export const SetDIBitsToDevice = /*@__PURE__*/ b('SetDIBitsToDevice',
|
|
|
201
237
|
* @param args_8 SrcHeight 源区高
|
|
202
238
|
* @param args_9 lpvBits 像素缓冲(ArrayBuffer)
|
|
203
239
|
* @param args_10 lpbmi BITMAPINFO 缓冲(BITMAPINFOHEADER.encode({...}).ptr)
|
|
204
|
-
* @param args_11 iUsage
|
|
240
|
+
* @param args_11 iUsage ColorUse.RGB_COLORS
|
|
205
241
|
* @param args_12 rop RasterOp.SRCCOPY 等互斥单选光栅操作码 */
|
|
206
|
-
export const StretchDIBits
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
// ============ 画图原语(笔 / 线 / 形状 / 文字) ============
|
|
210
|
-
|
|
242
|
+
export declare const StretchDIBits: (args_0: number & {
|
|
243
|
+
readonly ptrBrand: "HDC";
|
|
244
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: number, args_6: number, args_7: number, args_8: number, args_9: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_10: import("../ffi/ctype.js").PtrArrayBuffer<any> | import("../ffi/ctype.js").MaybePtr<"BYTE">, args_11: import("../../constants.js").ColorUse, args_12: import("../../constants.js").RasterOp) => number;
|
|
211
245
|
/** 取系统共享对象(笔/刷/字体/调色板);共享句柄不要 DeleteObject——
|
|
212
246
|
* SelectObject 选入 hdc 生效(如 NULL_BRUSH 让形状只描边不填充)
|
|
213
247
|
* @returns 失败 → 0
|
|
214
248
|
* @param args_0 iObject StockObject.NULL_BRUSH / BLACK_PEN / DEFAULT_GUI_FONT 等 */
|
|
215
|
-
export const GetStockObject
|
|
216
|
-
|
|
249
|
+
export declare const GetStockObject: (args_0: import("../../constants.js").StockObject) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
217
250
|
/** 创建网格纹理画刷(线色 = crColor,间隙 = 背景:SetBkMode=TRANSPARENT 透底、OPAQUE
|
|
218
251
|
* 用 SetBkColor);配对 DeleteObject
|
|
219
252
|
* @returns 失败 → 0
|
|
220
253
|
* @param args_0 iHatch HatchStyle.HORIZONTAL(横线)/ VERTICAL / FDIAGONAL /
|
|
221
254
|
* BDIAGONAL / CROSS / DIAGCROSS
|
|
222
255
|
* @param args_1 crColor 纹理线颜色 0x00BBGGRR */
|
|
223
|
-
export const CreateHatchBrush
|
|
224
|
-
|
|
256
|
+
export declare const CreateHatchBrush: (args_0: import("../../constants.js").HatchStyle, args_1: number) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
225
257
|
/** 创建位图平铺画刷(小位图铺满填充区;平铺锚定设备原点 (0,0),与目标矩形角无关);
|
|
226
258
|
* 配对 DeleteObject —— 位图在画刷删除后再 DeleteObject(保守生命周期)
|
|
227
259
|
* @returns 失败 → 0
|
|
228
260
|
* @param args_0 hbm 位图句柄(CreateCompatibleBitmap 返回;调用前先退出选入状态) */
|
|
229
|
-
export const CreatePatternBrush
|
|
230
|
-
|
|
261
|
+
export declare const CreatePatternBrush: (args_0: import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
231
262
|
/** 创建画笔(选入 hdc 生效,SelectObject 选回旧对象后 DeleteObject 配对)
|
|
232
263
|
* @returns 失败 → 0
|
|
233
264
|
* @param args_0 iStyle 笔型(PenStyle.SOLID / DASH / NULL 等)
|
|
234
265
|
* @param args_1 cWidth 笔宽(像素;>1 的几何宽设备相关,虚线样式可能被拉伸)
|
|
235
266
|
* @param args_2 crColor 笔色 0x00BBGGRR */
|
|
236
|
-
export const CreatePen
|
|
267
|
+
export declare const CreatePen: (args_0: import("../../constants.js").PenStyle, args_1: number, args_2: number) => import("../ffi/ctype.js").MaybePtr<"HGDIOBJ">;
|
|
237
268
|
/** 设置文字/阴影背景填充模式
|
|
238
269
|
* @returns 旧模式(新建 DC 默认 OPAQUE)
|
|
239
270
|
* @param args_0 hdc 目标 DC
|
|
240
271
|
* @param args_1 iBkMode BackgroundMode.OPAQUE(衬底填充)/ TRANSPARENT(透明) */
|
|
241
|
-
export const SetBkMode
|
|
272
|
+
export declare const SetBkMode: (args_0: number & {
|
|
273
|
+
readonly ptrBrand: "HDC";
|
|
274
|
+
}, args_1: import("../../constants.js").BackgroundMode) => number;
|
|
242
275
|
/** 设置文字颜色
|
|
243
276
|
* @returns 旧 COLORREF(0x00BBGGRR)
|
|
244
277
|
* @param args_0 hdc 目标 DC
|
|
245
278
|
* @param args_1 color 新文字色 0x00BBGGRR */
|
|
246
|
-
export const SetTextColor
|
|
279
|
+
export declare const SetTextColor: (args_0: number & {
|
|
280
|
+
readonly ptrBrand: "HDC";
|
|
281
|
+
}, args_1: number) => number;
|
|
247
282
|
/** 设置背景(SetBkMode=OPAQUE 时的衬底)颜色
|
|
248
283
|
* @returns 旧 COLORREF(0x00BBGGRR)
|
|
249
284
|
* @param args_0 hdc 目标 DC
|
|
250
285
|
* @param args_1 color 新背景色 0x00BBGGRR */
|
|
251
|
-
export const SetBkColor
|
|
286
|
+
export declare const SetBkColor: (args_0: number & {
|
|
287
|
+
readonly ptrBrand: "HDC";
|
|
288
|
+
}, args_1: number) => number;
|
|
252
289
|
/** 保存 DC 当前绘图状态到 GDI 状态栈(颜色/模式/选中笔刷字体/裁剪区/映射模式…);
|
|
253
290
|
* 配对 RestoreDC——标准用法:进入绘制块 Save、退出 Restore
|
|
254
291
|
* @returns 状态 ID(0 = 失败)
|
|
255
292
|
* @param args_0 hdc 目标 DC */
|
|
256
|
-
export const SaveDC
|
|
293
|
+
export declare const SaveDC: (args_0: number & {
|
|
294
|
+
readonly ptrBrand: "HDC";
|
|
295
|
+
}) => number;
|
|
257
296
|
/** 从状态栈恢复 SaveDC 保存的 DC 状态(对应 ID 及更晚的保存随之失效)
|
|
258
297
|
* @returns 成功 → 非 0
|
|
259
298
|
* @param args_0 hdc 目标 DC
|
|
260
299
|
* @param args_1 state SaveDC 返回的状态 ID,或 -1 = 最近一次保存 */
|
|
261
|
-
export const RestoreDC
|
|
300
|
+
export declare const RestoreDC: (args_0: number & {
|
|
301
|
+
readonly ptrBrand: "HDC";
|
|
302
|
+
}, args_1: number) => number;
|
|
262
303
|
/** 设置多边形填充规则
|
|
263
304
|
* @returns 旧值(新建 DC 默认 ALTERNATE = 奇偶规则)
|
|
264
305
|
* @param args_0 hdc 目标 DC
|
|
265
306
|
* @param args_1 iMode PolyFillMode.ALTERNATE(自相交区域交替镂空)/
|
|
266
307
|
* WINDING(非零环绕,自相交区域整体实心) */
|
|
267
|
-
export const SetPolyFillMode
|
|
308
|
+
export declare const SetPolyFillMode: (args_0: number & {
|
|
309
|
+
readonly ptrBrand: "HDC";
|
|
310
|
+
}, args_1: import("../../constants.js").PolyFillMode) => number;
|
|
268
311
|
/** 设置前景画笔与目的像素的混合方式(二元光栅模式);
|
|
269
312
|
* R2_XORPEN 可逆(同路径画两次抵消原样),适合橡皮筋交互
|
|
270
313
|
* @returns 旧值(默认 R2_COPYPEN = 直接画)
|
|
271
314
|
* @param args_0 hdc 目标 DC
|
|
272
315
|
* @param args_1 iMode RasterMode.R2_COPYPEN / R2_XORPEN / R2_NOT 等(单选,标 @ 枚举) */
|
|
273
|
-
export const SetROP2
|
|
316
|
+
export declare const SetROP2: (args_0: number & {
|
|
317
|
+
readonly ptrBrand: "HDC";
|
|
318
|
+
}, args_1: import("../../constants.js").RasterMode) => number;
|
|
274
319
|
/** 设置弧/弦/扇形的扫过方向
|
|
275
320
|
* @returns 旧值(新 DC 默认逆时针)
|
|
276
321
|
* @param args_0 hdc 目标 DC
|
|
277
322
|
* @param args_1 iDir ArcDirection.COUNTERCLOCKWISE(默认)/ CLOCKWISE */
|
|
278
|
-
export const SetArcDirection
|
|
323
|
+
export declare const SetArcDirection: (args_0: number & {
|
|
324
|
+
readonly ptrBrand: "HDC";
|
|
325
|
+
}, args_1: import("../../constants.js").ArcDirection) => number;
|
|
279
326
|
/** 读弧扫过方向
|
|
280
327
|
* @returns AD_COUNTERCLOCKWISE=1 / AD_CLOCKWISE=2;失败 → 0 */
|
|
281
|
-
export const GetArcDirection
|
|
282
|
-
|
|
328
|
+
export declare const GetArcDirection: (args_0: number & {
|
|
329
|
+
readonly ptrBrand: "HDC";
|
|
330
|
+
}) => number;
|
|
283
331
|
/** 移动画笔当前位置;lppt 接旧位置出参
|
|
284
332
|
* @returns 成功 → 非 0
|
|
285
333
|
* @param args_0 hdc 目标 DC
|
|
@@ -287,27 +335,40 @@ export const GetArcDirection = /*@__PURE__*/ b('GetArcDirection', '<HDC>ptr! ->
|
|
|
287
335
|
* @param args_2 y 新位置 y
|
|
288
336
|
* @param args_3 lppt 出参位:传 POINT.alloc() 的 .ptr 接旧位置,或传 NULL 不要 ——
|
|
289
337
|
* 刻意不注册 encoder(纯出参;对象形物化进引擎持有的缓冲,调用方读不到) */
|
|
290
|
-
export const MoveToEx
|
|
338
|
+
export declare const MoveToEx: (args_0: number & {
|
|
339
|
+
readonly ptrBrand: "HDC";
|
|
340
|
+
}, args_1: number, args_2: number, args_3: import("../ffi/ctype.js").MaybePtr<"POINT">) => number;
|
|
291
341
|
/** 从当前位置画线到 (x,y)(不含端点),当前位置随之移动
|
|
292
342
|
* @returns 成功 → 非 0
|
|
293
343
|
* @param args_0 hdc 目标 DC
|
|
294
344
|
* @param args_1 x 终点 x
|
|
295
345
|
* @param args_2 y 终点 y */
|
|
296
|
-
export const LineTo
|
|
297
|
-
|
|
346
|
+
export declare const LineTo: (args_0: number & {
|
|
347
|
+
readonly ptrBrand: "HDC";
|
|
348
|
+
}, args_1: number, args_2: number) => number;
|
|
298
349
|
/** 画折线(当前画笔描边,不填充、不自动闭合)
|
|
299
350
|
* @returns 成功 → 非 0
|
|
300
351
|
* @param args_0 hdc 目标 DC
|
|
301
352
|
* @param args_1 pts 点数组(structArray(POINT) encoder 直传元素数组;NULL 位传 NULL,
|
|
302
353
|
* []/单对象 fail-loud)
|
|
303
354
|
* @param args_2 cPoints 点数(= pts.length,C 侧显式计数位) */
|
|
304
|
-
export const Polyline
|
|
355
|
+
export declare const Polyline: (args_0: number & {
|
|
356
|
+
readonly ptrBrand: "HDC";
|
|
357
|
+
}, args_1: readonly {
|
|
358
|
+
x?: number | undefined;
|
|
359
|
+
y?: number | undefined;
|
|
360
|
+
}[] | import("../ffi/ctype.js").MaybePtr<"POINT">, args_2: number) => number;
|
|
305
361
|
/** 多边形(画笔描边 + 当前画刷填充,首尾自动闭合)
|
|
306
362
|
* @returns 成功 → 非 0
|
|
307
363
|
* @param args_0 hdc 目标 DC
|
|
308
364
|
* @param args_1 pts 点数组(structArray(POINT) encoder 直传元素数组;NULL 位传 NULL)
|
|
309
365
|
* @param args_2 cPoints 点数(= pts.length) */
|
|
310
|
-
export const Polygon
|
|
366
|
+
export declare const Polygon: (args_0: number & {
|
|
367
|
+
readonly ptrBrand: "HDC";
|
|
368
|
+
}, args_1: readonly {
|
|
369
|
+
x?: number | undefined;
|
|
370
|
+
y?: number | undefined;
|
|
371
|
+
}[] | import("../ffi/ctype.js").MaybePtr<"POINT">, args_2: number) => number;
|
|
311
372
|
/** 矩形(画笔描边 + 当前画刷填充;右/下边缘不画入区域)
|
|
312
373
|
* @returns 成功 → 非 0
|
|
313
374
|
* @param args_0 hdc 目标 DC
|
|
@@ -315,7 +376,9 @@ export const Polygon = /*@__PURE__*/ b('Polygon', '<HDC>ptr! <POINT>ptr i32 -> i
|
|
|
315
376
|
* @param args_2 t 左上 y
|
|
316
377
|
* @param args_3 r 右下 x(不含)
|
|
317
378
|
* @param args_4 b 右下 y(不含) */
|
|
318
|
-
export const Rectangle
|
|
379
|
+
export declare const Rectangle: (args_0: number & {
|
|
380
|
+
readonly ptrBrand: "HDC";
|
|
381
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number) => number;
|
|
319
382
|
/** 椭圆(外接矩形内切,边缘可达四边中点;描边 + 填充)
|
|
320
383
|
* @returns 成功 → 非 0
|
|
321
384
|
* @param args_0 hdc 目标 DC
|
|
@@ -323,7 +386,9 @@ export const Rectangle = /*@__PURE__*/ b('Rectangle', '<HDC>ptr! i32 i32 i32 i32
|
|
|
323
386
|
* @param args_2 t 外接矩形上 y
|
|
324
387
|
* @param args_3 r 外接矩形右 x
|
|
325
388
|
* @param args_4 b 外接矩形下 y */
|
|
326
|
-
export const Ellipse
|
|
389
|
+
export declare const Ellipse: (args_0: number & {
|
|
390
|
+
readonly ptrBrand: "HDC";
|
|
391
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number) => number;
|
|
327
392
|
/** 圆角矩形(四角为 w×h 椭圆弧;描边 + 填充)
|
|
328
393
|
* @returns 成功 → 非 0
|
|
329
394
|
* @param args_0 hdc 目标 DC
|
|
@@ -333,8 +398,9 @@ export const Ellipse = /*@__PURE__*/ b('Ellipse', '<HDC>ptr! i32 i32 i32 i32 ->
|
|
|
333
398
|
* @param args_4 b 右下 y(不含)
|
|
334
399
|
* @param args_5 w 四角椭圆横半径
|
|
335
400
|
* @param args_6 h 四角椭圆纵半径 */
|
|
336
|
-
export const RoundRect
|
|
337
|
-
|
|
401
|
+
export declare const RoundRect: (args_0: number & {
|
|
402
|
+
readonly ptrBrand: "HDC";
|
|
403
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: number, args_6: number) => number;
|
|
338
404
|
/** 画圆弧(外接矩形内切椭圆上起点→终点的弧,默认逆时针、SetArcDirection 可改向;
|
|
339
405
|
* 仅描边,不填充、不闭合)
|
|
340
406
|
* @returns 成功 → 非 0
|
|
@@ -347,7 +413,9 @@ export const RoundRect = /*@__PURE__*/ b('RoundRect', '<HDC>ptr! i32 i32 i32 i32
|
|
|
347
413
|
* @param args_6 yStart 弧起点 y
|
|
348
414
|
* @param args_7 xEnd 弧终点 x
|
|
349
415
|
* @param args_8 yEnd 弧终点 y */
|
|
350
|
-
export const Arc
|
|
416
|
+
export declare const Arc: (args_0: number & {
|
|
417
|
+
readonly ptrBrand: "HDC";
|
|
418
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: number, args_6: number, args_7: number, args_8: number) => number;
|
|
351
419
|
/** 弓形(弧 + 起终点间弦闭合;描边 + 当前画刷填充)
|
|
352
420
|
* @returns 成功 → 非 0
|
|
353
421
|
* @param args_0 hdc 目标 DC
|
|
@@ -359,7 +427,9 @@ export const Arc = /*@__PURE__*/ b('Arc', '<HDC>ptr! i32 i32 i32 i32 i32 i32 i32
|
|
|
359
427
|
* @param args_6 yStart 弧起点 y
|
|
360
428
|
* @param args_7 xEnd 弧终点 x
|
|
361
429
|
* @param args_8 yEnd 弧终点 y */
|
|
362
|
-
export const Chord
|
|
430
|
+
export declare const Chord: (args_0: number & {
|
|
431
|
+
readonly ptrBrand: "HDC";
|
|
432
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: number, args_6: number, args_7: number, args_8: number) => number;
|
|
363
433
|
/** 扇形(弧 + 中心到两端半径闭合;描边 + 当前画刷填充)
|
|
364
434
|
* @returns 成功 → 非 0
|
|
365
435
|
* @param args_0 hdc 目标 DC
|
|
@@ -371,8 +441,9 @@ export const Chord = /*@__PURE__*/ b('Chord', '<HDC>ptr! i32 i32 i32 i32 i32 i32
|
|
|
371
441
|
* @param args_6 yStart 弧起点 y
|
|
372
442
|
* @param args_7 xEnd 弧终点 x
|
|
373
443
|
* @param args_8 yEnd 弧终点 y */
|
|
374
|
-
export const Pie
|
|
375
|
-
|
|
444
|
+
export declare const Pie: (args_0: number & {
|
|
445
|
+
readonly ptrBrand: "HDC";
|
|
446
|
+
}, args_1: number, args_2: number, args_3: number, args_4: number, args_5: number, args_6: number, args_7: number, args_8: number) => number;
|
|
376
447
|
/** 底层文字输出(颜色走 SetTextColor、衬底走 SetBkMode/SetBkColor,位置受 SetTextAlign
|
|
377
448
|
* 默认左上对齐约束)
|
|
378
449
|
* @returns 成功 → 非 0
|
|
@@ -381,13 +452,17 @@ export const Pie = /*@__PURE__*/ b('Pie', '<HDC>ptr! i32 i32 i32 i32 i32 i32 i32
|
|
|
381
452
|
* @param args_2 y 起点 y
|
|
382
453
|
* @param args_3 str 文本(<WCHAR>ptr 位直传 string,引擎 UTF-16 编码并持活到调用结束)
|
|
383
454
|
* @param args_4 c 字符数(= str.length;C 要字符数不是字节数,不含 NUL) */
|
|
384
|
-
export const TextOut
|
|
455
|
+
export declare const TextOut: (args_0: number & {
|
|
456
|
+
readonly ptrBrand: "HDC";
|
|
457
|
+
}, args_1: number, args_2: number, args_3: string | import("../ffi/ctype.js").MaybePtr<"WCHAR">, args_4: number) => number;
|
|
385
458
|
/** 设置 TextOut/ExtTextOut 的对齐与当前位置更新方式;TA_* 按位组合
|
|
386
459
|
* (如 TextAlign.TA_CENTER | TextAlign.TA_UPDATECP),故签名保持 u32 不标枚举
|
|
387
460
|
* @returns 旧 flags(新 DC 默认 TA_LEFT|TA_TOP|TA_NOUPDATECP = 0)
|
|
388
461
|
* @param args_0 hdc 目标 DC
|
|
389
462
|
* @param args_1 fMode TextAlign 成员按位或 */
|
|
390
|
-
export const SetTextAlign
|
|
463
|
+
export declare const SetTextAlign: (args_0: number & {
|
|
464
|
+
readonly ptrBrand: "HDC";
|
|
465
|
+
}, args_1: number) => number;
|
|
391
466
|
/** 按当前字体量字符串宽高(不含衬底与额外间距)
|
|
392
467
|
* @returns 成功 → 非 0
|
|
393
468
|
* @param args_0 hdc 目标 DC
|
|
@@ -395,15 +470,21 @@ export const SetTextAlign = /*@__PURE__*/ b('SetTextAlign', '<HDC>ptr! u32 -> u3
|
|
|
395
470
|
* @param args_2 c 字符数(= str.length)
|
|
396
471
|
* @param args_3 lpSize 出参位:SIZE.alloc().ptr 接 { cx, cy },SIZE.decode(ptr) 读回
|
|
397
472
|
* (标 !:没出参此 API 无意义) */
|
|
398
|
-
export const GetTextExtentPoint32
|
|
399
|
-
|
|
473
|
+
export declare const GetTextExtentPoint32: (args_0: number & {
|
|
474
|
+
readonly ptrBrand: "HDC";
|
|
475
|
+
}, args_1: string | import("../ffi/ctype.js").MaybePtr<"WCHAR">, args_2: number, args_3: number & {
|
|
476
|
+
readonly ptrBrand: "SIZE";
|
|
477
|
+
}) => number;
|
|
400
478
|
/** 取当前字体完整度量(行高/ascent/descent/字符宽等 20 字段)
|
|
401
479
|
* @returns 成功 → 非 0
|
|
402
480
|
* @param args_0 hdc 目标 DC
|
|
403
481
|
* @param args_1 lptm 出参位:TEXTMETRICW.alloc().ptr 接、TEXTMETRICW.decode(ptr) 读回
|
|
404
482
|
* (标 !:没出参此 API 无意义,同 GetTextExtentPoint32 的 SIZE 位) */
|
|
405
|
-
export const GetTextMetrics
|
|
406
|
-
|
|
483
|
+
export declare const GetTextMetrics: (args_0: number & {
|
|
484
|
+
readonly ptrBrand: "HDC";
|
|
485
|
+
}, args_1: number & {
|
|
486
|
+
readonly ptrBrand: "TEXTMETRICW";
|
|
487
|
+
}) => number;
|
|
407
488
|
/** 底层文字输出增强版(可选矩形衬底/裁剪 + 可选每字符间距)
|
|
408
489
|
* @returns 成功 → 非 0
|
|
409
490
|
* @param args_0 hdc 目标 DC
|
|
@@ -416,5 +497,11 @@ export const GetTextMetrics = /*@__PURE__*/ b('GetTextMetricsW',
|
|
|
416
497
|
* @param args_5 str 文本(<WCHAR>ptr 直传 string)
|
|
417
498
|
* @param args_6 c 字符数(= str.length)
|
|
418
499
|
* @param args_7 lpDx 每字符间距数组位:本版仅收 NULL(默认等宽间距),数组形态留后续 */
|
|
419
|
-
export const ExtTextOut
|
|
420
|
-
|
|
500
|
+
export declare const ExtTextOut: (args_0: number & {
|
|
501
|
+
readonly ptrBrand: "HDC";
|
|
502
|
+
}, args_1: number, args_2: number, args_3: number, args_4: {
|
|
503
|
+
bottom?: number | undefined;
|
|
504
|
+
left?: number | undefined;
|
|
505
|
+
right?: number | undefined;
|
|
506
|
+
top?: number | undefined;
|
|
507
|
+
} | import("../ffi/ctype.js").MaybePtr<"RECT">, args_5: string | import("../ffi/ctype.js").MaybePtr<"WCHAR">, args_6: number, args_7: import("../ffi/ctype.js").MaybePtr<"">) => number;
|
package/lib/windows/gdi32.js
CHANGED
|
@@ -80,8 +80,30 @@ export const BitBlt = /*@__PURE__*/ b('BitBlt', '<HDC>ptr! i32 i32 i32 i32 <HDC>
|
|
|
80
80
|
* @param args_3 cLines 扫描行数
|
|
81
81
|
* @param args_4 lpvBits 像素接收缓冲(ArrayBuffer)
|
|
82
82
|
* @param args_5 lpbmi BITMAPINFO 缓冲(BITMAPINFOHEADER.encode({...}).ptr)
|
|
83
|
-
* @param args_6 uUsage
|
|
84
|
-
export const GetDIBits = /*@__PURE__*/ b('GetDIBits', '<HDC>ptr! <HGDIOBJ>ptr u32 u32 <BYTE>ptr <>ptr u32 -> i32');
|
|
83
|
+
* @param args_6 uUsage ColorUse.RGB_COLORS */
|
|
84
|
+
export const GetDIBits = /*@__PURE__*/ b('GetDIBits', '<HDC>ptr! <HGDIOBJ>ptr u32 u32 <BYTE>ptr <>ptr u32@ColorUse -> i32');
|
|
85
|
+
/** 建 32bpp DIB 段位图(biHeight 负 = 自顶向下,像素内存由系统分配)——像素内容靠
|
|
86
|
+
* SetDIBits 从调用方缓冲装入,故 ppvBits 出参槽可传 NULL 不取位地址(要直写像素
|
|
87
|
+
* 才需要非空槽)
|
|
88
|
+
* @returns 位图句柄;失败 → 0(用完 DeleteObject)
|
|
89
|
+
* @param args_0 hdc 参考 DC(NULL 即可,只取 DIB 格式)
|
|
90
|
+
* @param args_1 pbmi BITMAPINFO 缓冲(BITMAPINFOHEADER.encode({...}).ptr,同 GetDIBits)
|
|
91
|
+
* @param args_2 iUsage ColorUse.RGB_COLORS
|
|
92
|
+
* @param args_3 ppvBits 收位地址的出参槽(NULL = 不取)
|
|
93
|
+
* @param args_4 hSection NULL(无文件映射区)
|
|
94
|
+
* @param args_5 offset 位数据在映射区内的偏移(无映射区恒 0) */
|
|
95
|
+
export const CreateDIBSection = /*@__PURE__*/ b('CreateDIBSection', '<HDC>ptr <>ptr u32@ColorUse <>ptr <>ptr u32 -> <HGDIOBJ>ptr');
|
|
96
|
+
/** 把 lpvBits 的像素装进位图(lpbmi 描述源的格式;ColorUse.RGB_COLORS 时 hdc 只定
|
|
97
|
+
* 目标格式,本仓传 NULL 实测可用——MSDN:仅 DIB_PAL_COLORS 才用 hdc)
|
|
98
|
+
* @returns 成功复制的扫描行数;失败 → 0
|
|
99
|
+
* @param args_0 hdc 参考 DC(NULL 即可,见上)
|
|
100
|
+
* @param args_1 hbm 目标位图(DIB 段同可用)
|
|
101
|
+
* @param args_2 uStartScan 起始扫描行
|
|
102
|
+
* @param args_3 cLines 扫描行数
|
|
103
|
+
* @param args_4 lpvBits 像素源缓冲(ArrayBuffer)
|
|
104
|
+
* @param args_5 lpbmi BITMAPINFO 缓冲(同 GetDIBits)
|
|
105
|
+
* @param args_6 iUsage ColorUse.RGB_COLORS */
|
|
106
|
+
export const SetDIBits = /*@__PURE__*/ b('SetDIBits', '<HDC>ptr <HGDIOBJ>ptr! u32 u32 <BYTE>ptr <>ptr u32@ColorUse -> i32');
|
|
85
107
|
/** 取 GDI 对象信息到 lpv(hFont → LOGFONTW 等)
|
|
86
108
|
* @returns 写入的字节数;失败 → 0
|
|
87
109
|
* @param args_0 h GDI 对象句柄(字体/画笔/位图等)
|
|
@@ -171,8 +193,8 @@ export const MaskBlt = /*@__PURE__*/ b('MaskBlt', '<HDC>ptr! i32 i32 i32 i32 <HD
|
|
|
171
193
|
* @param args_8 uNumScans 扫描行数
|
|
172
194
|
* @param args_9 lpvBits 像素缓冲(ArrayBuffer)
|
|
173
195
|
* @param args_10 lpbmi BITMAPINFO 缓冲
|
|
174
|
-
* @param args_11 iUsage
|
|
175
|
-
export const SetDIBitsToDevice = /*@__PURE__*/ b('SetDIBitsToDevice', '<HDC>ptr! i32 i32 u32 u32 i32 i32 u32 u32 <BYTE>ptr <BYTE>ptr u32 -> i32');
|
|
196
|
+
* @param args_11 iUsage ColorUse.RGB_COLORS */
|
|
197
|
+
export const SetDIBitsToDevice = /*@__PURE__*/ b('SetDIBitsToDevice', '<HDC>ptr! i32 i32 u32 u32 i32 i32 u32 u32 <BYTE>ptr <BYTE>ptr u32@ColorUse -> i32');
|
|
176
198
|
/** 拉伸 DIB 传送(内存像素缓冲直接放/缩到目标,免创建 HBITMAP 中转);
|
|
177
199
|
* DestWidth/DestHeight 传 0 = 源自然尺寸;SrcWidth/SrcHeight 负 = 翻转
|
|
178
200
|
* @returns 成功 → 扫描行数;失败 → 0
|
|
@@ -186,9 +208,9 @@ export const SetDIBitsToDevice = /*@__PURE__*/ b('SetDIBitsToDevice', '<HDC>ptr!
|
|
|
186
208
|
* @param args_8 SrcHeight 源区高
|
|
187
209
|
* @param args_9 lpvBits 像素缓冲(ArrayBuffer)
|
|
188
210
|
* @param args_10 lpbmi BITMAPINFO 缓冲(BITMAPINFOHEADER.encode({...}).ptr)
|
|
189
|
-
* @param args_11 iUsage
|
|
211
|
+
* @param args_11 iUsage ColorUse.RGB_COLORS
|
|
190
212
|
* @param args_12 rop RasterOp.SRCCOPY 等互斥单选光栅操作码 */
|
|
191
|
-
export const StretchDIBits = /*@__PURE__*/ b('StretchDIBits', '<HDC>ptr! i32 i32 i32 i32 i32 i32 i32 i32 <BYTE>ptr <BYTE>ptr u32 u32@RasterOp -> i32');
|
|
213
|
+
export const StretchDIBits = /*@__PURE__*/ b('StretchDIBits', '<HDC>ptr! i32 i32 i32 i32 i32 i32 i32 i32 <BYTE>ptr <BYTE>ptr u32@ColorUse u32@RasterOp -> i32');
|
|
192
214
|
// ============ 画图原语(笔 / 线 / 形状 / 文字) ============
|
|
193
215
|
/** 取系统共享对象(笔/刷/字体/调色板);共享句柄不要 DeleteObject——
|
|
194
216
|
* SelectObject 选入 hdc 生效(如 NULL_BRUSH 让形状只描边不填充)
|