|
|
1.1 ! root 1: /*==============================================================*\ ! 2: * img_help.c - routines for the help manager interface ! 3: * Created 1989, 1990 IBM, Microsoft Corp. ! 4: *-------------------------------------------------------------- ! 5: * ! 6: * This module contains all the routines for interfacing with ! 7: * the IPF help manager. ! 8: * ! 9: *-------------------------------------------------------------- ! 10: * ! 11: * This source file contains the following functions: ! 12: * ! 13: * HelpInit() ! 14: * HelpHelpForHelp(mp2) ! 15: * HelpExtended(mp2) ! 16: * HelpIndex(mp2) ! 17: * HelpAbout(mp2) ! 18: * HelpDestroyInstance() ! 19: * ! 20: \*==============================================================*/ ! 21: ! 22: /*--------------------------------------------------------------*\ ! 23: * Include files, macros, defined constants, and externs ! 24: \*--------------------------------------------------------------*/ ! 25: ! 26: #define INCL_WINHELP ! 27: #define INCL_WINDIALOGS ! 28: ! 29: #include <os2.h> ! 30: #include <string.h> ! 31: #include "img_main.h" ! 32: #include "img_xtrn.h" ! 33: #include "img_dlg.h" ! 34: #include "img_help.h" ! 35: ! 36: #define HELPLIBRARYNAMELEN 20 ! 37: ! 38: /*--------------------------------------------------------------*\ ! 39: * Global variables ! 40: \*--------------------------------------------------------------*/ ! 41: static HWND hwndHelpInstance; ! 42: ! 43: #ifdef HELP_MANAGER_ENABLED ! 44: ! 45: /****************************************************************\ ! 46: * Routine for initializing the help manager ! 47: *-------------------------------------------------------------- ! 48: * ! 49: * Name: HelpInit() ! 50: * ! 51: * Purpose: Initializes the IPF help facility ! 52: * ! 53: * Usage: Called once during initialization of the program ! 54: * ! 55: * Method: Initializes the HELPINIT structure and creates the ! 56: * help instance. If successful, the help instance ! 57: * is associated with the main window ! 58: * ! 59: * Returns: ! 60: * ! 61: \****************************************************************/ ! 62: VOID HelpInit(VOID) ! 63: { ! 64: HELPINIT hini; ! 65: CHAR szLibName[HELPLIBRARYNAMELEN]; ! 66: CHAR szWindowTitle[HELPLIBRARYNAMELEN]; ! 67: ! 68: /* inititalize help init structure */ ! 69: hini.cb = sizeof(HELPINIT); ! 70: hini.ulReturnCode = NULL; ! 71: ! 72: hini.pszTutorialName = (PSZ)NULL; /* if tutorial added, add name here */ ! 73: ! 74: hini.phtHelpTable = (PHELPTABLE)(0xFFFF0000 | IMAGE_HELP_TABLE); ! 75: hini.hmodHelpTableModule = NULL; ! 76: hini.hmodAccelActionBarModule = NULL; ! 77: hini.idAccelTable = NULL; ! 78: hini.idActionBar = NULL; ! 79: #ifdef DEBUG ! 80: hini.usShowPanelId = CMIC_SHOW_PANEL_ID; ! 81: #else ! 82: hini.usShowPanelId = CMIC_HIDE_PANEL_ID; ! 83: #endif ! 84: ! 85: if (!WinLoadString(vhab, ! 86: NULL, ! 87: IDS_HELPWINDOWTITLE, ! 88: HELPLIBRARYNAMELEN, ! 89: (PSZ)szWindowTitle)) { ! 90: ! 91: MessageBox(vhwndFrame, IDMSG_CANNOTLOADSTRING, 0, ! 92: MB_OK | MB_ERROR, FALSE); ! 93: return; ! 94: } ! 95: hini.pszHelpWindowTitle = (PSZ)szWindowTitle; ! 96: ! 97: if (!WinLoadString(vhab, ! 98: NULL, ! 99: IDS_HELPLIBRARYNAME, ! 100: HELPLIBRARYNAMELEN, ! 101: (PSZ)szLibName)) { ! 102: ! 103: MessageBox(vhwndFrame, IDMSG_CANNOTLOADSTRING, 0, ! 104: MB_OK | MB_ERROR, FALSE); ! 105: return; ! 106: } ! 107: hini.pszHelpLibraryName = (PSZ)szLibName; ! 108: ! 109: ! 110: /* creating help instance */ ! 111: hwndHelpInstance = WinCreateHelpInstance(vhab, &hini); ! 112: ! 113: if (!hwndHelpInstance || hini.ulReturnCode) { ! 114: MessageBox(vhwndFrame, IDMSG_HELPLOADERROR, 0, ! 115: MB_OK | MB_ERROR, FALSE); ! 116: return; ! 117: } ! 118: ! 119: /* associate help instance with main frame */ ! 120: if (!WinAssociateHelpInstance(hwndHelpInstance, vhwndFrame)) { ! 121: MessageBox(vhwndFrame, IDMSG_HELPLOADERROR, 0, ! 122: MB_OK | MB_ERROR, FALSE); ! 123: return; ! 124: } ! 125: ! 126: /* set flag to enable Help menu items */ ! 127: vfHelpEnabled = TRUE; ! 128: ! 129: } /* HelpInit() */ ! 130: ! 131: ! 132: /****************************************************************\ ! 133: * Processes the Help for Help command from the menu bar ! 134: *-------------------------------------------------------------- ! 135: * ! 136: * Name: HelpHelpForHelp(mp2) ! 137: * ! 138: * Purpose: Processes the WM_COMMAND message posted by the ! 139: * Help for Help item of the Help menu ! 140: * ! 141: * Usage: Called from MainCommand when the Help for Help ! 142: * menu item is selected ! 143: * ! 144: * Method: Sends an HM_DISPLAY_HELP message to the help ! 145: * instance so that the default Help For Help is ! 146: * displayed. ! 147: * ! 148: * Returns: ! 149: * ! 150: \****************************************************************/ ! 151: VOID HelpHelpForHelp(mp2) ! 152: MPARAM mp2; /* second parameter of WM_COMMAND message */ ! 153: { ! 154: ! 155: /* this just displays the system help for help panel */ ! 156: if (WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP, NULL, NULL)) ! 157: MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0, ! 158: MB_OK | MB_ERROR, FALSE); ! 159: ! 160: /* This routine currently doesn't use the mp2 parameter but *\ ! 161: * it is referenced here to prevent an 'Unreferenced Parameter' ! 162: \* warning at compile time. */ ! 163: mp2; ! 164: ! 165: } /* HelpHelpForHelp() */ ! 166: ! 167: ! 168: /****************************************************************\ ! 169: * Processes the Extended Help command from the menu bar ! 170: *-------------------------------------------------------------- ! 171: * ! 172: * Name: HelpExtended(mp2) ! 173: * ! 174: * Purpose: Processes the WM_COMMAND message posted by the ! 175: * Extended Help item of the Help menu ! 176: * ! 177: * Usage: Called from MainCommand when the Extended Help ! 178: * menu item is selected ! 179: * ! 180: * Method: Sends an HM_EXT_HELP message to the help ! 181: * instance so that the default Extended Help is ! 182: * displayed. ! 183: * ! 184: * Returns: ! 185: * ! 186: \****************************************************************/ ! 187: VOID HelpExtended(mp2) ! 188: MPARAM mp2; /* second parameter of WM_COMMAND message */ ! 189: { ! 190: ! 191: /* this just displays the system extended help panel */ ! 192: if (WinSendMsg(hwndHelpInstance, HM_EXT_HELP, NULL, NULL)) ! 193: MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0, ! 194: MB_OK | MB_ERROR, FALSE); ! 195: ! 196: /* This routine currently doesn't use the mp2 parameter but *\ ! 197: * it is referenced here to prevent an 'Unreferenced Parameter' ! 198: \* warning at compile time. */ ! 199: mp2; ! 200: ! 201: } /* HelpExtended() */ ! 202: ! 203: /****************************************************************\ ! 204: * Processes the Index Help command from the menu bar ! 205: *-------------------------------------------------------------- ! 206: * ! 207: * Name: HelpIndex(mp2) ! 208: * ! 209: * Purpose: Processes the WM_COMMAND message posted by the ! 210: * Index Help item of the Help menu ! 211: * ! 212: * Usage: Called from MainCommand when the Index Help ! 213: * menu item is selected ! 214: * ! 215: * Method: Sends an HM_INDEX_HELP message to the help ! 216: * instance so that the default Index Help is ! 217: * displayed. ! 218: * ! 219: * Returns: ! 220: * ! 221: \****************************************************************/ ! 222: VOID HelpIndex(mp2) ! 223: MPARAM mp2; /* second parameter of WM_COMMAND message */ ! 224: { ! 225: ! 226: /* this just displays the system help index panel */ ! 227: if (WinSendMsg(hwndHelpInstance, HM_HELP_INDEX, NULL, NULL)) ! 228: MessageBox(vhwndFrame, IDMSG_HELPDISPLAYERROR, 0, ! 229: MB_OK | MB_ERROR, FALSE); ! 230: ! 231: /* This routine currently doesn't use the mp2 parameter but *\ ! 232: * it is referenced here to prevent an 'Unreferenced Parameter' ! 233: \* warning at compile time. */ ! 234: mp2; ! 235: ! 236: } /* HelpIndex() */ ! 237: ! 238: /****************************************************************\ ! 239: * Destroys the help instance ! 240: *-------------------------------------------------------------- ! 241: * ! 242: * Name: HelpDestroyInstance(VOID) ! 243: * ! 244: * Purpose: Destroys the help instance for the application ! 245: * ! 246: * Usage: Called during Exit List processing ! 247: * ! 248: * Method: Calls WinDestroyHelpInstance() to destroy the ! 249: * help instance ! 250: * ! 251: * Returns: ! 252: * ! 253: \****************************************************************/ ! 254: VOID HelpDestroyInstance(VOID) ! 255: { ! 256: ! 257: if(hwndHelpInstance) { ! 258: WinDestroyHelpInstance(hwndHelpInstance); ! 259: } ! 260: vfHelpEnabled = FALSE; ! 261: ! 262: } /* HelpDestroyInstance() */ ! 263: ! 264: #endif ! 265: ! 266: /****************************************************************\ ! 267: * Processes the About command from the Help menu * ! 268: *--------------------------------------------------------------* ! 269: * * ! 270: * Name: HelpAbout() * ! 271: * * ! 272: * Purpose: Processes the WM_COMMAND message posted by the * ! 273: * About item of the Help menu * ! 274: * * ! 275: * Usage: Called from MainCommand when the About * ! 276: * menu item is selected * ! 277: * * ! 278: * Method: Calls WinDlgBox to display the about box dialog. * ! 279: * * ! 280: * Returns: * ! 281: * * ! 282: \****************************************************************/ ! 283: VOID HelpAbout() ! 284: { ! 285: ! 286: WinDlgBox(vhwndClient, vhwndClient, AboutBoxDlgProc, NULL, ! 287: IDD_ABOUTBOX, (PVOID)NULL); ! 288: ! 289: /* This routine currently doesn't use the mp2 parameter but *\ ! 290: * it is referenced here to prevent an 'Unreferenced Parameter' * ! 291: \* warning at compile time. */ ! 292: ! 293: } /* HelpAbout() */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.