indexing "Controls access to Microsoft HTML Help, allows to display given urls" class WIZARD_HTML_HELP_HANDLER inherit WEL_SW_CONSTANTS WIZARD_SHARED feature -- Access help_window_handle: INTEGER -- Handle to help window feature -- Status Report is_valid_chm_url (a_chm_url: STRING): BOOLEAN is -- Is `a_chm_url' a valid Microsoft HTML Help URL? do Result := True end last_show_successful: BOOLEAN is -- Was last call to `show' successful? do Result := help_window_handle /= 0 end feature -- Basic Operations show (a_chm_url: STRING) is -- Display help page page with url `a_chm_url'. require valid_chm_url: is_valid_chm_url (a_chm_url) local returned_value: INTEGER do returned_value := cwin_shell_execute (cwin_desktop_window, (create {WEL_STRING}.make ("open")).item, (create {WEL_STRING}.make (Chm_url)).item, default_pointer, default_pointer, sw_shownormal) --help_window_handle := cwin_html_help (cwin_desktop_window, (create {WEL_STRING}.make (a_chm_url)).item, Hh_display_topic, 0) end feature {NONE} -- Implementation Chm_url: STRING is -- Path to `wizard.chm' (relatively to $ISE_EIFFEL value) once Result := wizard_source + "\wizard.chm" ensure non_void_path: Result /= Void not_empty_path: not Result.is_empty end feature {NONE} -- Externals cwin_desktop_window: POINTER is -- Help Workshop `HtmlHelp' API. external "C [macro ]: HWND" alias "GetDesktopWindow()" end cwin_shell_execute (hwnd, verb, file, parameters, directory: POINTER; show_cmd:INTEGER): INTEGER is -- Shell API `ShellExecute' function external "C [macro ] (HWND, LPCTSTR, LPCTSTR, LPCTSTR, LPCTSTR, INT): EIF_INTEGER" alias "ShellExecute" end cwin_html_help (hwnd, pszFile: POINTER; command: INTEGER; data: INTEGER): INTEGER is -- Help Workshop `HtmlHelp' API. external "C [macro ] (HWND, LPCSTR, UINT, DWORD): EIF_INTEGER" alias "HtmlHelp" end Hh_display_topic: INTEGER is -- Help Workshop HH_DISPLAY_TOPIC constant external "C [macro ]: EIF_INTEGER" alias "HH_DISPLAY_TOPIC" end end -- class WIZARD_HTML_HELP_HANDLER --|---------------------------------------------------------------- --| EiffelWizard: library of reusable components for ISE Eiffel. --| Copyright (C) 1986-2001 Interactive Software Engineering Inc. --| All rights reserved. Duplication and distribution prohibited. --| May be used only with ISE Eiffel, under terms of user license. --| Contact ISE for any other use. --| --| Interactive Software Engineering Inc. --| ISE Building --| 360 Storke Road, Goleta, CA 93117 USA --| Telephone 805-685-1006, Fax 805-685-6869 --| Electronic mail --| Customer support: http://support.eiffel.com> --| For latest info see award-winning pages: http://www.eiffel.com --|----------------------------------------------------------------