home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / videotlk.zip / SAMPLES / EX5 / HELPFUNC.C < prev    next >
Text File  |  1999-02-25  |  6KB  |  193 lines

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