103 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Windows.Forms;
 | |
| using System.Runtime.InteropServices;
 | |
| using System.IO;
 | |
| 
 | |
| namespace DevComponents.DotNetBar
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Summary description for HTMLHelp.
 | |
| 	/// </summary>
 | |
| 	internal class HTMLHelp
 | |
| 	{
 | |
| 		#region API_Declaration
 | |
| 		// HH_DISPLAY_SEARCH Command Related Structure
 | |
| 		[StructLayout(LayoutKind.Sequential)]
 | |
| 			public struct tagHH_FTS_QUERY
 | |
| 		{
 | |
| 			long cbStruct;
 | |
| 			long fUniCodeStrings;
 | |
| 			string pszSearchQuery;
 | |
| 			long iProximity;
 | |
| 			long fStemmedSearch;
 | |
| 			long fTitleOnly;
 | |
| 			long fExecute;
 | |
| 			string pszWindow;
 | |
| 		}
 | |
| 		[DllImport("hhctrl.ocx",SetLastError=true, CharSet=CharSet.Ansi, EntryPoint="HtmlHelpA")]
 | |
| 		private static extern IntPtr HtmlHelp(IntPtr hwnd, string lpHelpFile, int wCommand, int dwData);
 | |
| 		[DllImport("hhctrl.ocx",SetLastError=true, CharSet=CharSet.Auto, EntryPoint="HtmlHelp")]
 | |
|         private static extern IntPtr HTMLHelpFtsQuery (IntPtr hwnd, string lpHelpFile, int wCommand, ref tagHH_FTS_QUERY dwData );
 | |
|         private const int HH_DISPLAY_TOPIC = 0x0;
 | |
|         private const int HH_DISPLAY_TOC = 0x1;
 | |
|         private const int HH_DISPLAY_INDEX = 0x2;
 | |
|         private const int HH_DISPLAY_SEARCH = 0x3;
 | |
|         private const int HH_HELP_CONTEXT = 0xF;   // display mapped numeric value in dwData
 | |
| 
 | |
| 		[DllImport("user32")]
 | |
| 		private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
 | |
| 		[DllImport("user32")]
 | |
| 		private static extern bool IsWindow(IntPtr hWnd);
 | |
| 
 | |
| 		public const int WM_CLOSE=0x10;
 | |
| 
 | |
|         #endregion
 | |
| 		
 | |
| 		private Control m_ParentWindow=null;
 | |
| 		private string m_HelpFile="";
 | |
| 		private IntPtr m_HtmlHelpWindowHandle=IntPtr.Zero;
 | |
| 
 | |
| 		public HTMLHelp()
 | |
| 		{}
 | |
| 		public HTMLHelp(Control parent, string helpfile)
 | |
| 		{
 | |
| 			m_ParentWindow=parent;
 | |
| 			m_HelpFile=helpfile;
 | |
| 		}
 | |
| 		public Control Parent
 | |
| 		{
 | |
| 			get {return m_ParentWindow;}
 | |
| 			set {m_ParentWindow=value;}
 | |
| 		}
 | |
| 		public string HelpFile
 | |
| 		{
 | |
| 			get {return m_HelpFile;}
 | |
| 			set {m_HelpFile=value;}
 | |
| 		}
 | |
| 
 | |
| 		public void ShowContents()
 | |
| 		{
 | |
| 			// Display Table Of Contents tab in HTML Help
 | |
| 			if(File.Exists(m_HelpFile))
 | |
| 				m_HtmlHelpWindowHandle=HtmlHelp(m_ParentWindow.Handle,m_HelpFile,HH_DISPLAY_TOC,0);
 | |
| 			else
 | |
| 				throw new InvalidOperationException("Help file could not be found.");
 | |
| 		}
 | |
| 
 | |
| 		public void ShowIndex()
 | |
| 		{
 | |
| 			// Display Table Of Contents tab in HTML Help
 | |
| 			if(File.Exists(m_HelpFile))
 | |
| 				m_HtmlHelpWindowHandle=HtmlHelp(m_ParentWindow.Handle,m_HelpFile,HH_DISPLAY_INDEX,0);
 | |
| 			else
 | |
| 				throw new InvalidOperationException("Help file could not be found.");
 | |
| 		}
 | |
| 
 | |
| 		public void ShowSearch()
 | |
| 		{
 | |
| 			// Display Table Of Contents tab in HTML Help
 | |
| 			if(File.Exists(m_HelpFile))
 | |
| 				m_HtmlHelpWindowHandle=HtmlHelp(m_ParentWindow.Handle,m_HelpFile,HH_DISPLAY_SEARCH,0);
 | |
| 			else
 | |
| 				throw new InvalidOperationException("Help file could not be found.");
 | |
| 		}
 | |
| 
 | |
| 		public void CloseHelpWindow()
 | |
| 		{
 | |
| 			if(m_HtmlHelpWindowHandle!=IntPtr.Zero && IsWindow(m_HtmlHelpWindowHandle))
 | |
| 				PostMessage(m_HtmlHelpWindowHandle,WM_CLOSE,0,0);
 | |
| 			m_HtmlHelpWindowHandle=IntPtr.Zero;
 | |
| 		}
 | |
| 	}
 | |
| }
 |