【发布时间】:2016-03-07 10:30:19
【问题描述】:
我正在从进程 B 调用 HtmlHelp 并传递另一个进程(进程 A,启动当前进程 B 的进程)的 HWND,以尝试将帮助窗口绑定到我的父进程 (A)。
我的进程 (B) 然后退出,但这仍然会导致 HTML 帮助窗口也退出。 如何避免帮助查看器退出并将其链接到进程 A 的生命周期?
根据MSDN
hwndCaller 指定调用 HtmlHelp() 的窗口的句柄 (hwnd)。帮助窗口归该窗口所有。 当帮助窗口关闭时,HtmlHelp() 会将焦点返回给所有者,除非所有者是桌面。
API 调用很简单;
HtmlHelpA(procWindow, "hlp.chm", HH_DISPLAY_TOPIC, help_pointer);
背景:
我有一个非常旧的 Fortran 程序,它启动 winhelp(旧的帮助格式),我正在迁移到 HtmlHelp(更新的 API 和格式)。我无法直接从这个旧代码调用 Win32 HtmlHelp API,因为它挂起(由堆栈大小和位置引起,我无法更改)。
为了绕过这一点,我从 Fortran 代码中转入一个新进程,该进程具有默认堆栈大小,可以成功启动帮助。
帮助代理代码是使用 SilverFrost C 编译器编译的,因此它不会引入任何更多的依赖项(主应用程序是 SilverFrost Fortran)。
【问题讨论】:
-
有进程(B)不退出。