home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / exampl_4 / contxtid.bas < prev    next >
Encoding:
BASIC Source File  |  1999-07-28  |  8.6 KB  |  195 lines

  1. Attribute VB_Name = "ContextIDs"
  2. Option Explicit
  3. '=====================================================================
  4. '                  Copyright 1993-1996 by Teletech Systems, Inc. All rights reserved
  5. '
  6. '
  7. 'This source code may not be distributed in part or as a whole without
  8. 'express written permission from Teletech Systems.
  9. '=====================================================================
  10. '
  11. 'This source code contains the following routines:
  12. '  o SetAppHelp() 'Called in the main Form_Load event to register your
  13. '                 'program with WINHELP.EXE
  14. '  o QuitHelp()    'Deregisters your program with WINHELP.EXE. Should
  15. '                  'be called in your main Form_Unload event
  16. '  o ShowHelpTopic(Topicnum) 'Brings up context sensitive help based on
  17. '                  'any of the following CONTEXT IDs
  18. '  o ShowContents  'Displays the startup topic
  19. '********** Shameless Plug <g> **********
  20. 'The Standard and Professional editions of HelpWriter 
  21. ' also include the following routines to add sizzle to your
  22. ' helpfile presentation...
  23. '  o HelpWindowSize(x,y,dx,dy) ' Position help window in a screen
  24. '                              ' independent manner
  25. '  o SearchHelp()  'Brings up the windows help KEYWORD SEARCH dialog box
  26. '***********************************************************************
  27. '
  28. '=====================================================================
  29. 'List of Context IDs for <3U>
  30. '=====================================================================
  31. Global Const Hlp_CONTENTS = 630    'Main Help Window
  32. Global Const Hlp_Introducation = 650    'Second Help Window
  33. Global Const Hlp_Getting_Started = 660    'Third Help Window
  34. Global Const Hlp_Menu_Commands = 670    'Fourth Help Window
  35. Global Const Hlp_Source_Code = 680    'Fifth Help Window
  36. '=====================================================================
  37. '
  38. '
  39. '  Help engine section.
  40.  
  41. ' Commands to pass WinHelp()
  42. Global Const HELP_CONTEXT = &H1 '  Display topic in ulTopic
  43. Global Const HELP_QUIT = &H2    '  Terminate help
  44. Global Const HELP_FINDER = &HB  '  Display Contents tab
  45. Global Const HELP_INDEX = &H3   '  Display index
  46. Global Const HELP_HELPONHELP = &H4      '  Display help on using help
  47. Global Const HELP_SETINDEX = &H5        '  Set the current Index for multi index help
  48. Global Const HELP_KEY = &H101           '  Display topic for keyword in offabData
  49. Global Const HELP_MULTIKEY = &H201
  50. Global Const HELP_CONTENTS = &H3     ' Display Help for a particular topic
  51. Global Const HELP_SETCONTENTS = &H5  ' Display Help contents topic
  52. Global Const HELP_CONTEXTPOPUP = &H8 ' Display Help topic in popup window
  53. Global Const HELP_FORCEFILE = &H9    ' Ensure correct Help file is displayed
  54. Global Const HELP_COMMAND = &H102    ' Execute Help macro
  55. Global Const HELP_PARTIALKEY = &H105 ' Display topic found in keyword list
  56. Global Const HELP_SETWINPOS = &H203  ' Display and position Help window
  57.  
  58.     Type HELPWININFO
  59.       wStructSize As Long
  60.       X As Long
  61.       Y As Long
  62.       dX As Long
  63.       dY As Long
  64.       wMax As Long
  65.       rgChMember As String * 2
  66.     End Type
  67.     Declare Function WinHelp Lib "User32.dll" Alias "WinHelpA" (ByVal hWnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Any) As Long
  68.     Declare Function WinHelpByInfo Lib "User32.dll" Alias "WinHelpA" (ByVal hWnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, dwData As HELPWININFO) As Long
  69.     Declare Function WinHelpByStr Lib "User32.dll" Alias "WinHelpA" (ByVal hWnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData$) As Long
  70.     Declare Function WinHelpByNum Lib "User32.dll" Alias "WinHelpA" (ByVal hWnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData&) As Long
  71.     Dim m_hWndMainWindow as Long ' hWnd to tell WINHELP the helpfile owner
  72.  
  73. Dim MainWindowInfo as HELPWININFO
  74. Public Sub SetAppHelp (ByVal hWndMainWindow)
  75. '=====================================================================
  76. 'To use these subroutines to access WINHELP, you need to add
  77. 'at least this one subroutine call to your code
  78. '     o  In the Form_Load event of your main Form enter:
  79. '        Call SetAppHelp(Me.hWnd) 'To setup helpfile variables
  80. '         (If you are not interested in keyword searching or context
  81. '         sensitive help, this is the only call you need to make!)
  82. '=====================================================================
  83.     m_hWndMainWindow = hWndMainWindow
  84.     If Right$(Trim$(App.Path),1) = "\" then
  85.         App.HelpFile = App.Path + "3U.HLP"
  86.     else
  87.         App.HelpFile = App.Path + "\3U.HLP"
  88.     end if
  89.     MainWindowInfo.wStructSize = 26
  90.     MainWindowInfo.X=256
  91.     MainWindowInfo.Y=256
  92.     MainWindowInfo.dX=512
  93.     MainWindowInfo.dY=512
  94.     MainWindowInfo.rgChMember=Chr$(0)+Chr$(0)
  95. End Sub
  96. Public Sub QuitHelp ()
  97.     Dim Result as Variant
  98.     Result = WinHelp(m_hWndMainWindow, App.HelpFile, HELP_QUIT, Chr$(0) + Chr$(0) + Chr$(0) + Chr$(0))
  99. End Sub
  100. Public Sub ShowHelpTopic (ByVal ContextID As Long)
  101. '=====================================================================
  102. '  FOR CONTEXT SENSITIVE HELP IN RESPONSE TO A COMMAND BUTTON ...
  103. '=====================================================================
  104. '     o   For 'Help button' controls, you can call:
  105. '         Call ShowHelpTopic(<any Hlpxxx entry above>)
  106. '=====================================================================
  107. '  TO ADD FORM LEVEL CONTEXT SENSITIVE HELP...
  108. '=====================================================================
  109. '     o  For FORM level context sensetive help, you should set each 
  110. '        Me.HelpContext=<any Hlp_xxx entry above>
  111. '
  112.     Dim Result as Variant
  113.  
  114.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile, HELP_CONTEXT, Clng(ContextID))
  115.  
  116. End Sub
  117. Public Sub ShowHelpTopic2 (ByVal ContextID As Long)
  118. '=====================================================================
  119. '  DISPLAY CONTEXT SENSITIVE HELP IN WINDOW 2 ...
  120. '=====================================================================
  121. '     o   For 'Help button' controls, you can call:
  122. '         Call ShowHelpTopic2(<any Hlpxxx entry above>)
  123. '
  124.     Dim Result as Variant
  125.  
  126.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile &">HlpWnd02", HELP_CONTEXT, Clng(ContextID))
  127.  
  128. End Sub
  129. Public Sub ShowHelpTopic3 (ByVal ContextID As Long)
  130. '=====================================================================
  131. '  DISPLAY CONTEXT SENSITIVE HELP IN WINDOW 3 ...
  132. '=====================================================================
  133. '     o   For 'Help button' controls, you can call:
  134. '         Call ShowHelpTopic3(<any Hlpxxx entry above>)
  135. '
  136.     Dim Result as Variant
  137.  
  138.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile &">HlpWnd03", HELP_CONTEXT, Clng(ContextID))
  139.  
  140. End Sub
  141. Public Sub ShowGlossary ()
  142.     Dim Result as Variant
  143.  
  144.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile, HELP_CONTEXT, Clng(64000))
  145.  
  146. End Sub
  147. Public Sub ShowPopupHelp (ByVal ContextID As Long)
  148. '=====================================================================
  149. '  FOR POPUP HELP IN RESPONSE TO A COMMAND BUTTON ...
  150. '=====================================================================
  151.     Dim Result as Variant
  152.  
  153.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile, HELP_CONTEXTPOPUP, Clng(ContextID))
  154.  
  155. End Sub
  156. Public Sub DoHelpMacro (ByVal MacroString As String)
  157. '=====================================================================
  158. '  FOR POPUP HELP IN RESPONSE TO A COMMAND BUTTON ...
  159. '=====================================================================
  160.     Dim Result as Variant
  161.  
  162.     Result = WinHelpByStr(m_hWndMainWindow, APP.HelpFile, HELP_COMMAND, ByVal(Macrostring))
  163.  
  164. End Sub
  165. Public Sub ShowHelpContents ()
  166. '=====================================================================
  167. '  DISPLAY STARTUP TOPIC IN RESPONSE TO A COMMAND BUTTON or MENU ...
  168. '=====================================================================
  169. '
  170.     Dim Result as Variant
  171.  
  172.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile, HELP_CONTENTS, Clng(0))
  173.  
  174. End Sub
  175. Public Sub ShowContentsTab ()
  176. '=====================================================================
  177. '  DISPLAY Contents tab (*.CNT)
  178. '=====================================================================
  179. '
  180.     Dim Result as Variant
  181.  
  182.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile, HELP_FINDER, Clng(0))
  183.  
  184. End Sub
  185. Public Sub ShowHelpOnHelp ()
  186. '=====================================================================
  187. '  DISPLAY HELP for WINHELP.EXE  ...
  188. '=====================================================================
  189. '
  190.     Dim Result as Variant
  191.  
  192.     Result = WinHelpByNum(m_hWndMainWindow, APP.HelpFile, HELP_HELPONHELP, Clng(0))
  193.  
  194. End Sub
  195.