From a2ee3d6c4806110eba8fff9c27eb0ae4996f0bbc Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Wed, 5 Aug 2026 15:55:17 +0800 Subject: [PATCH] emrg: replace WPARAM/LPARAM with DWORD in SendMessageTimeout decl (IS 6.7.1 lacks them) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v0.2.2 Build Release CI 三次失败链:#397 heredoc → #398 HWND_BROADCAST 重复 → 本轮 WPARAM 类型。 根因(issrc is-6_7_1 标签源码验证): - WPARAM/LPARAM 类型在 Inno Setup 6.7.2+ 才加入 iscc 预置 (issrc commit 27bce18660, 2025-12-27 "Add WPARAM and LPARAM types") - runner windows-2025 安装 Inno Setup 6.7.1 → Unknown type 'WPARAM' - 6.7.1 已注册类型:DWORD/UINT = LongWord(Compiler.ScriptFunc.pas:88-89) 修复:SendMessageTimeout 的 wParam/lParam 参数类型 WPARAM/LPARAM → DWORD。 iscc 生成 32 位安装器,WPARAM/LPARAM 在 32 位下为 4 字节,与 DWORD 完全兼容; 调用处传 0, 0 无影响。HWND 保留(CI 实测 6.7.1 可用,uPSCompiler 内置)。 验证:heredoc set -u 模拟(无 unbound、无 WPARAM/LPARAM 使用)+ sh -n + 466 passed + import OK + --help OK --- packaging/make-installer.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packaging/make-installer.sh b/packaging/make-installer.sh index 15006b62..71ee942b 100755 --- a/packaging/make-installer.sh +++ b/packaging/make-installer.sh @@ -198,7 +198,12 @@ const WM_SETTINGCHANGE = 26; { \$001A } SMTO_ABORTIFHUNG = 2; { \$0002 } -function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM; +{ R122: WPARAM/LPARAM 类型在 Inno Setup 6.7.2+ 才加入 iscc 预置 + (issrc commit 27bce18660, 2025-12-27);runner windows-2025 为 6.7.1 → + Unknown type 'WPARAM'(v0.2.2 CI 三次失败)。改用 DWORD(6.7.1 已注册 + = LongWord)。iscc 生成 32 位安装器,WPARAM/LPARAM 在 32 位下即 4 字节, + 与 DWORD 完全兼容。 } +function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: DWORD; lParam: DWORD; fuFlags: UINT; uTimeout: UINT; var lpdwResult: DWORD): BOOL; external 'SendMessageTimeoutW@user32.dll stdcall';