home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / videotlk.zip / SAMPLES / EX3 / HELPFUNC.C < prev    next >
Text File  |  1995-08-31  |  6KB  |  194 lines

  1.  
  2. /*------------------------------------------------------------------*
  3.  *                                                                  *
  4.  *  Video Toolkit For OS/2 Version 1.0                              *
  5.  *  Example Application No. 3.                                      *
  6.  *  Written by Stephen Sloan.                                       *
  7.  *  Date : 22/02/95.                                                *
  8.  *  Copyright (c) Abbotsbury Software Ltd., United Kingdom. 1995.   *
  9.  *                                                                  *
  10.  *  Filename : helpfunc.c                                           *
  11.  *                                                                  *
  12.  *------------------------------------------------------------------*/
  13.  
  14.  
  15. #define INCL_PM
  16.  
  17. #include <os2.h>
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <string.h>
  21. #include "helpfunc.h"
  22.  
  23. extern  HWND    HwndFrame;
  24.  
  25. extern  void    msg_box (UCHAR *txt, UCHAR *title, ULONG options);
  26.  
  27. HAB     hab;
  28. char    szTitle[MESSAGELEN];
  29.  
  30. static  UCHAR   *Copyright =
  31.   "Copyright (c) Abbotsbury Software Ltd., UK. 1994-1995. All Rights Reserved";
  32.  
  33. static HWND hwndHelpInstance;
  34. static CHAR szLibName[HELPLIBRARYNAMELEN];
  35. static CHAR szWindowTitle[HELPLIBRARYNAMELEN];
  36. static BOOL fHelpEnabled = FALSE;
  37.  
  38. void HelpInit (HWND hwnd)
  39. {
  40.     HELPINIT    hini;
  41.  
  42.         hab = WinQueryAnchorBlock (HwndFrame);
  43.         WinLoadString(hab, 0, IDS_TITLEBAR, sizeof (szTitle), szTitle);
  44.  
  45.         fHelpEnabled = FALSE;
  46.  
  47.         hini.cb = sizeof (HELPINIT);
  48.         hini.ulReturnCode = 0L;
  49.  
  50.         hini.pszTutorialName = (PSZ)NULL;
  51.  
  52.         hini.phtHelpTable = (PHELPTABLE)MAKELONG (HELP_TABLE, 0xFFFF);
  53.         hini.hmodHelpTableModule = (HMODULE)0;
  54.         hini.hmodAccelActionBarModule = (HMODULE)0;
  55.         hini.idAccelTable = 0;
  56.         hini.idActionBar = 0;
  57.  
  58.         if (!WinLoadString (hab,
  59.                             (HMODULE)0,
  60.                             IDS_HELPWINDOWTITLE,
  61.                             HELPLIBRARYNAMELEN,
  62.                             (PSZ)szWindowTitle))
  63.         {
  64.             msg_box ("Error loading window title",
  65.                      "Error", MB_OK | MB_ERROR);
  66.             return;
  67.         }
  68.  
  69.         hini.pszHelpWindowTitle = (PSZ)szWindowTitle;
  70.  
  71.         if (!WinLoadString (hab,
  72.                             (HMODULE)0,
  73.                             IDS_HELPLIBRARYNAME,
  74.                             HELPLIBRARYNAMELEN,
  75.                             (PSZ)szLibName))
  76.         {
  77.             msg_box ("Error loading library name",
  78.                      "Error", MB_OK | MB_ERROR);
  79.             return;
  80.         }
  81.  
  82.         hini.pszHelpLibraryName = (PSZ)szLibName;
  83.  
  84.         hwndHelpInstance = WinCreateHelpInstance (hab, &hini);
  85.  
  86.         if (!hwndHelpInstance || hini.ulReturnCode)
  87.         {
  88.             msg_box ("Error creating help instance",
  89.                      "Error", MB_OK | MB_ERROR);
  90.             return;
  91.         }
  92.  
  93.         if (!WinAssociateHelpInstance (hwndHelpInstance, hwnd))
  94.         {
  95.             msg_box ("Error associating help instance",
  96.                      "Error", MB_OK | MB_ERROR);
  97.             return;
  98.         }
  99.  
  100.         fHelpEnabled = TRUE;
  101. }
  102.  
  103.  
  104. void HelpHelpForHelp ()
  105. {
  106.         if (fHelpEnabled)
  107.         {
  108.             if (WinSendMsg (hwndHelpInstance, HM_DISPLAY_HELP, NULL, NULL))
  109.             {
  110.                 msg_box ("Error displaying help panel",
  111.                          "Error", MB_OK | MB_ERROR);
  112.             }
  113.         }
  114. }
  115.  
  116.  
  117. void HelpExtended ()
  118. {
  119.         if (fHelpEnabled)
  120.         {
  121.             if (WinSendMsg (hwndHelpInstance, HM_EXT_HELP, NULL, NULL))
  122.             {
  123.                 msg_box ("Error displaying extended help panel",
  124.                          "Error", MB_OK | MB_ERROR);
  125.             }
  126.         }
  127. }
  128.  
  129. void HelpKeys ()
  130. {
  131.         if (fHelpEnabled)
  132.         {
  133.             if (WinSendMsg (hwndHelpInstance, HM_KEYS_HELP, NULL, NULL))
  134.             {
  135.                 msg_box ("Error displaying keys help panel",
  136.                          "Error", MB_OK | MB_ERROR);
  137.             }
  138.         }
  139. }
  140.  
  141. void HelpIndex ()
  142. {
  143.         if (fHelpEnabled)
  144.         {
  145.             if (WinSendMsg (hwndHelpInstance, HM_HELP_INDEX, NULL, NULL))
  146.             {
  147.                 msg_box ("Error displaying index help panel",
  148.                          "Error", MB_OK | MB_ERROR);
  149.             }
  150.         }
  151. }
  152.  
  153. void HelpContents ()
  154. {
  155.         if (fHelpEnabled)
  156.         {
  157.             if (WinSendMsg (hwndHelpInstance, HM_HELP_CONTENTS, NULL, NULL))
  158.             {
  159.                 msg_box ("Error displaying contents help panel",
  160.                          "Error", MB_OK | MB_ERROR);
  161.             }
  162.         }
  163. }
  164.  
  165. void HelpAbout ()
  166. {
  167.         WinDlgBox (HWND_DESKTOP,
  168.                    HwndFrame,
  169.                    (PFNWP)AboutDlgProc,
  170.                    (HMODULE)NULLHANDLE,
  171.                    IDD_PRODUCTINFO,
  172.                    NULL);
  173.         WinInvalidateRegion (HwndFrame, NULLHANDLE, FALSE);
  174. }
  175.  
  176. void DisplayHelpPanel (SHORT idPanel)
  177. {
  178.         if (fHelpEnabled)
  179.         {
  180.             if (WinSendMsg (hwndHelpInstance, HM_DISPLAY_HELP,
  181.                 MPFROM2SHORT (idPanel, NULL), MPFROMSHORT (HM_RESOURCEID)))
  182.             {
  183.                 msg_box ("Error displaying help panel",
  184.                          "Error", MB_OK | MB_ERROR);
  185.             }
  186.         }
  187. }
  188.  
  189. void DestroyHelpInstance ()
  190. {
  191.         if (hwndHelpInstance)
  192.             WinDestroyHelpInstance (hwndHelpInstance);
  193. }
  194.