Adobe 65030089 User Guide - Page 245

Visual C++ developers using Visual Studio .NET, Include the RoboHelp_CSH.cpp file in your project.

Page 245 highlights

USING ROBOHELP HTML 9 239 Context-sensitive Help • To use the RoboHelp API instead of the default MFC Help handler, override the WinHelp function in your mainframe class. By default, Visual Studio calls this class CMainFrame, and you can use the class wizard inside Visual Studio to create the function override. • After overriding the function and including RoboHelp_CSH.h, replace the contents of the function with this code. (Set the path to your Help file properly. The example shows RoboHelp Server-based Help.) Note: Modify the path to server-based Help according to your project. In this example, the path applies to RoboHelp Server Help. See the rest of the API documentation to determine parameter values for each command and specify secondary windows for context-sensitive Help calls. CWaitCursor wait; if (IsFrameWnd()) { // CFrameWnd windows should be allowed to exit help mode first CFrameWnd* pFrameWnd = (CFrameWnd*)this; pFrameWnd->ExitHelpMode(); } // cancel any tracking modes SendMessage(WM_CANCELMODE); SendMessageToDescendants(WM_CANCELMODE, 0, 0, TRUE, TRUE); // must use top level parent (for the case where m_hWnd is in DLL) CWnd* pWnd = GetTopLevelParent(); pWnd->SendMessage(WM_CANCELMODE); pWnd->SendMessageToDescendants(WM_CANCELMODE, 0, 0, TRUE, TRUE); // attempt to cancel capture HWND hWndCapture = ::GetCapture(); if (hWndCapture != NULL) ::SendMessage(hWndCapture, WM_CANCELMODE, 0, 0); // Set the path to server-based help CString csOnlineHelpPath = _T("http://myserver/RoboAPI.asp"); // Translate the nCmd from WinHelp commands to RoboHelp commands unsigned int nRHCmd; switch (nCmd) { case HELP_CONTEXT: nRHCmd = HH_HELP_CONTEXT; break; case HELP_CONTENTS: nRHCmd = HH_DISPLAY_TOC; break; case HELP_CONTEXTMENU: nRHCmd = HH_TP_HELP_CONTEXTMENU; break; case HELP_WM_HELP: nRHCmd = HH_TP_HELP_WM_HELP; break; case HELP_FINDER: nRHCmd = HH_HELP_FINDER; break; default: nRHCmd = nCmd; break; } // finally, run the RoboHelp Help engine if (!RH_ShowHelp(pWnd->m_hWnd, csOnlineHelpPath, nCmd, dwData)) AfxMessageBox(AFX_IDP_FAILED_TO_LAUNCH_HELP); Visual C++ developers using Visual Studio .NET • As stated in the RoboHelp_CSH.h header file, the wininet.lib and htmlhelp.lib libraries must be linked into the application. • Include the RoboHelp_CSH.cpp file in your project. • To use the RoboHelp API instead of using the default MFC Help handler, override the HtmlHelp function in your mainframe class. By default, Visual Studio calls this class CMainFrame, and you can use the class wizard inside Visual Studio to create the function override. • After overriding the function and including RoboHelp_CSH.h, replace the contents of the function with the following code. (Set the path to your Help file accordingly. The example shows server-based Help.) Last updated 12/14/2011

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380

239
USING ROBOHELP HTML 9
Context-sensitive Help
Last updated 12/14/2011
To use the RoboHelp API instead of the default MFC Help handler, override the WinHelp function in your
mainframe class. By default, Visual Studio calls this class CMainFrame, and you can use the class wizard inside
Visual Studio to create the function override.
After overriding the function and including RoboHelp_CSH.h, replace the contents of the function with this code.
(Set the path to your Help file properly. The example shows RoboHelp Server-based Help.)
Note:
Modify the path to server-based Help according to your project. In this example, the path applies to RoboHelp
Server Help. See the rest of the API documentation to determine parameter values for each command and specify
secondary windows for context-sensitive Help calls.
CWaitCursor wait;
if (IsFrameWnd()) {
// CFrameWnd windows should be allowed to exit help mode first
CFrameWnd* pFrameWnd = (CFrameWnd*)this;
pFrameWnd->ExitHelpMode();
}
// cancel any tracking modes
SendMessage(WM_CANCELMODE);
SendMessageToDescendants(WM_CANCELMODE, 0, 0, TRUE, TRUE);
// must use top level parent (for the case where m_hWnd is in DLL)
CWnd* pWnd = GetTopLevelParent();
pWnd->SendMessage(WM_CANCELMODE);
pWnd->SendMessageToDescendants(WM_CANCELMODE, 0, 0, TRUE, TRUE);
// attempt to cancel capture
HWND hWndCapture = ::GetCapture();
if (hWndCapture != NULL)
::SendMessage(hWndCapture, WM_CANCELMODE, 0, 0);
// Set the path to server-based help
CString csOnlineHelpPath = _T("http://myserver/RoboAPI.asp");
// Translate the nCmd from WinHelp commands to RoboHelp commands
unsigned int nRHCmd;
switch (nCmd) {
case HELP_CONTEXT: nRHCmd = HH_HELP_CONTEXT; break;
case HELP_CONTENTS: nRHCmd = HH_DISPLAY_TOC; break;
case HELP_CONTEXTMENU: nRHCmd = HH_TP_HELP_CONTEXTMENU; break;
case HELP_WM_HELP: nRHCmd = HH_TP_HELP_WM_HELP; break;
case HELP_FINDER: nRHCmd = HH_HELP_FINDER; break;
default: nRHCmd = nCmd; break;
}
// finally, run the RoboHelp Help engine
if (!RH_ShowHelp(pWnd->m_hWnd, csOnlineHelpPath, nCmd, dwData))
AfxMessageBox(AFX_IDP_FAILED_TO_LAUNCH_HELP);
Visual C++ developers using Visual Studio .NET
As stated in the RoboHelp_CSH.h header file, the wininet.lib and htmlhelp.lib libraries must be linked into the
application.
Include the RoboHelp_CSH.cpp file in your project.
To use the RoboHelp API instead of using the default MFC Help handler, override the HtmlHelp function in your
mainframe class. By default, Visual Studio calls this class CMainFrame, and you can use the class wizard inside
Visual Studio to create the function override.
After overriding the function and including RoboHelp_CSH.h, replace the contents of the function with the
following code. (Set the path to your Help file accordingly. The example shows server-based Help.)