Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
fdhelp.c
Abstract:
Routines to support context-sensitive help in the disk manager.
Author:
Ted Miller (tedm) 18-March-1992
Revision History:
--*/
#include "fdisk.h"
//
// Define macro to convert between a menu id and its corresponding
// context-sensitive help id, in a switch statement.
//
#define MENUID_TO_HELPID(name) case IDM_##name : \
HelpContext = HC_DM_MENU_##name; \ break;
//
// Current help context
//
DWORD HelpContext = (DWORD)(-1);
//
// Handle to windows hook for F1 key
//
HHOOK hHook;
DWORD HookProc( IN int nCode, IN UINT wParam, IN LONG lParam )
/*++
Routine Description:
Hook proc to detect F1 key presses.
Arguments:
Return Value:
--*/
{ PMSG pmsg = (PMSG)lParam;
if(nCode < 0) { return(CallNextHookEx(hHook,nCode,wParam,lParam)); }
if(((nCode == MSGF_DIALOGBOX) || (nCode == MSGF_MENU)) && (pmsg->message == WM_KEYDOWN) && (LOWORD(pmsg->wParam) == VK_F1)) { PostMessage(hwndFrame,WM_F1DOWN,nCode,0); return(TRUE); }
return(FALSE); }
VOID Help( IN LONG Code )
/*++
Routine Description:
Display context-sensitive help.
Arguments:
Code - supplies type of message (MSGF_DIALOGBOX, MSGF_MENU, etc).
Return Value:
None.
--*/
{ UNREFERENCED_PARAMETER(Code);
if(HelpContext != -1) { WinHelp(hwndFrame,HelpFile,HELP_CONTEXT,HelpContext); DrawMenuBar(hwndFrame); } }
VOID DialogHelp( IN DWORD HelpId ) /*++
Routine Description:
Display help on a specific item.
Arguments:
HelpId -- Supplies the help item to display.
Return Value:
None.
--*/ { WinHelp(hwndFrame,HelpFile,HELP_CONTEXT,HelpId); DrawMenuBar(hwndFrame); }
VOID SetMenuItemHelpContext( IN LONG wParam, IN DWORD lParam )
/*++
Routine Description:
Routine to set help context based on which menu item is currently selected.
Arguments:
wParam,lParam - params to window proc in WM_MENUSELECT case
Return Value:
None.
--*/
{ if(HIWORD(lParam) == 0) { // menu closed
HelpContext = (DWORD)(-1);
} else if (HIWORD(wParam) & MF_POPUP) { // popup selected
HelpContext = (DWORD)(-1);
} else { // regular old menu item
switch(LOWORD(wParam)) {
MENUID_TO_HELPID(PARTITIONCREATE) MENUID_TO_HELPID(PARTITIONCREATEEX) MENUID_TO_HELPID(PARTITIONDELETE) #if i386
MENUID_TO_HELPID(PARTITIONACTIVE) #else
MENUID_TO_HELPID(SECURESYSTEM) #endif
MENUID_TO_HELPID(PARTITIONLETTER) MENUID_TO_HELPID(PARTITIONEXIT)
MENUID_TO_HELPID(CONFIGMIGRATE) MENUID_TO_HELPID(CONFIGSAVE) MENUID_TO_HELPID(CONFIGRESTORE)
MENUID_TO_HELPID(FTESTABLISHMIRROR) MENUID_TO_HELPID(FTBREAKMIRROR) MENUID_TO_HELPID(FTCREATESTRIPE) MENUID_TO_HELPID(FTCREATEPSTRIPE) MENUID_TO_HELPID(FTCREATEVOLUMESET) MENUID_TO_HELPID(FTEXTENDVOLUMESET) MENUID_TO_HELPID(FTRECOVERSTRIPE)
MENUID_TO_HELPID(OPTIONSSTATUS) MENUID_TO_HELPID(OPTIONSLEGEND) MENUID_TO_HELPID(OPTIONSCOLORS) MENUID_TO_HELPID(OPTIONSDISPLAY)
MENUID_TO_HELPID(HELPCONTENTS) MENUID_TO_HELPID(HELPSEARCH) MENUID_TO_HELPID(HELPHELP) MENUID_TO_HELPID(HELPABOUT)
default: HelpContext = (DWORD)(-1); } } }
VOID InitHelp( VOID ) { hHook = SetWindowsHookEx(WH_MSGFILTER,(HOOKPROC)HookProc,NULL,GetCurrentThreadId()); }
VOID TermHelp( VOID ) { UnhookWindowsHookEx(hHook); }
|