home *** CD-ROM | disk | FTP | other *** search
- /**************************************************************************
- * File name : img_help.c
- *
- * Description: This module contains all the routines for interfacing with
- * the IPF help manager.
- *
- * HelpInit()
- * HelpUsingHelp()
- * HelpGeneral()
- * HelpIndex()
- * HelpProductInfo()
- * HelpDestroyInstance()
- *
- * Concepts : online help
- *
- * API's : WinLoadString
- * WinCreateHelpInstance
- * WinAssociateHelpInstance
- * WinSendMsg
- * WinDestroyHelpInstance
- * WinDlgBox
- *
- * Required
- * Files : OS2.H, STRING.H, IMG_MAIN.H, IMG_XTRN.H, IMG_DLG.H,
- * IMG_HELP.H
- *
- * Copyright (C) 1991 IBM Corporation
- *
- * DISCLAIMER OF WARRANTIES. The following [enclosed] code is
- * sample code created by IBM Corporation. This sample code is not
- * part of any standard or IBM product and is provided to you solely
- * for the purpose of assisting you in the development of your
- * applications. The code is provided "AS IS", without
- * warranty of any kind. IBM shall not be liable for any damages
- * arising out of your use of the sample code, even if they have been
- * advised of the possibility of such damages. *
- *************************************************************************/
- /*
- * Include files, macros, defined constants, and externs
- */
- #define INCL_WINHELP
- #define INCL_WINDIALOGS
- #define INCL_WINSTDFILE
-
- #include <os2.h>
- #include <string.h>
-
- #include "img_main.h"
- #include "img_xtrn.h"
- #include "img_dlg.h"
- #include "img_help.h"
-
- #define HELPLIBRARYNAMELEN 20
-
- /*
- * Global variables
- */
- static HWND hwndHelpInstance;
-
- #ifdef HELP_MANAGER_ENABLED
-
- /**************************************************************************
- *
- * Name : HelpInit()
- *
- * Description: Initializes the IPF help facility
- *
- * Concepts : Called once during initialization of the program
- *
- * Initializes the HELPINIT structure and creates the
- * help instance. If successful, the help instance
- * is associated with the main window.
- *
- * API's : WinLoadString
- * WinCreateHelpInstance
- * WinAssociateHelpInstance
- *
- * Parameters : [none]
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID HelpInit(VOID)
- {
- HELPINIT hini;
- CHAR szLibName[HELPLIBRARYNAMELEN];
- CHAR szWindowTitle[HELPLIBRARYNAMELEN];
-
- /* inititalize help init structure */
- hini.cb = sizeof(HELPINIT);
- hini.ulReturnCode = 0;
-
- hini.pszTutorialName = (PSZ)NULL; /* if tutorial added, add name here */
-
- hini.phtHelpTable = (PHELPTABLE)(0xFFFF0000 | IMAGE_HELP_TABLE);
- hini.hmodHelpTableModule = 0;
- hini.hmodAccelActionBarModule = 0;
- hini.idAccelTable = 0;
- hini.idActionBar = 0;
-
- #if (defined(PORT_16) || defined(PORT_S116))
- #ifdef DEBUG
- hini.usShowPanelId = CMIC_SHOW_PANEL_ID;
- #else
- hini.usShowPanelId = CMIC_HIDE_PANEL_ID;
- #endif /* DEBUG */
- #else /* NOT PORT_16 */
- #ifdef DEBUG
- hini.fShowPanelId = CMIC_SHOW_PANEL_ID;
- #else
- hini.fShowPanelId = CMIC_HIDE_PANEL_ID;
- #endif /* DEBUG */
- #endif /* NOT PORT_16 */
-
- if (!WinLoadString(vhab,
- (HMODULE)0,
- IDS_HELPWINDOWTITLE,
- HELPLIBRARYNAMELEN,
- (PSZ)szWindowTitle))
- {
- MessageBox(vhwndFrame, IDMSG_CANNOTLOADSTRING, 0,
- MB_OK | MB_ERROR, FALSE);
- return;
- }
- hini.pszHelpWindowTitle = (PSZ)szWindowTitle;
-
- if (!WinLoadString(vhab,
- (HMODULE)0,
- IDS_HELPLIBRARYNAME,
- HELPLIBRARYNAMELEN,
- (PSZ)szLibName))
- {
- MessageBox(vhwndFrame, IDMSG_CANNOTLOADSTRING, 0,
- MB_OK | MB_ERROR, FALSE);
- return;
- }
- hini.pszHelpLibraryName = (PSZ)szLibName;
-
-
- /* creating help instance */
- hwndHelpInstance = WinCreateHelpInstance(vhab, &hini);
-
- if (!hwndHelpInstance || hini.ulReturnCode)
- {
- MessageBox(vhwndFrame, IDMSG_HELPLOADERROR, 0,
- MB_OK | MB_ERROR, FALSE);
- return;
- }
-
- /* associate help instance with main frame */
- if (!WinAssociateHelpInstance(hwndHelpInstance, vhwndFrame))
- {
- MessageBox(vhwndFrame, IDMSG_HELPLOADERROR, 0,
- MB_OK | MB_ERROR, FALSE);
- return;
- }
-
- /* set flag to enable Help menu items */
- vfHelpEnabled = TRUE;
- } /* End of HelpInit */
-
- /**************************************************************************
- *
- * Name : HelpUsingHelp()
- *
- * Description: Processes the WM_COMMAND message posted by the
- * Using help item of the Help menu
- *
- * Concepts : Called from MainCommand when the Using help
- * menu item is selected
- *
- * Sends an HM_DISPLAY_HELP message to the help
- * instance so that the default Using help is
- * displayed.
- *
- * API's : WinSendMsg
- *
- * Parameters : [none]
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID HelpUsingHelp(VOID)
- {
- /* this just displays the system help for help panel */
- if (NULL != WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP,
- (MPARAM)NULL, (MPARAM)NULL))
- MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0, MB_OK | MB_ERROR,
- FALSE);
- } /* End of HelpUsingHelp */
-
- /**************************************************************************
- *
- * Name : HelpGeneral()
- *
- * Description: Processes the WM_COMMAND message posted by the
- * General help item of the Help menu
- *
- * Concepts : Called from MainCommand when the General help
- * menu item is selected
- *
- * Sends an HM_EXT_HELP message to the help
- * instance so that the default General help is
- * displayed.
- *
- * API's : WinSendMsg
- *
- * Parameters : [none]
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID HelpGeneral(VOID)
- {
- /* this just displays the system general help panel */
- if (NULL != WinSendMsg(hwndHelpInstance, HM_EXT_HELP,
- (MPARAM)NULL, (MPARAM)NULL))
- MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0, MB_OK | MB_ERROR,
- FALSE);
- } /* End of HelpGeneral() */
-
- /**************************************************************************
- *
- * Name : HelpIndex()
- *
- * Description: Processes the WM_COMMAND message posted by the
- * Help index item of the Help menu
- *
- * Concepts : Called from MainCommand when the Help index
- * menu item is selected
- *
- * Sends an HM_INDEX_HELP message to the help
- * instance so that the Help Index is displayed.
- *
- * API's : WinSendMsg
- *
- * Parameters : [none]
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID HelpIndex(VOID)
- {
- /* this just displays the system help index panel */
- if (NULL != WinSendMsg(hwndHelpInstance, HM_HELP_INDEX,
- (MPARAM)NULL, (MPARAM)NULL))
- MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0, MB_OK | MB_ERROR,
- FALSE);
- } /* End of HelpIndex() */
-
- /**************************************************************************
- *
- * Name : HelpDestroyInstance()
- *
- * Description: Destroys the help instance for the application
- *
- * Concepts : Called during Exit list processing
- *
- * Calls WinDestroyHelpInstance() to destroy the
- * help instance
- *
- * API's : WinDestroyHelpInstance
- *
- * Parameters : [none]
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID HelpDestroyInstance(VOID)
- {
- if(hwndHelpInstance != 0L)
- {
- WinDestroyHelpInstance(hwndHelpInstance);
- }
- vfHelpEnabled = FALSE;
- } /* End of HelpDestroyInstance */
-
- #endif
-
- /**************************************************************************
- *
- * Name : HelpProductInfo()
- *
- * Description: Processes the WM_COMMAND message posted by the
- * Product information item of the Help menu
- *
- * Concepts : Called from MainCommand when the Product information
- * menu item is selected
- *
- * Calls WinDlgBox to display the Product information
- *
- * API's : WinDlgBox
- *
- * Parameters : [none]
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID HelpProductInfo(void)
- {
- WinDlgBox(HWND_DESKTOP, vhwndClient, ProductInfoDlgProc, (HMODULE)0,
- IDD_PRODUCTINFO, (PVOID)NULL);
- } /* End of HelpProductInfo */
-
- /**************************************************************************
- *
- * Name : DisplayHelpPanel(idPanel)
- *
- * Description: Displays the help panel whose id is given
- *
- * Concepts : Called whenever a help panel is desired to be
- * displayed, usually from the WM_HELP processing
- * of the dialog boxes
- *
- * Sends HM_DISPLAY_HELP message to the help instance
- *
- * API's : WinSendMsg
- *
- * Parameters : idPanel = code number of the help panel to be displayed
- *
- * Return : [none]
- *
- *************************************************************************/
- VOID DisplayHelpPanel(ULONG idPanel)
- {
- if(vfHelpEnabled)
- if(NULL != WinSendMsg(hwndHelpInstance,
- HM_DISPLAY_HELP,
- MPFROMLONG(idPanel),
- MPFROMSHORT(HM_RESOURCEID)))
- {
- MessageBox(vhwndFrame,
- IDMSG_HELPDISPLAYERROR,
- 0,
- MB_OK | MB_ERROR,
- TRUE);
- }
- } /* End of DisplayHelpPanel() */
- /*************************** End of img_help.c *************************/
-