home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
viscobv6.zip
/
vac22os2
/
ibmcobol
/
samples
/
toolkit
/
pm
/
controls
/
sty_help.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-11-19
|
12KB
|
362 lines
/*************************************************************************
*
* File Name : STY_HELP.C
*
* Description : This module contains all the routines for
* interfacing with the IPF help manager.
*
* Concepts : Help initialization and termination, handling of
* help menu items.
*
* API's : WinCreateHelpInstance
* WinAssociateHelpInstance
* WinLoadString
* WinSendMsg
* WinDlgBox
* WinDestroyHelpInstance
*
* Copyright (C) 1992 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
#include <os2.h>
#include <string.h>
#include "sty_main.h"
#include "sty_xtrn.h"
#include "sty_dlg.h"
#include "sty_help.h"
#define HELPLIBRARYNAMELEN 20
/* Global variables */
static HWND hwndHelpInstance;
static CHAR szLibName[HELPLIBRARYNAMELEN];
static CHAR szWindowTitle[HELPLIBRARYNAMELEN];
/* Entry point declarations */
MRESULT EXPENTRY ProdInfoDlgProc(HWND hwnd, USHORT msg,
MPARAM mp1, MPARAM mp2);
/***************************************************************
* Name: InitHelp
*
* Description : Initializes the IPF help facility
*
* Concepts : Initializes the HELPINIT structure and creates the
* help instance. If successful, the help instance
* is associated with the main window
*
* API's : WinCreateHelpInstance
* WinAssociateHelpInstance
* WinLoadString
*
* Parameters : None
*
* Returns: None
*
****************************************************************/
VOID InitHelp(VOID)
{
HELPINIT helpInit;
/* if we return because of an error, Help will be disabled */
fHelpEnabled = FALSE;
/* inititalize help init structure */
helpInit.cb = sizeof(HELPINIT);
helpInit.ulReturnCode = 0L;
helpInit.pszTutorialName = (PSZ)NULL; /* if tutorial added, */
/* add name here */
helpInit.phtHelpTable = (PHELPTABLE)MAKELONG(STYLE_HELP_TABLE,
0xFFFF);
helpInit.hmodHelpTableModule = (HMODULE)0;
helpInit.hmodAccelActionBarModule = (HMODULE)0;
helpInit.idAccelTable = 0;
helpInit.idActionBar = 0;
if (!WinLoadString(hab, (HMODULE)0, IDS_HELPWINDOWTITLE,
HELPLIBRARYNAMELEN, (PSZ)szWindowTitle))
{
MessageBox(hwndMain, IDMSG_CANNOTLOADSTRING, MB_OK | MB_ERROR, FALSE);
return;
}
helpInit.pszHelpWindowTitle = (PSZ)szWindowTitle;
helpInit.fShowPanelId = CMIC_HIDE_PANEL_ID;
if (!WinLoadString(hab, (HMODULE)0, IDS_HELPLIBRARYNAME,
HELPLIBRARYNAMELEN, (PSZ)szLibName))
{
MessageBox(hwndMain, IDMSG_CANNOTLOADSTRING, MB_OK | MB_ERROR, FALSE);
return;
}
helpInit.pszHelpLibraryName = (PSZ)szLibName;
/* creating help instance */
hwndHelpInstance = WinCreateHelpInstance(hab, &helpInit);
if (!hwndHelpInstance || helpInit.ulReturnCode)
{
MessageBox(hwndMainFrame, IDMSG_HELPLOADERROR, MB_OK | MB_ERROR, TRUE);
return;
}
/* associate help instance with main frame */
if (!WinAssociateHelpInstance(hwndHelpInstance, hwndMainFrame))
{
MessageBox(hwndMainFrame, IDMSG_HELPLOADERROR, MB_OK | MB_ERROR, TRUE);
return;
}
/* help manager is successfully initialized so set flag to TRUE */
fHelpEnabled = TRUE;
} /* End of InitHelp() */
/*********************************************************************
* 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 : mp2 - Message parameter 2
*
* Returns: None
*
****************************************************************/
VOID HelpUsingHelp(MPARAM mp2)
{
/* this just displays the system help for help panel */
if (fHelpEnabled)
{
if ((BOOL)WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP, NULL, NULL))
{
MessageBox(hwndMain, IDMSG_HELPDISPLAYERROR, MB_OK | MB_ERROR, FALSE);
}
}
/*
* This routine currently doesn't use the mp2 parameter but
* it is referenced here to prevent an 'Unreferenced Parameter'
* warning at compile time.
*/
mp2;
} /* End of HelpUsingHelp() */
/*********************************************************************
* Name: HelpUsingHelp
*
* 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 Extended Help is
* displayed.
*
* API's : WinSendMsg
*
* Parameters : mp2 - Message parameter 2
*
* Returns: None
*
****************************************************************/
VOID HelpGeneral(MPARAM mp2)
{
/* this just displays the system General help panel */
if (fHelpEnabled)
{
if ((BOOL)WinSendMsg(hwndHelpInstance, HM_EXT_HELP, NULL, NULL))
{
MessageBox(hwndMain, IDMSG_HELPDISPLAYERROR, MB_OK | MB_ERROR, FALSE);
}
}
/*
* This routine currently doesn't use the mp2 parameter but
* it is referenced here to prevent an 'Unreferenced Parameter'
* warning at compile time.
*/
mp2;
} /* End of HelpGeneral() */
/*********************************************************************
* Name: HelpKeys
*
* Description : Processes the WM_COMMAND message posted
* by the Keys Help item of the Help menu
*
* Concepts : Called from MainCommand when the Keys Help menu item
* is selected. Sends an HM_KEYS_HELP message to the
* help instance so that the default Extended Help is
* displayed.
*
* API's : WinSendMsg
*
* Parameters : mp2 - Message parameter 2
*
* Returns: None
*
****************************************************************/
VOID HelpKeys(MPARAM mp2)
{
/* this just displays the system keys help panel */
if (fHelpEnabled)
{
if ((BOOL)WinSendMsg(hwndHelpInstance, HM_KEYS_HELP, NULL, NULL))
{
MessageBox(hwndMain, IDMSG_HELPDISPLAYERROR, MB_OK | MB_ERROR, FALSE);
}
}
/*
* This routine currently doesn't use the mp2 parameter but
* it is referenced here to prevent an 'Unreferenced Parameter'
* warning at compile time.
*/
mp2;
} /* End of HelpKeys() */
/*********************************************************************
* Name: HelpIndex
*
* Description : Processes the WM_COMMAND message posted
* by the Index Help item of the Help menu
*
* Concepts : Called from MainCommand when the Index Help menu item
* is selected. Sends an HM_INDEX_HELP message to the
* help instance so that the default Extended Help is
* displayed.
*
* API's : WinSendMsg
*
* Parameters : mp2 - Message parameter 2
*
* Returns: None
*
****************************************************************/
VOID HelpIndex(MPARAM mp2)
{
/* this just displays the system help index panel */
if (fHelpEnabled)
{
if ((BOOL)WinSendMsg(hwndHelpInstance, HM_HELP_INDEX, NULL, NULL))
{
MessageBox(hwndMain, IDMSG_HELPDISPLAYERROR, MB_OK | MB_ERROR, FALSE);
}
}
/*
* This routine currently doesn't use the mp2 parameter but
* it is referenced here to prevent an 'Unreferenced Parameter'
* warning at compile time.
*/
mp2;
} /* End of HelpIndex() */
/*********************************************************************
* Name: HelpProdInfo
*
* Description : Processes the WM_COMMAND message posted
* by the Index Help item of the Help menu
*
* Concepts : Called from MainCommand when the Product
* information Help menu item is selected.
* Calls WinDlgBox to display the Product
* Information dialog.
*
* API's : WinDlgBox
*
* Parameters : mp2 - Message parameter 2
*
* Returns: None
*
****************************************************************/
VOID HelpProdInfo( MPARAM mp2)
{
/* display the Product Information dialog */
WinDlgBox(HWND_DESKTOP, hwndMain, (PFNWP)ProdInfoDlgProc, (HMODULE)0,
IDD_PRODINFO, (PVOID)NULL);
/*
* This routine currently doesn't use the mp2 parameter but
* it is referenced here to prevent an 'Unreferenced Parameter'
* warning at compile time.
*/
mp2;
} /* End of HelpProdInfo() */
/*********************************************************************
* Name: DisplayHelp
*
* Description : Displays the help panel indicated
*
* Concepts : Displays the help panel whose id is passed to
* the routine. Called whenever a help panel is
* desired to be displayed, usually from the
* WM_HELP processing of the dialog boxes.
*
* API's : WinSendMsg
*
* Parameters : idPanel - Id of the halp panel to be displayed
*
* Returns: None
*
****************************************************************/
VOID DisplayHelpPanel(SHORT idPanel)
{
if (fHelpEnabled)
{
if ((BOOL)WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP,
MPFROM2SHORT(idPanel, NULL), MPFROMSHORT(HM_RESOURCEID)))
{
MessageBox(hwndMainFrame, IDMSG_HELPDISPLAYERROR,
MB_OK | MB_ERROR, TRUE);
}
}
} /* End of DisplayHelpPanel() */
/*********************************************************************
* Name: DestroyHelpInstance
*
* Description : Destroys the help instance for the application
*
* Concepts : Called after exit from message loop. Calls
* WinDestroyHelpInstance() to destroy the
* help instance.
*
* API's : WinDestroyHelpInstance
*
* Parameters : None
* None
* Returns:
*
****************************************************************/
VOID DestroyHelpInstance(VOID)
{
if ((BOOL)hwndHelpInstance)
{
WinDestroyHelpInstance(hwndHelpInstance);
}
} /* End of DestroyHelpInstance() */