home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / atccnr.zip / HELP.C < prev    next >
Text File  |  1993-10-11  |  2KB  |  100 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define INCL_WINDIALOGS
  5. #define INCL_WINHELP
  6. #include <os2.h>
  7.  
  8. #include "help.h"
  9.  
  10.  
  11.  
  12.  
  13. /* ----------------------------------------------------------------- */
  14.  
  15. HWND
  16. InitializeHelp (HAB hab, HWND hwndFrame, USHORT idWnd,
  17.     PSZ pszHelpFilename, PSZ pszHelpTitle,
  18.     HMODULE hmodHelpTableModule)
  19. {
  20.     HELPINIT    hinit;   /* Help initialization structure */
  21.     HWND        hwndHelpInstance;
  22.     CHAR        szMsg[100];
  23.  
  24.     memset (&hinit, 0, sizeof hinit);
  25.     hinit.cb = sizeof (HELPINIT);
  26.     hinit.ulReturnCode = 0;
  27.  
  28.     hinit.pszTutorialName = (PSZ)NULL;   /* if tutorial added, add name here */
  29.  
  30.     hinit.hmodHelpTableModule = hmodHelpTableModule;
  31.     hinit.hmodAccelActionBarModule = 0;
  32.     hinit.idAccelTable = 0;
  33.     hinit.idActionBar = 0;
  34.     hinit.phtHelpTable = (PHELPTABLE)MAKELONG(idWnd, 0xFFFF);
  35.     hinit.pszHelpWindowTitle = pszHelpTitle;
  36.     hinit.pszHelpLibraryName = pszHelpFilename;
  37. //    hinit.usShowPanelId = CMIC_HIDE_PANEL_ID;
  38.  
  39.     hwndHelpInstance = WinCreateHelpInstance (hab, &hinit);
  40.  
  41.     if (hwndHelpInstance && hinit.ulReturnCode)
  42.     {
  43.     WinDestroyHelpInstance (hwndHelpInstance);
  44.     hwndHelpInstance = 0;
  45.     }
  46.  
  47.     if (!hwndHelpInstance)
  48.     {
  49.     sprintf (szMsg, "WinCreateHelpInstance failed, rc = %lx.  "
  50.         "Program will continue without help.",
  51.         hinit.ulReturnCode);
  52.  
  53.     WinMessageBox (HWND_DESKTOP, HWND_DESKTOP, szMsg,
  54.         (PSZ) "Help Creation Error", 1,
  55.         MB_OK | MB_APPLMODAL | MB_MOVEABLE);
  56.     }
  57.     else
  58.     WinAssociateHelpInstance (hwndHelpInstance, hwndFrame);
  59.  
  60.     return hwndHelpInstance;
  61. }
  62.  
  63.  
  64.  
  65. /* ----------------------------------------------------------------- */
  66.  
  67. MRESULT
  68. ProcessHmMessages (HWND hwndHelpInstance,
  69.     USHORT msg, MPARAM mp1, MPARAM mp2)
  70. {
  71.     switch (msg)
  72.     {
  73.     case HM_ERROR:
  74.     if (hwndHelpInstance && LONGFROMMP(mp1) == HMERR_NO_MEMORY)
  75.     {
  76.         WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
  77.         (PSZ) "Help Terminated Due to Error",
  78.         (PSZ) "Help Error",
  79.         1,
  80.         MB_OK | MB_APPLMODAL | MB_MOVEABLE);
  81.         WinDestroyHelpInstance (hwndHelpInstance);
  82.     }
  83.     else
  84.     {
  85.             CHAR    szMsg[ 50 ];
  86.  
  87.             sprintf (szMsg, "Help Error %lx Occurred",
  88.                 LONGFROMMP (mp1));
  89.         WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
  90.         szMsg, "Help Error", 0,
  91.         MB_OK | MB_APPLMODAL | MB_MOVEABLE);
  92.     }
  93.  
  94.     return (MRESULT) 0;
  95.     }
  96.  
  97.     return (MRESULT) 0;
  98. }
  99. 
  100.