Adobe 65030089 User Guide - Page 257

which maps integer context IDs to topic name strings, then calls

Page 257 highlights

USING ROBOHELP HTML 9 251 Context-sensitive Help BOOL ShowHelp(LPCTSTR szTopic, BOOL bIsLocal) { TCHAR szDir[MAX_PATH] = ""; if (bIsLocal) { // Get directory of application DWORD dw = GetModuleFileName(AfxGetInstanceHandle(), szDir, MAX_PATH); TCHAR* pchEnd = _tcsrchr(szDir, '\\') + 1; ASSERT_POINTER(pchEnd, TCHAR); *pchEnd = '\0'; // Append subfolder name _tcscat(szDir, _T("Help")); } // Open topic HINSTANCE hinst = ShellExecute(NULL, //no parent hwnd NULL, // open szTopic, // topic file or URL NULL, // no parameters szDir, // folder containing file SW_SHOWNORMAL); // yes, show it // handle less than 32 indicates failure return hinst > (HINSTANCE)32; } ...The ShowHelp function requires an explicit filename or URL. But for context-sensitive Help, it is better to code the application to use context IDs rather than explicit topic names. Use the following sample function, ShowHelpContext, which maps integer context IDs to topic name strings, then calls ShowHelp to open the topic. BOOL ShowHelpContext(int nContextId) { CString strTopic; BOOL bIsLocal = TRUE; switch (nContextId) { case HH_GADGET_DIALOG: strTopic = _T("gadget.htm"); break; case HH_WHATSIT_DIALOG: strTopic = _T("whatsit.htm"); break; case HH_WIDGET_DIALOG: strTopic = _T("widget.htm"); break; case HH_TECH_SUPPORT: strTopic = _T("http://www.mycompany.com"); bIsLocal = FALSE; break; default: strTopic = _T("unknown-context.htm"); break; } return ShowHelp(strTopic, bIsLocal); } ... 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

251
USING ROBOHELP HTML 9
Context-sensitive Help
Last updated 12/14/2011
BOOL ShowHelp(LPCTSTR szTopic, BOOL bIsLocal)
{
TCHAR szDir[MAX_PATH] = "";
if (bIsLocal)
{
// Get directory of application
DWORD dw = GetModuleFileName(AfxGetInstanceHandle(), szDir, MAX_PATH);
TCHAR* pchEnd = _tcsrchr(szDir, '\\') + 1;
ASSERT_POINTER(pchEnd, TCHAR);
*pchEnd = '\0';
// Append subfolder name
_tcscat(szDir, _T("Help"));
}
// Open topic
HINSTANCE hinst = ShellExecute(NULL, //no parent hwnd
NULL, // open
szTopic, // topic file or URL
NULL, // no parameters
szDir, // folder containing file
SW_SHOWNORMAL); // yes, show it
// handle less than 32 indicates failure
return hinst > (HINSTANCE)32;
}
.......................................................................................................................................
The
ShowHelp
function requires an explicit filename or URL. But for context-sensitive Help, it is better to code the
application to use context IDs rather than explicit topic names. Use the following sample function,
ShowHelpContext
,
which maps integer context IDs to topic name strings, then calls
ShowHelp
to open the topic.
BOOL ShowHelpContext(int nContextId)
{
CString strTopic;
BOOL bIsLocal = TRUE;
switch (nContextId)
{
case HH_GADGET_DIALOG:
strTopic = _T("gadget.htm");
break;
case HH_WHATSIT_DIALOG:
strTopic = _T("whatsit.htm");
break;
case HH_WIDGET_DIALOG:
strTopic = _T("widget.htm");
break;
case HH_TECH_SUPPORT:
bIsLocal = FALSE;
break;
default:
strTopic = _T("unknown-context.htm");
break;
}
return ShowHelp(strTopic, bIsLocal);
}
...........................................................................................................................................