我從進程B調用HtmlHelp並傳遞另一個進程(進程A,啓動當前進程B的進程)的HWND,嘗試將幫助窗口與我的父進程(A)綁定。可能調用HtmlHelp API並將所有權傳遞給另一個進程?
然後我的進程(B)退出,但仍然導致HTML幫助窗口退出。 如何避免幫助查看者退出並將其與過程A的生命週期關聯?
根據MSDN
hwndCaller 指定窗口調用HTMLHELP的句柄(HWND)()。幫助窗口歸屬於此窗口。 當幫助窗口關閉時,HtmlHelp()將焦點返回給所有者,除非所有者是桌面。
API調用很簡單;
HtmlHelpA(procWindow, "hlp.chm", HH_DISPLAY_TOPIC, help_pointer);
背景:
我有我遷移到HTML幫助(新API和格式)一個非常古老的FORTRAN程序的啓動winhelp的(舊的幫助格式)。我無法直接從這個舊代碼調用Win32 HtmlHelp API,因爲它會掛起(由堆棧大小和位置引起,這是我無法更改的)。
爲了繞過這個,我正在從Fortran代碼中解脫出一個新的進程,然後它有一個可以成功啓動幫助的默認堆棧大小。
使用SilverFrost C編譯器編譯幫助代理代碼,以便它不會引入任何更多的依賴關係(主應用程序是SilverFrost Fortran)。
過程(B)**不退出**。 –